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