周璀 段光中 劉松平
摘 要:為了順應當前軟件工程教育國際化和工程化的發展需求,改善軟件工程教學質量和效果。本文針對當前教學中存在的問題提出對《軟件工程》的理論教學、實踐教學、課程評價體系進行了改革與探索,構建了課程知識體系,大膽將理論知識糅合到實踐教學中。該教學改革不但提高了學生的學習積極性,促進了掌握軟件工程的理論基礎知識、先進方法和最新技術,且為后續深入專業的學習打下堅實的基礎,極大地提高了教學質量。
關鍵詞:《軟件工程》 教學改革 理論教學 實踐教學
中圖分類號:S762.2 文獻標識碼:A 文章編號:1672-3791(2012)10(c)-0146-02
隨著社會信息化技術的普及和軟件產業的迅速發展,軟件產業成為信息產業中增長最快的領域,然而高端軟件人才的匱乏嚴重阻礙了我國IT企業的發展,因此提高軟件行業從業人員具備必要的軟件開發、維護與項目管理的能力尤為重要[1]。《軟件工程》是高校計算機相關專業開設的一門專業核心課程,旨在培養學生理解和掌握軟件工程的理論、技術和方法,應用工程的思維進行軟件開發、管理和維護。為了順應當前軟件工程教育國際化和工程化的發展的需求,高等院校需要切實加強軟件工程課程的創新與改革,這對軟件工程人才的培養至關重要。
當前《軟件工程》課程教學中存在的一系列問題,直接影響了教育質量和教學效果。具體表現為:教學內容重理論而輕實踐,不能有效地培養學生軟件開發技能[2];教學案例缺乏完整性和實用性,不能幫助學生從整體上全面理解軟件開發的各環節及其之間的關聯[3];實踐教學也缺乏系統性和針對性,不能將基本原理融入當前軟件實際案例中去講解,教學內容與軟件工程實踐有明顯的差距等。因此,迫切需要對教學體系進行改革,形成一個融基礎理論、實驗教學、工程實踐為一體的整體培養機制,讓學生的基礎知識、科學素養、專業知識、創新能力、工程能力和職業素質都得到全面均衡的發展[4]。本文將從理論教學、實踐教學以及教學評價幾個方面進行改革與探索。
1 理論教學探索與思考
為了滿足當前軟件工程教育國際化和工程化的發展要求,《軟件工程》教學以IEEE發布的軟件工程知識體系為基礎,結合基礎知識、先進技術和工程實踐等方面構建該門課程的知識體系。《軟件工程》課程知識體系分為基礎、應用、實踐三個部分。基礎部分為理論教學,根據教學目的和教學要求,采用案例及問題驅動等教學方法,講解軟件工程的理論基礎知識,包括軟件生命周期各個階段、軟件質量和軟件項目管理等核心內容,通過案例的分析,促進學生的獨立思考,提高其對理論知識的理解和掌握。應用部分是以當前流行的統一開發過程、面向對象技術和UML語言為核心,融入實際案例,Rational Rose、Visio、Project、SVN、Loadrunner等軟件工程工具和環境,使學生掌握當前先進的軟件工程方法與技術。實踐部分要求學生分組組建團隊協作完成一個軟件系統的開發,讓學生從“可實踐”軟件工程的角度學習和運用軟件工程的思想和現代技術解決軟件開發問題,擁有識別、分析和解決具體問題的能力。《軟件工程》課程知識體系如圖1所示。
單純地講授《軟件工程》的理論和方法顯得枯燥且難以理解,若能通過一些軟件開發案例對理論知識進行形象的表述,不僅能讓學生易于理解這些理論和方法,亦能建立軟件開發的系統化與工程化觀念和質量意識。那么如何收集經典案例以及采納何種教學方法是關系理論教學成敗的關鍵因素。首先案例的選擇與設計要有針對性,如結構化和面向對象,這兩種方法側重知識點不同講解所貫穿的典型案例應不同,其次案例的選取應是學生熟悉的領域且它的實用性能激發學生的求知欲和興趣。如在軟件工程技術方面,作者結合學生成績管理信息系統、宿舍水電費管理系統、教學管理系統等,論述需求分析、軟件體系結構設計、用戶界面設計、詳細設計和軟件測試等內容,重點討論基于案例的面向對象方法和組件技術。采用何種教學方法應根據具體的知識點而定,如以IBM初期系統開發失敗的緣由為例利用問題驅動法引出軟件工程的概念和原理;對于軟件開發工具Rational Rose的介紹則采用項目驅動法。因此,在理論教學中,把抽象的知識盡量形象化、案例化,采用引導式、探索式、討論式和交互式等教學方式營造融洽輕松的學習氛圍,鼓勵學生獨立思考,查閱資料,細心體會當前軟件工程的精髓。
2 實踐教學內容創新模式
應用部分和實踐部分均屬于實踐教學,在此教學過程中,實施項目驅動教學法,實驗設計以項目開發為主,模擬企業軟件的項目管理和開發過程,碰到問題困難,進行師生互動討論尋找解決方案,開發完成通過成果展示來進行教學評價,整個過程使學生初步體驗到一個軟件項目開發的全過程。實踐教學活動的流程具體如下。
(1)分配任務:第一次課,要求學生以項目小組(一般5~6人,自由組合,每個成員扮演項目開發過程中的不同角色)的方式組建開發團隊協同開發一個規模及難度適中的完整項目,要求按照正規軟件開發流程組織實施,完成項目開發過程中形成的分析、設計、編碼和測試文檔,同時將Rational Rose、Visio、Project及Loadrunner等軟件工具在實施過程中進行有效地應用。
(2)組建團隊:學生自愿組建團隊,選出組長,每組角色包括項目經理、系統分析員、軟件設計師、軟件開發工程師、軟件測試工程師等,組員項目角色可隨項目開發進度而調換。項目實施過程中采取組長負責制,負責小組的討論和項目實踐的安排,分配組員任務,各小組查資料,自選軟件項目,分析開發的各項任務的安排和溝通,制定項目的開發計劃。
(3)計劃可行性評定:授課教師審核各組項目及項目計劃實施的可行性,不行則指導小組重新選定軟件項目和制定項目計劃。符合要求,方可進入實施階段。
(4)項目實施階段:小組成員根據各自的任務查找資料,收集解決方法,定時討論交流,各個模塊間相互配合協調完成任務。包括軟件分析設計階段,完成軟件需求規格說明;設計軟件系統的總體結構;對功能模塊進行編程測試,完成項目實現編寫所有相關文檔,測試和調試代碼。整個實施過程由授課教師控制項目的進度和質量,同時,教師要充分發揮引導作用,讓學生在實踐軟件設計和開發技能的同時,通過協作培養學生多人之間的溝通能力和團隊協作精神。
(5)項目驗收:根據軟件開發流程的各個階段成果包括可行性分析報告、需求規格說明書、項目計劃書、總體設計報告、詳細設計說明書、軟件測試報告、項目開發總結報告等。項目驗收采用階段驗收分析設計文檔,每次均以小組的形式提交作業。教師根據提交的材料結合學生是否熟悉軟件常用技術和工具按照軟件工程管理方法進行評審,還要求各組之間互評,發現不足之處進行討論,提供給大家一個互相交流的機會。項目結束后,每組要組織答辯,先由小組長對項目基本情況及組員作簡要介紹,然后讓各組員對自身完成的任務進行PPT答辯,教師和其他同學針對該成員實際負責的部分進行提問。最后項目組提交系統和所有文檔。
3 教學評價體制改革
教學評價是課程教學的必要環節,在本次教學改革實踐中,將課程學習評價分成3個組成部分:理論考核占50%,項目實踐成績占30%,考勤、平時作業、實訓練習等占20%。項目實踐成績的評定包括小組成績和個人成績兩部分,各占50%。小組成績為小組中所有成員開發項目的考核成績,包括各階段成績的平均值與最終答辯成績;個人成績為小組成員在項目開發過程中個人的考核成績。度量因素包括個人分配工作量及難易程度、平時工作態度及項目匯報時表現等。這種評價體制充分調動了學生學習的主動性和合作精神,教學效果明顯。
4 結語
本文對《軟件工程》的課程教學進行了探索和改革,以IEEE公布的軟件工程知識體系為基礎構建了軟件工程課程知識體系,提倡理論教學與實踐教學并重。理論教學著重于經典案例的選取及教學方法的采納,理論教學不再是抽象的講授,而是貫穿案例的具體實踐操作,達到了理論與實踐的緊密結合。實踐教學以項目為驅動模擬企業軟件的項目管理和開發過程,引導學生積極思考和參與討論,教師由知識的灌輸者成為學習的引導者,學生由被動地接受教育變成主動地探索知識。實踐證明,本課程極大地提高了學生的學習興趣,取得了良好的教學效果。在今后的教學工作中,將進一步完善和實踐教學改革的內容,逐步使這門課程規劃化、工程化,取得更好的教學效果。
參考文獻
[1] 張海藩.軟件工程導論[M].5版.北京:清華大學出版社,2008:5-7.
[2] 董躍華,楊書新,李淑芝.軟件工程專業多元化實踐教學體系研究[J].江西理工大學學報,2009,30(3):53-55.
[3] 霍英.項目驅動教學法在軟件工程課程中的實踐[J].計算機教育,2010,17:123-125.
[4] 楊文君.軟件工程實踐教學改革探討[J].計算機工程與科學,2011,33(A1):55-57.