宮法明 崔學榮
摘要:軟件工程學科的基本理論來自于工程實踐,學生不可能靠“聽”就完全掌握軟件工程的基本理論、方法和工具,而是要通過實際的“動手做”和“真正練”,才能真正體會和掌握軟件工程的理念。傳統的教學體系存在重理論而輕實踐,與企業需求脫離、與實際應用脫節等問題,所以學生常常感到內容抽象、枯燥、似懂非懂。同時國內IT企業發展相對落后,先進技術都掌握在國際大型IT行業協會或國際知名IT企業中,因此構建“國際化”的實踐教學體系尤為重要。
關鍵詞:實踐教學體系;國際視野;軟件工程;多維立體化
中圖分類號:G642.0 文獻標志碼:A 文章編號:1674-9324(2018)52-0142-03
軟件工程學科的基本理論是來自于軟件科學家、工程師的工程實踐,對于沒有經過實踐訓練過的學生來說,理解起來是很困難的[1]。然而,國內高校傳統做法是以教師課堂授課為主[2],教學內容重理論而輕實踐,與企業脫離、與應用脫節,學生常常感到內容抽象、枯燥、似懂非懂。
目前軟件工程教學存在的主要問題有:
1.軟件工程不是一門快速的科學,它自身的特點決定了它不是完全從書本和課堂上學習、理解和實踐的。學生不可能靠“聽”“講”軟件工程的基本原理,開發出實用的軟件,而需要在實際的“做”和“實踐”中去體驗和掌握軟件工程的思想。
2.許多教師缺乏使用軟件工程方法開發完整系統的經驗。他們只是根據教科書介紹一些基本原則。他們不能將當前軟件企業的實際案例整合到基本原則的解釋中。
3.當前的軟件工程教學內容普遍強調理論,忽視實踐。所謂的課程實驗是在缺乏軟件工程支持的開發環境中進行的。缺乏適合本科生教學使用的實驗環境和材料,使學生無法得到真正的鍛煉。實踐內容簡單,缺少“案例化”的示范、沒有統一的主線貫穿軟件工程全過程。
4.多門課程之間缺乏協調。教學內容不規范、不完整,課程之間銜接不好,內容上存在重復和缺失現象。采用的工具以及實驗訓練環境也五花八門,使學生無所適從。
5.很多高校軟件工程專業的畢業生卻面臨著就業困難、找不到理想工作的尷尬局面。這種人才供需錯位現象反映了目前高校對于高素質軟件人才的培養存在明顯的不足,主要表現在學生的工程實踐能力不高,無法滿足企業需要。
近年來,針對上述問題,國內的部分高?;蜍浖こ虒W院進行了相關的教學改革嘗試。例如:2014年國家教學成果獎云南大學軟件學院的“軟件工程人才培養CDIO改革實踐與創新”提出了SE-CDIO工程教育模式并應用于教育改革中,在明確人才培養目標、人才培養大綱、課程體系、教學方法改革的實施、保障與評價改進體系的建立等方面進行了創新與實踐。國家級教學成果獎重慶大學軟件學院的“構建漸進性階梯式工程實踐教學體系,造就實用型軟件工程創新人才”借鑒國際軟件工程標準規范,探索了“三階八環”的軟件工程實踐模型,并構建了漸進性、階梯式軟件工程人才培養的實踐教學體系。
另外,北京交通大學的盧葦教授致力于國際化軟件工程人才培養模式的探索與改革,針對國際化人才培養理念、人才培養目標、人才培養制度、人才培養模式等諸多方面進行了大膽地探索與實踐[1]。華中科技大學IBM技術中心的黃曉濤教授將企業和高校作為人才培養的主體,從培養理念、培養體系、課程體系、質量評價、教學隊伍等方面對卓越工程師的素質與能力培養過程進行了有效控制,取得了一定效果。
但是上述研究成果和參考文獻均未充分介紹國際化、企業化、立體化“三化合一”的實踐教學體系,因此本文面向國際上權威的軟件工程標準規范和企業實際需求,進一步明確了軟件工程各知識點之間的關系,構建了點、線、面、體“立體化”的實踐教學體系。實踐證明,該“立體化”、“國際化”的實踐教學體系實現了對學生工程實踐能力的前后連貫、逐層遞進、持續有效地培養。
一、知識域(點)——以SWEBOK的知識域作為學生應該掌握的核心知識點
在1999年5月,ISO和IEC的第一個聯合技術委員會推出了軟件工程機構指南。(Guide to the Software Engineering Body of Knowledge,SWEBOK)項目。電氣與電子工程師協會(IEEE)和美國設計計算機協會(ACM)是一個主要的組織,有來自幾十個國家和地區的數百名軟件工程專家參加。Switbk草案的最新版本是2014版。
SWEBOK指南的目標是:①促進軟件工程知識,實現世界規范;②明確軟件工程等相關學科,確定軟件工程學科的范圍;③反映軟件工程學科內容的特點;④確定軟件。工程本體知識的各個主題為編寫相應的課程和專業資格認證材料奠定了基礎。SWEBOK的10個知識域包括:
(1)軟件需求,包括:軟件需求基礎、過程、獲取、分析、規格說明、確認、實踐考慮等。
(2)軟件設計,包括:軟件設計基礎、軟件設計關鍵問題、軟件結構與體系結構、軟件設計質量的分析與評價、軟件設計符號、軟件設計的策略與方法等。
(3)軟件構造,包括:軟件構造基礎、管理構造、實際考慮等。
(4)軟件測試,包括:軟件測試基礎、級別、技術、與測試相關的度量、過程等。
(5)軟件維護,包括:軟件維護基礎、軟件維護的關鍵問題、維護過程、維護技術等。
(6)軟件配置管理,包括:軟件配置管理過程的管理、軟件配置項、軟件配置控制、軟件配置狀態統計、軟件配置審計、軟件發布管理和交付等。
(7)軟件工程管理,包括:啟動和范圍定義、軟件項目計劃、軟件項目實施、評審與評價、關閉、軟件工程度量等。
(8)軟件工程過程,包括:過程實施與變更、過程定義、過程評估、過程和產品度量等。
(9)軟件工程工具和方法,包括:軟件工程工具、軟件工程方法等。
(10)軟件質量,包括:軟件質量基礎、軟件質量管理過程、實踐考慮等。
將SWEBOK的知識域作為學生應該掌握的核心知識點,進一步細化各知識點的教學大綱、教學標準和教學要求,解決了之前教學內容不規范、不完整,課程之間無銜接、內容重復等問題,達到了對軟件工程卓越工程師教育培養的標準和要求。
二、教學案例(線)——以CDIO的實際工程案例為主線
軟件工程理論是軟件大師們在工程實踐中總結、提煉而成的,需要在工程實踐環境下進行教學和實踐,原有的教程均以理論傳授為主,缺少“案例化”的示范,沒有統一的主線貫穿軟件工程全過程,學生無法將軟件工程各環節進行有效地關聯。
以國際工程教育界公認的MIT(麻省理工學院)的CDIO(Conceive Design Implement Operate)工程教育理念為指導,以貫穿軟件工程生命周期五個階段、融合CDIO四個方面的“軟件需求構思(C)→軟件架構設計(D)→過程實現測試(I)→軟件運行管理(O)”的統一的實際工程案例為主線,與IBM工程師合作編寫《軟件需求》→《軟件架構設計》→《軟件工程過程》→《軟件測試》→《軟件項目管理》等五本“案例化”系列教程。
在系列教程中,由以實際項目為背景的“統一的教學案例”將軟件工程的實踐方法、實踐結果檢驗、實踐考核評價等融會貫通,讓學生從“可實踐”軟件工程的角度學習和運用軟件工程的思想以及現代技術解決軟件工程實際問題。
三、開發過程(面)——以IBM RUP為軟件開發過程為框架
1.IBM軟件敏捷化開發過程RUP。IBM公司是世界計算機領域的藍色巨人,特別在軟件工程領域的影響力是世界領先的,掌握著軟件工程領域的各種先進技術和工具。
IBM的RUP(Rational Unified Process,統一軟件開發過程)是一套敏捷化的軟件開發過程框架,RUP吸收了多種開發模型的優點,具有很好的可操作性和實用性,學?;蚱髽I可根據自身的實際情況,以及項目規模對RUP進行裁剪和修改,以制定出合乎需要的軟件工程過程。
RUP憑借與統一建模語言(Unified Model Language,UML)的良好集成,以及多種CASE(Computer AidedSoftware Engineering,計算機輔助軟件工程)工具的支持,不斷升級與維護,迅速得到業界廣泛地認同,越來越多公司(如IBM、微軟、Sun)將它作為軟件開發模型框架,RUP已經成為一種事實上的工業標準。
2.“軟件敏捷化開發”課程群構建“軟件開發過程”框架。“打破課程界限”,融合IBM的RUP形成了《軟件開發過程》、《軟件需求開發與工程》、《軟件項目管理》、《軟件測試與質量工程》、《軟件架構設計》等五門課的以軟件“開發”過程為核心的“軟件敏捷化開發”課程群。在課程群建設過程中,以RUP為核心,結合企業的實際工作流程、最佳實踐和實際案例,覆蓋了一系列IEEE軟件工程標準。以及RUP、Rational Rose、CVS、Junit等軟件工程工具和環境,使學生掌握當前最先進的軟件工程方法和技術。
四、生產過程(體)——以西門子的PLM為軟件工業生產過程的體系規范
1.軟件工業化生產與軟件產品線。由于軟件危機和軟件競爭的存在,各大IT企業為了獲得投資回報,必須盡最大可能地重復利用那些具有共同特性的軟件組件,這就是軟件的工業化生產或稱“軟件工廠”。軟件產品線是軟件密集型系統的集合,具有一組可管理的共同特征,這些共同特征滿足特定的市場或任務需求,并以預定義的方式從共同的核心資產開發。軟件工業化生產過程是“組裝”組件而不是重新“開發”軟件,主要活動是“集成”而不是“編程”。
2.西門子工業4.0與產品生命周期管理PLM。在德國工程院、西門子公司等德國學術界和產業界的推動下,“工業4.0”項目于2013年4月在德國被正式推出。“工業4.0”的呼聲在中國也越來越高,中國政府正在推進“中國制造2025”和“德國工業4.0”的戰略對接。工業4.0中的智能制造與軟件技術有關。工業4.0的本質是以“信息物理系統”為基礎實現“智能工廠”。該系統包括PDM(生產數據管理)、SCM(產業鏈管理)、PLM(產品生命周期管理)、CAD(計算機輔助設計)和數據處理系統,能夠對各種分散的信息進行匯總和分析,解決生產問題:產品生命周期的不斷縮短,交貨周期的加速和客戶定制需求的多樣化。
西門子的PLM(Product Lifecycle Management,產品生命周期)是一種支持產品全生命周期信息的創建、管理、重用、分發和應用的一系列解決方案,它能夠集成與產品相關的人力資源、流程、應用系統和信息,與日益受到重視的“工業4.0”深度集成。
3.“軟件產業化生產”課程群構建“軟件工業生產過程”系統規范。以西門子PLM為軟件工業生產過程的系統規范,以軟件“重用”過程為中心,開設“軟件重用與構件開發課程設計”、“軟件工程實踐”、“軟件工程師國際認證”、“軟件工程經濟學”、“企業實踐”等5門實踐課程的軟件產業化“課程群”。
課程組依托西門子PLM生產過程組織教學內容和實踐環節,合理安排活動、工件、項目案例、評價標準、關鍵知識點、時間安排、里程碑等涉及各種角色的內容。在教學過程中,如教師、學生、評價團隊等,形成了可操作的教學,過程系統規范。通過課程組在統一的項目案例中引入相關的知識點,使知識點之間的聯系一目了然,有助于學生真正理解軟件工業生產過程的知識體系。
五、結束語
為了克服軟件工程實踐教學過程中的困難,以校企深度融合為核心,以卓越工程師教育培養標準為導向,構建了“點-線-面-體”四級“立體化”的實踐教學新體系。其中,“點”——以國際IT行業著名的IEEE和ACM協會的SWEBOK知識域作為學生應該掌握的核心知識點;“線”——以國際工程教育界公認的麻省理工學院的CDIO的實際工程案例為主線;“面”——以國際上軟件工程最著名的企業IBM的RUP為軟件開發過程框架;“體”——以國際上“工業4.0”倡導的企業西門子的PLM為軟件工業生產過程的體系規范。
在國際視野下,構建的“立體化”的實踐教學新體系,實現了理論教學與實踐訓練的有效融合,可以讓學生經歷從理論到技術、從技術到生產、從生產到運營的全過程,使“軟件工程理論來源于實踐并服務于實踐”的理念得到貫徹。
參考文獻:
[1]盧葦,胡海青.戰略性選擇超常規發展——中國示范性軟件學院十年巡禮之一[J].高等工程教育研究,2011,(04):35-45.
[2]劉強,陳越,駱斌,等.“軟件工程”課程教學實施方案[J].中國大學教學,2011,(02):41-44.