劉丹 張銳銳
摘 要:《軟件工程》課程作為培養(yǎng)學生軟件工程能力的一門核心課程,通過構建先進的課程體系、工程化案例,將抽象的軟件工程方法具體化、實例化,使學生更好地理解軟件工程基本原理和方法;通過個人實踐項目和團隊合作項目開發(fā),全面激發(fā)學生的學習樂趣,使學生增加實踐經驗,提高動手能力和團隊協(xié)作能力,體驗軟件項目開發(fā)中的崗位角色;通過這些方式方法,更深入的促進《軟件工程》教學改革。
關鍵字:軟件工程 教學改革 驅動式教學
軟件工程是綜合運用計算機理論和技術以及工程管理的原則和方法,按照用戶需求及設定的預算和進度,實現特定功能的軟件產品的定義、設計、開發(fā)、測試、發(fā)布和維護的工程或以之為研究對象的學科。由此可見,學科特點決定了軟件人才的培養(yǎng)需要兼顧系統(tǒng)的理論知識掌握和綜合的工程實踐鍛煉。然而,軟件工程人才培養(yǎng)普遍存在重理論、輕實踐,理論學習不系統(tǒng)、實踐鍛煉不完整,以及考核標準不科學等問題,難以達到社會對軟件開發(fā)人才的需求標準。軟件工程課程的改革思路和建設效果對學生工程實踐能力和創(chuàng)新意識具有重要的影響作用,為了達到對軟件人才培養(yǎng)的較高要求,需要對該課程的教學內容、實踐流程、指導方法和考核方式進行了全方位的改革。
一、構建完整課程體系
IEEE 發(fā)布的軟件工程知識體系包括10 個知識領域:軟件需求、軟件設計、軟件構造、軟件測試、軟件維護、軟件配置管理、軟件工程工具和方法、軟件工程過程和軟件質量。參考這10個領域知識,根據教學目標,結合基礎知識、先進技術和工程實踐等方面組織整個課程內容,建立基于知識、應用、實踐和綜合型軟件項目開發(fā)四維一體的課程教學體系結構。應用體系包括用例圖、類圖、狀態(tài)圖、順序圖、Rational Rose、能力成熟度模型、軟件重用和軟件構件。實踐體系包括三個具體的小規(guī)模軟件的設計和開發(fā)。綜合型軟件2組開發(fā)體系包括兩個具體的中等規(guī)模軟件的設計與開發(fā)。
二、實施項目驅動式教學
軟件工程的理論和方法是從眾多軟件開發(fā)實踐中總結出來的,但是對于缺乏軟件開發(fā)實際經驗的本科生來說,單純地講授理論知識往往使學生感到枯燥無味且難以理解。
1.對于知識內容,引入一些經典案例進行教學。諸如愛國者導彈、網絡病毒攻擊、ARIANE 5 火箭等,從這些經典案例出發(fā),了解軟件危機產生的原因,逐漸了解到軟件危機的產生不僅僅只是程序代碼的錯誤,更多的是設計上的缺陷,認識到軟件工程的重要性,也了解到軟件工程要解決的主要問題,即以軟件工程的原理和方法為指導,嚴格遵循軟件過程規(guī)范和步驟。在這個過程中,案例的選擇非常重要。案例選得過于簡單,不能突出軟件工程的重要性,案例選得過于復雜,又不能提高學生的學習興趣。所以,應選擇一些有代表性的,突出反映軟件工程某一方面且又帶有一定趣味性的案例。
在軟件項目管理方面,引入項目管理的思想,通過諸如微軟公司和 IBM 公司等的人員組織與項目管理,使學生了解到成本、人員、進度、質量、風險等因素在軟件開發(fā)過程中的重要性,弄清項目管理中人員、產品、過程和項目之間的關系,特別強調在后期的團隊協(xié)作和項目溝通中這些因素的重要性。
2.在軟件工程的應用方面,設計針對性的案例。重點介紹 UML 知識,并結合 Rational Rose 講解其具體應用,還應介紹 CMM 軟件的重用技術、軟件構件等知識,引導學生自學新知識、新技能。
3.對于軟件工程的實踐教學,對于每一個具體軟件過程階段,應設計具體的應用案例。如: 銀行計算機存儲系統(tǒng);機票預訂系統(tǒng);患者監(jiān)護系統(tǒng)等。這些具體的應用案例,雖說不是一個完整的軟件工程開發(fā),但是通過這些具體的應用案例,學生能夠更好的理解和掌握軟件開發(fā)每一個階段的具體任務和方法,也對軟件項目管理有一定的認識。
4. 綜合型軟件項目開發(fā)是對軟件工程知識的綜合應用,結合成績管理系統(tǒng)、圖書管理系統(tǒng)、問卷調查系統(tǒng)、視頻游戲軟件等教學案例,論述各個系統(tǒng)在需求分析、體系結構設計、用戶界面設計、詳細設計、軟件測試和軟件維護等等方面所做的具體工作和設計的技術問題。
三、構建合理開發(fā)團隊
實踐教學是本課程中一個重要的組成部分,一般在指導老師的帶領下以團隊的方式進行,要求一個團隊通常由3-5人組成,開發(fā)一個實際的具有一定規(guī)模的軟件系統(tǒng),包括實驗準備、分析設計、編程測試和軟件交付等環(huán)節(jié),最終要提交軟件、開發(fā)文檔和進行答辯。通過實踐環(huán)節(jié),側重培養(yǎng)學生發(fā)現問題、獨立分析問題和解決問題的能力以及團隊合作精神,使學生初步體會到一個軟件開發(fā)項目全過程。同時,在實踐過程中,也要注重將小組協(xié)作、過程管理、成本因素與參與興趣相結合,使學生在一個規(guī)范可控的過程中完成實驗項目的開發(fā)。
對于軟件工程課程實踐環(huán)節(jié)來說,僅僅提供一個軟件開發(fā)項目是遠遠不夠的,學生還需要一個適合協(xié)作式項目開發(fā)的軟件工程環(huán)境。這個環(huán)境應提供軟件開發(fā)所需要的相關硬件和軟件。營造一個適合軟件工程課程實踐項目的軟件工程環(huán)境是軟件工程實踐教學取得良好效果的關鍵。因此,應專門編寫軟件工程的實驗指導書,包括開發(fā)過程模型、系列文檔模板、軟件編碼規(guī)范、階段評審標準等,使實驗和實踐環(huán)節(jié)規(guī)范有序; 同時將常用的軟件工程工具引入到課程實驗項目中,使用配置管理工具將所產生的各種制品控制在有序管理之下,使用建模工具和測試工具進行軟件的分析、設計和測試。
四、設置多元化考評方式
傳統(tǒng)考評方式越發(fā)不能體現學生軟件開發(fā)等實際操作能力,而且和多元教學模式也越發(fā)不配套,為此采取多元化考評方式才是科學有效的,考評環(huán)節(jié)應當包括筆試、設計課程、角色扮演與項目總結等諸多方面。為此,評分比例可考慮按如下幾方面安排與改進: 一是筆試可規(guī)劃占據整體成績 50% 的比例,主要針對學生理論知識掌握與學習效果進行考核;二是課后的角色扮演占據整體成績 25% 左右的比例。教師按照學生角色扮演表現給予評分,按如下三部分取得平均值:即整體項目成績、自主完成文檔成績、小組其它成員完成文檔平均成績;三是項目總結與心得體會比例也大約占據 25% 左右。按照學生軟件研發(fā)時撰寫收獲教訓或經驗成長報告,小組成員構建開發(fā)日志情況互相評分,以此作為整體考核成績的第三部分。
五、結束語
伴隨著軟件開發(fā)行業(yè)的迅速發(fā)展,《軟件工程》的教學改革也勢在必行,創(chuàng)新教學理念,構建先進的課程體系;創(chuàng)新教學方法,推動案例化探索式教學;創(chuàng)新教學模式,全面激發(fā)學生的學習樂趣, 通過多種方式全方面促進《軟件工程》教學改革發(fā)展。
參考文獻
[1]《軟件工程》課程的教學改革探索[J]. 金淑娟,楊滋榮. 教育教學論壇. 2015(31)
[2]《軟件工程》實踐教學改革探討[J]. 任小娟. 軟件工程. 2017(10)
[3] 基于校企合作的應用型高?!盾浖こ獭氛n程教學改革[J]. 陽建中,胡俐蕊,黃東,李賢陽,陳慧蓉. 現代計算機(專業(yè)版). 2017(18)
[4]基于就業(yè)的軟件工程課程教學改革[J]. 李小榮,疏志年,朱愛國. 巢湖學院學報. 2014(06)