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