1. 引言
軟件工程學是計算機專業的主干課程,它研究的是如何應用科學理論和工程技術指導軟件的開發,從而達到用較少的投資獲得高質量軟件的目標。講授的重點不是具體開發技術的實現,而是通過對過程管理、科學的工程方法和適用的工具系統等方面的講解,教會學生軟件工程學的思想和方法,使得學生從系統的、工程的角度來看待軟件開發過程,并將所學的知識應用在實際的軟件開發項目中,是面向學生就業的實務型教學。雖然課程的地位非常重要,但難學難教的特點尤為突出。
2. 軟件工程學的課程教學特點
目前,軟件工程課程的教學普遍采用理論講授和實驗訓練相結合的傳統方法,該方法在實際教學中存在許多問題,這些問題結合軟件工程課程的特點主要表現在以下方面:
(1)概念原理多,內容太抽象軟件工程課程涉及面很廣,它是一門邊緣學科,在軟件的生命周期各個階段都有相當多的概念和原理。學生對基礎理論聽完后似懂非懂,普遍反映害怕學習概念,相似的內容還容易混亂,感覺枯燥無味。因此,教師在講授時要多舉例才能使講解盡可能生動。
(2)因人施教難,互助意識差學生基礎水平參差不齊,個體差異也很大,相同的教學模式難以滿足全體學生的學習要求。能夠深入學習的學生無法帶動學習能力較弱的學生,背離軟件開發過程中團隊合作完成軟件項目的目標,使個體差異進一步擴大。
(3)實驗實例化,實踐不理想軟件工程課程許多可參考的實驗教材,基本按照一個相對完整的小型軟件的開發全過程為實例貫穿各個階段。實例化層次低,標準化程度高,學生按照實例完成相關設計文檔的編寫幾乎不用動腦筋,一模一樣地完成幾個思考題目。學生無法深入理解軟件工程的重要性,更無法體會到系統分析師和代碼工之間的價值區別。
(4)掌握知識少,運用不充分由于沒有真正掌握理論知識及運用理論的技能和方法,在畢業論文設計時,學生不能將軟件工程的理論充分運用到設計實踐中去,導致設計開發的軟件和撰寫的相關文檔的結構、內容等方面錯誤百出。
怎樣才能解決上述所有問題呢?經過三年的實踐經驗和教學研究,參考現有的軟件工程課程教學的案例教學法和任務驅動法,把軟件工程課程的實踐方式進行改良,實行一系列有利于充分調動學生實驗教學積極性的辦法,引入了過程管理理論,設計出新的教學模式——過程管理教學法。通過實施,學生對教學效果反映良好。
3. 過程管理教學法的設計
過程管理是相對結果管理而言的。所謂結果管理,就是通過教學結果的控制進行課程教學管理,主要手段是通過對作業、實驗報告、測驗和考試的統計評估來實現的,學生只為追求結果而學習,實際這些都和教學過程有密切的關系。因而,采用過程管理法提高學生的學習興趣,強化學生主動參與的學習行為,是軟件工程課程達成教學目標的有效途徑。
如何在軟件工程的教學中使用過程管理教學法呢?根據現代控制理論的觀點,把軟件工程課程教學質量的過程管理工作分為:實踐前控制、實踐中管理和實踐后評審三個環節,這三個環節相互影響、相互制約。軟件工程學教材的章節,大多數是按照軟件生命周期的各個階段劃分,選定五大階段作為學生的主要工作內容:可行性分析報告、需求分析說明書、概要設計說明書、詳細設計說明書(含設計語言編碼規范)和測試與維護計劃。
4. 過程管理教學法的實施步驟
學生以組的形式完成一個假定項目,教師按軟件工程項目開發的組成和管理給定組成員的角色。下面以40個人的班級為例,開展工作的步驟具體如下:
第一步:劃分大組。以10個人為一個大組進行劃分,自由組合并兼顧能力均衡。(體現主題選擇的傾向性的關鍵環節)
第二步:劃分小組。每個大組以2個人一個小組為合作單元,自由搭配為原則,最終每個大組擁有5個小組的團隊。(體現團隊合作的關鍵環節)
第三步:推選組長。每個大組推舉一個有號召力和威信的學生作為該組軟件項目的組長,協調大組內各個小組的工作。(控制項目質量的關鍵環節)
第四步:選擇主題。給定10個~20個當前各行業主流的軟件設計項目,讓各大組討論后一致選定某一主題項目。(把握主流軟件的關鍵環節)
第五步:分配角色。根據五大階段的報告和文檔,大組中的各個小組自由討論決定參與的部分,并各自分配成員角色。(集中課程重點的關鍵環節)
第六步:撰寫文檔。在講授理論課程中,開新章節前給定兩個以上的實踐材料為參考,另給定軟件開發行業國家標準格式的文檔編寫規范和國內某著名軟件開發公司的標準化文檔編寫規范(在該公司允許的前提下進行)供學生選用,按照編寫指南和規范的格式撰寫該階段文檔。(學習撰寫規范文檔的關鍵環節)
第七步:會議記錄和變更控制。強調小組在文檔撰寫過程中遇到問題必須大組開會參與討論,會議形式可以是網絡會議或課余會議,組長主持會議按照教師給定的會議記錄格式做詳細記錄,如果存在重大修改的問題,嚴格按照變更控制流程完成變更控制報告。(解決問題的關鍵環節)
第八步:正式評審。該章節講授完畢,各大組評審文檔、組員簽名確認后提交該階段的文檔。教師批改后返還學生自行修改,各大組再一次評審文檔、組員簽名確認,同時開始設計該階段報告PPT演示文稿,重復第六步。(進度控制的關鍵環節)
第九步:期末總結。各階段全部修改后完成,大組組長集成終極報告裝訂成冊,整合PPT演示文稿,舉行各大組主題項目的終極報告演講并評分。(學生相互學習的關鍵環節)
各階段的文檔撰寫實際引入了過程管理法,在軟件工程中就有軟件過程改進的質量控制方法,軟件工程師注重軟件的開發過程,把軟件過程結合軟件工程理論的教學可以創新為教學過程改進的質量控制方法。上述步驟就是一個最好的控制流程,教師參與到各個組中并在課堂中進行指導,學生開始注重自己所參與文檔的編寫。要寫好文檔就必須主動學習,而且壓力來自于團隊利益,每個階段的出色完成就是后續階段的完美延續,終極報告的質量將得到保證。各個階段是環環相扣的,緊密性強,某一階段完成的質量不能達標將影響下一個階段的進行,甚至影響整體進度,各個階段不能完全獨立而存在,卻能單獨作為可交付文檔來提交。因此,組內成員需要互相支持。教師和學生、學生和學生一起討論協商解決問題,兩者融為有機整體,學生的學習變得充實而有意義。
5. 過程管理教學法的優勢
過程管理教學法是一種教師主控管理、結合學生自主管理的教學方法,打破了傳統教學方法中注重學習循序漸進的老套路,以項目階段為工作驅動、以過程管理為質量保證來進行教學,完成教學任務。其優勢在于:學生易于掌握教學內容、培養學生團隊合作精神、提高學生主動參與意識、培養學生的綜合性能力。
6. 結束語
軟件工程學本身就有過程管理的理論,把過程管理引回到軟件工程課堂教學中來是一種創新。學生的自學能力、動手實踐能力、思維判斷能力、書寫表達能力和創新意識等都取得了很大的進步。同時,也進一步地培養和提高了學生從事工程實踐的基本素質、理論聯系實際和實事求是的科學作風,嚴肅認真、一絲不茍的科學態度和不怕困難、主動進取的探索精神。對于培養學生的分析問題和解決問題的能力,以及創新思想與創造能力等都具有重要作用。實踐證明,教學效果明顯提高,特別是電大中央統考課程的通過率達到85%以上。
總之,不斷在教學上進行創新,優化學生學習氛圍,增強學生學習興趣,在教學過程中進行學生自主管理的教學流程設計,是現代教育的教學目標。
(廣州市輕工技師學院)