摘要:本文研究了本科生的軟件工程綜合實踐教學環節的改革,提出相關的解決方案,實踐證明,這些解決方案對于解決學生的動手能力有利。
關鍵詞:軟件工程;教學改革;課程實驗;綜合實踐
中圖分類號:G642文獻標識碼:B
文章編號:1672-5913 (2007) 22-0123-03
1引言
我系原有的教學計劃[1]中,軟件工程課程體現設置上僅有“軟件工程導論”一門課程,在大四上學期開設。這一教學安排的思路是,在前面基礎課程學習完成后,為學生在大四開始畢業設計做準備。當時做此設計的思路有兩個出發點:第一,這一教學設計是針對大學擴招之前的,因此是適用的。但自從高校擴招以后,特別是在近幾年,由于就業的壓力越來越大,企業對學生動手能力和項目實踐能力要求越來越高,與這一教學設計相關的綜合實踐教學環節越來越不適應社會發展的需要;第二,這一教學設計在傳統的以手工方式逐行編寫應用程序的背景和需求相適應,但隨著大型軟件工程工具和環境的出現,以及應用系統的規模越來越大,應用越來越復雜,這一傳統的軟件工程教學無法適應這一形勢,這反映在這一教學設計所提供的知識、體系等等,遠遠無法適應社會要求學生不僅掌握軟件工程技術層面的知識和技能,還要掌握與軟件工程相關的項目管理等方面的知識化技能這一需要。這意味著,原有的軟件工程綜合實踐教學環節急需要進行改革。本文將闡述我們在這一環節改革中的一些思考和做法。
2軟件工程理論教學環節的改革
在新的教學計劃[2]中,我們強化了軟件工程課程教學,我們的思想是將原有的單一軟件工程課程分解為多層次、多方位的軟件工程課程,在教學活動中,以交互式啟發式教學為手段,以案例教學貫串整個過程。這一點主要可以體現在以下幾個環節和方面。
第一,將軟件工程的思想貫串本科生專業學習過程。在學生學習了程序設計語言和數據結構等基礎課程之后,我們在大二下學期開始開設“軟件工程導論”,課程內容以軟件工程思想的建立為目標,在以結構化方法學為主線的講授軟件工程技術核心內容的同時,引入軟件項目管理基礎,使得學生在技術學習的同時,注意到項目管理在軟件開發中的重要作用。
第二,在大三下學期開設面向對象軟件工程。在這一學期,由于學生已經學習了C++面向對象程序設計等課程和軟件工程導論等課程,因此涉及到面向對象中的概念已經不再是學習中的難點,這樣我們可以將教學的重點放在以UML(統一建模語言)和RUP(統一建模過程)的學習與使用上,在此基礎上,我們將教學的重點放在面向對象的需求獲取和需求分析、面向對象的系統設計、對象設計和面向對象測試等方面。在技術學習的同時依舊重視項目管理,并引入配置管理(如版本管理)等進一步的管理知識。
第三,在大四上學期開設軟件工程課程設計課程。這一課程的教學將以案例分析和最終系統實現為目標。這一階段的實踐活動將大三面向對象軟件工程中已經初具規模的系統加以實現。在教學活動的組織上,我們以交互式和啟發式教學為主導,我們會在課堂上將部分時間留給學生討論,教師則啟發學生討論并點評學生的過程,在課程的后半段時間還會專門留出時間給以項目組為主體團隊演示自己的系統。
第四,在大四下學期開學,將安排學生參加為期一月左右的實訓。在選擇培訓公司上,我們堅持選擇大型、有項目經驗的公司作為依托,以其一線工程師作為實訓教師,并堅持按公司管理制度對學生以項目團隊形式進行管理,并按公司指定的軟件工程文檔模板作為學生項目的文檔寫作依據,按公司對員工的方式管理、驗收和評價學生的項目,讓學生真正體會到IT公司的企業文化,這為學生的就業面試奠定了良好的基礎。
第五,為配合上述教學活動,我們在整個專業教學中增加了很多軟件工程類的選修課程,如軟件項目管理、基于構件的軟件開發、軟件測試與軟件質量保障等。這些課程極大豐富了學生的知識,開擴了學生的眼界。
第六,配合軟件工程課程群教學,大力開展ACM/ICPC競賽活動,吸引更多的本科生參加到以程序設計為主的專業學習中來,這不僅能夠為學校選拔更多的優秀人才參加亞洲區國際大學生程序設計競賽,而且對于本科生學風的改善起到積極的推動作用。現在,有越來越多的學生參加到ACM競賽這項活動中來,其優秀者代表學校參賽,兩次取得了亞洲區ACM/ICPC比賽銅牌,極大提高了學校和系里的聲譽,也為我系學生的就業起到了積極作用。
3軟件工程課程實驗教學環節的改革
為了配合軟件工程理論課程教學改革,我們強化和改革了軟件工程綜合實踐環節。針對上述四個不同學期,安排不同層次的實驗內容和實踐活動。
針對大二下學期開始開設“軟件工程導論”,我們在這一階段的教學實驗以小型應用項目和小型團隊為主,主要開發工具是高級程序設計語言,學生描述處理對象的主要依據是數據結構的基礎知識(如正文編輯器開發)和以文件存放數據為主的學生管理系統等。這一階段的實驗教學目標是學生通過課程上機熟悉理論知識,并熟悉和掌握各種CASE工具的使用,建立軟件工程的概念和思想,培養學生的團隊合作精神和項目管理的基本概念。
針對大三下學期開設面向對象軟件工程,我們在這一階段的教學實驗以中型項目為背景,結合相關Rational產品和技術,通過實際的系統項目實踐和大量上機實驗,讓學生在開發實際項目的過程中,掌握軟件工程生命周期各階段的理論和方法,了解基于RUP開發信息系統的過程、工具和方法。進一步加強學生的對軟件工程理論的理解,提高學生的工程實踐能力。具體實驗教學內容覆蓋項目管理、配置管理、需求分析、系統分析設計、測試、部署各階段實驗,及相應的主流工具(如MS Project、Rational Rose、ClearCase、Test Manager)的使用。但本階段已經將項目的開發重點放在了需求分析、系統和對象設計、測試用例的設計上。整個實驗環節將以團隊開發活動和過程改進為主,實現方面并不要求學生實現整個系統功能。由于課程實踐部分在面向對象軟件工程的教學中占有非常重要的地位,對學生理解和掌握面向對象軟件工程思想和理論有十分重要的作用,故本課程實驗成績占總課程成績的40%。通過讓學生提交開發過程中的各種模型、制品,及審查實驗報告等方式,按各個實驗模塊及其所占分值的比例加權求和,給出學生的實驗成績。
大四上學期開設的軟件工程課程設計我們在教學方式上采用案例式教學法,即設計采用了一個具有代表性的、結合軟件工程生命周期各階段理論的實際案例——某大學的選課系統,使其貫穿于整個教學過程當中。通過實際案例的演示,激發了學生的學習熱情,讓學生積極去思考問題,通過課堂討論、教師點評等方式,變被動接受為主動思考、積極參與的學習模式,提高了學生的學習自主性和創新能力。在本課程的課程實踐中,我們將學生分成4人左右的小組,以實現一個完整的應用系統為主。在這一過程中,我們始終貫串以團隊為合作前提,以交互和啟發為手段,以交流和通透為主線,以完成一個完整的項目為最終目標,以真正實現一個項目。本課程實驗項目的設計力圖能為學生留有充分的創新空間,積極鼓勵學生進行創新設計。考核的方法以開發文檔審核、程序現場演示與答辯等方式進行綜合考核評定,激發學生的學習成就感,培養工程化軟件素養,強化交流表達能力等綜合素質的提高。
在大四下學期開學的實訓,我們更是將學生置身于實際的公司所營造的企業文化氛圍之中,讓學生經歷一次實踐洗禮。通過畢業設計實踐,讓學生在畢業設計中,深入體會和掌握軟件工程的思想,實踐相應領域的開發過程、方法和工具,提高對所學技術和方法的掌握和應用能力,為成為職業優秀的軟件開發人員或進一步深造打下堅實的基礎。
4軟件工程綜合實踐教學環節的改革
在本節所介紹的綜合實踐教學環節主要指實訓環節。計算機專業本科生的綜合實踐環節非常重要,但也是實際教學管理中一個非常困難的環節。我系的綜合實踐環節存在著多種運作模式的演化。
在2002年以前,本科生的綜合實踐環節主要是在系內完成,這一階段的主要情況是學生人數不多,且總體素質和基礎較好,每一位指導教師指導的學生人數平均在4人左右,而老師也能夠就自己的研究或課題提出若干可以研究的內容交給學生進行研究和實現,在這一實踐環節的支持下,學生的畢業論文也能夠寫得較為深入,論文總體質量較高。從2003年開始,由于應屆學生人數的激增,出現了一位指導教師需同時指導10人左右的局面,這時的學生從總體上看,其基礎和能力弱于往屆。我們采用與前面相同的指導制度,但效果并不理想。從2004年開始,為了配合本科教學評估,學校要求將畢業生全部置于校外實訓/實習基地進行綜合實踐。我們在當地和外地分別建立了4個較大基地,將大部分學生遣入其中進行實習。其結果是,除了少數負責任的單位外,很多實習單位將學生用在“打雜”上。小部分自己找實習單位的學生還存在著作弊的現象。為此,我們在2005年的開始,修改了軟件工程綜合實踐教學環節,針對全體學生,在市內選擇合格企業在校外進行實訓,其實訓內容和安排由系教學委員會認定,將考核權利下放給實訓單位,這一改革極大地提高了學生的積極性和參與意識,使得學生正式和企業進行了直接接觸,初步感受到了企業文化。但由于該企業實訓用的場地較少,全系學生分6批次才完成整個實訓,這加大了我們在管理上的難度。從2006年開始,我們又進一步改革了軟件工程綜合實踐環節,選擇了實力更強的校外IT企業進行合作,在校內使用我系的大型機房和設備,完全按照企業崗前培訓的模式,在整個實訓過程中融入企業文化,而實訓不僅講技術和工具方面的內容,還引入企業管理模式和競爭機制。這極大提高了學生的團隊合作精神和學生使用實際工具的能力,也迅速地將學生所學理論和知識轉化為實戰能力,提高了學生分析和解決問題的能力。這一綜合實踐環節得到了學生的認同,其實訓經驗在學生的就業過程中成為直接的資源,極大提高了學生的自適應力和競爭力。
在2007年,我們將在以往成功經驗的基礎上,進一步改革我們的綜合實踐方法,引入多個企業進行競爭,以便為學生提供更加廣泛的選擇。
5結束語
經過近幾年的改革和探索,我們的這一教學計劃實現了最初構思的效果,現在越來越多的學生到了國內外知名IT企業就業,達到了我們對工程應用型人才培養的目標。現以近三年的學生就業情況加以說明,具體情況參加下表所示,表中的數字說明,學生到企業、部隊等基層單位去的人數大為增加,這從某種層面上講,學生對自己的動手能力更有自信了,也說明了我們的教學改革初見了成效。

參考文獻
[1] 華中師范大學教務處編. 華中師范大學本科人才培養方案[M]. 武漢:華中師范大學出版社,2005.
[2] 華中師范大學教務處編. 華中師范大學本科(打通)人才培養方案[M]. 2006.
葉俊民(1965-),男,教授,博士,主要研究領域為軟件工程,軟件形式化方法
E-mail:jmye@mail.ccnu.edu.cn
本研究得到湖北自然科學基金面上項目(編號:2007ABA034)和華中師范大學校基金(2006AA22)資助。