范慶春
(合肥師范學(xué)院 計算機學(xué)院,安徽 合肥 230601)
由IEEE Computer Society 制定的軟件工程知識體系SWEBOK,全名是Guide to the Software Engineering Body of Knowledge,定義了軟件工程學(xué)科的內(nèi)涵,自2004年發(fā)布至今,有效地推動了軟件工程專業(yè)教育的發(fā)展。SWEBOK 第3 版①IEEE Computer Society,SWEBOK V3,http://www.computer.org/web/swebok/v3-guide,2014.(后統(tǒng)稱為SWEBOK V3)延遲到2014年2月份終于正式發(fā)布,該版本擴充了近十年來的軟件工程研究與實踐的最新成果。對于廣大應(yīng)用型本科院校來說,軟件人才的培養(yǎng)責(zé)無旁貸,而目前面臨的最大問題是軟件人才的需求和供給不匹配,軟件專業(yè)培養(yǎng)的學(xué)生,實踐應(yīng)用能力和企業(yè)的人才需求相脫節(jié)。一方面是軟件公司招聘不到合適的學(xué)生來工作,另一方面是高校培養(yǎng)的人才和企業(yè)的需求有差距②韓中元,雷國華,李軍:《應(yīng)用型本科軟件工程人才培養(yǎng)模式的探索與實踐》,《計算機教育》2010年第10 期,第26-29 頁。。合肥師范學(xué)院軟件工程專業(yè)嚴格遵循建設(shè)地方應(yīng)用型高水平大學(xué)要求,立足安徽,面向基層,根據(jù)當前對口企業(yè)的實際需求,參考SWEBOK V3 的知識體系來改革現(xiàn)有的人才培養(yǎng)方案,在專業(yè)核心課程、實踐教學(xué)、校企合作等多方面作出卓有成效的改革與探索。
相較于第2 版的軟件工程知識體系,SWEBOK V3 增加到了15 個知識域,共有102 個知識點,并且對第2 版的10 個知識域上也做出了很大的調(diào)整③馬培軍,李東:《軟件工程知識體SWEBOK 的新進展——SWEBOK V3》,《計算機教育》2013年第1期,第66-68 頁。。SWEBOK V3 的內(nèi)容體系④同①。如表1 所示。
表1 SWEBOK V3 的內(nèi)容體系
?
在SWEBOK V3 中,軟件設(shè)計新增了用戶界面設(shè)計的內(nèi)容;把軟件工具的內(nèi)容從原先的“軟件工程工具和方法”分散到其他各知識域中,并將該知識域重命名為“軟件工程模型和方法”,使其更關(guān)注軟件模型類型、模型分析和建模等內(nèi)容,同時也體現(xiàn)出了掌握這些軟件工具的重要性;在軟件構(gòu)造中突出了構(gòu)造技術(shù)知識點,把包括中間件、測試驅(qū)動編程等16 種構(gòu)造技術(shù)羅列出來。
新增的軟件工程職業(yè)實踐知識域,包括職業(yè)化、團體動力和心理、溝通技術(shù)三個部分。涉及的內(nèi)容有評審、認證和許可,道德守則、職業(yè)操守和軟件工程標準的性質(zhì)和作用,軟件對經(jīng)濟的影響,雇傭合同、法律問題、文檔、權(quán)衡分析等。團隊動力和心理則包括小組或團隊工作動態(tài),個體認知,如何和利益相關(guān)者交流,處理復(fù)雜問題、不確定性及有二義性的問題,處理多元文化環(huán)境的問題。溝通技巧則包括閱讀、理解和總結(jié),寫作、表達技巧等內(nèi)容。
SWEBOK V3 中提出了軟件工程教育基礎(chǔ)的四個知識域,包括軟件工程經(jīng)濟學(xué)、計算基礎(chǔ)、數(shù)學(xué)基礎(chǔ)和工程基礎(chǔ)。軟件從業(yè)者要在這四個知識域上打好扎實的基礎(chǔ)后再系統(tǒng)學(xué)習(xí)軟件工程實踐的知識域,才是比較完整的。SWEBOK V3 比第2 版的SWEBOK 更加全面,更加突出了軟件工程職業(yè)實踐和軟件工程教育基礎(chǔ)。
SWEBOK V3 的知識域有15 個,共102 個知識點,涉及到軟件工程的方方面面,如何參考SWEBOK V3 來設(shè)計軟件工程專業(yè)課程體系和課程內(nèi)容,尤其是在應(yīng)用型本科院校中的軟件工程專業(yè),如何參考SWEBOK V3 進行專業(yè)課程體系的改革,就是一個很有實際意義的課題了。
SWEBOK V3 中,軟件工程的知識架構(gòu)是一個有機整體,軟件工程專業(yè)在許多高校中是從計算機科學(xué)與技術(shù)專業(yè)演變過來的,往往是在計算機科學(xué)與技術(shù)專業(yè)的課程基礎(chǔ)上,再加上若干門軟件工程課程,但這顯然是不科學(xué)的。雖然軟件工程專業(yè)與計算機科學(xué)與技術(shù)專業(yè)有許多相通之處,但是也存在著很多不同的地方。軟件工程教育基礎(chǔ)部分的工程經(jīng)濟學(xué)知識域和工程基礎(chǔ)知識域強調(diào)了軟件要作為一個系統(tǒng)工程來實施,需要學(xué)習(xí)軟件工程經(jīng)濟學(xué)、風(fēng)險和不確定性、經(jīng)濟學(xué)分析方法、建模和仿真等知識,這啟示著軟件工程專業(yè)需要著重培養(yǎng)學(xué)生的工程思維方式,應(yīng)從大學(xué)一年級就開始對軟件工程專業(yè)的學(xué)生進行工程思維、科學(xué)素養(yǎng)的訓(xùn)練。
軟件工程專業(yè)要以嚴謹?shù)恼n程體系來培養(yǎng)學(xué)生。在課程切分上可以改變過去以科研方向來切分課程的模式,應(yīng)以項目規(guī)模的大小來切分課程,以崗位需求來對課程進行重新規(guī)劃,要根據(jù)崗位來確定專業(yè)能力,專業(yè)能力要對應(yīng)到具體的知識點模塊上,形成崗位-能力-知識點模塊三級體系,而不同知識點的組合即是專業(yè)方向。應(yīng)用型本科院校的軟件工程專業(yè)主要培養(yǎng)的是未來的軟件工程師,所以必須要培養(yǎng)學(xué)生堅實的工程思維方式,以工程的原則、方法、手段來完成軟件的開發(fā)和維護。要把工程思維融入到軟件工程專業(yè)的課程體系中,大學(xué)本科四年中必須要貫徹工程訓(xùn)練。軟件專業(yè)的課程講授切忌照本宣科,不是教材來確定授課內(nèi)容,而是由知識點模塊來確定授課內(nèi)容,相關(guān)的課程可以形成課程群,合理安排好課程內(nèi)容。
統(tǒng)觀SWEBOK V3,其核心在于工程實踐,實踐教育在軟件工程專業(yè)的教學(xué)中舉足輕重①范慶春,周秋平,王凡:《軟件工程課程實踐教學(xué)研究》,《合肥師范學(xué)院學(xué)報》2012年第6 期,第64-67 頁。,不只是輔助理論教學(xué),而是要在教學(xué)中與理論教育有同等的地位,甚至在某種程度上超過了理論教育,要切實提高實踐教育地位,合理規(guī)劃實踐教學(xué)內(nèi)容,完善實踐教學(xué)評價體系②王智鋼,田祥宏,張燕等:《應(yīng)用型本科軟件工程專業(yè)實踐能力培養(yǎng)研究》,《計算機教育》2014年第10期,第94-96 頁。。部分實踐性強的課程可以直接安排到實驗室去授課,要切實做到學(xué)中做、做中學(xué)。
軟件工程專業(yè)要構(gòu)建具有滿足實踐教學(xué)需要的完備實踐教學(xué)體系,主要包括實驗課程、課程設(shè)計、實習(xí)、畢業(yè)設(shè)計,四年的本科學(xué)習(xí)中總體代碼工作量不少于上萬行。實踐部分的課時要有一定的保證,不能少于總課時的25%,在實驗課程中要有一定數(shù)量的綜合性、設(shè)計性實驗。課程設(shè)計環(huán)節(jié)要安排2~3 個有一定規(guī)模的系統(tǒng)的設(shè)計與開發(fā)。實習(xí)環(huán)節(jié)應(yīng)建立相對穩(wěn)定的實習(xí)基地,使學(xué)生認識和參與生產(chǎn)實踐。畢業(yè)設(shè)計的選題應(yīng)結(jié)合工程實際,有明確的應(yīng)用背景,有適當?shù)墓ぷ髁亢碗y度;培養(yǎng)學(xué)生的工程意識、協(xié)作精神以及綜合應(yīng)用所學(xué)知識解決實際問題的能力;對畢業(yè)設(shè)計的指導(dǎo)和考核應(yīng)邀請企業(yè)或行業(yè)專家參與。
SWEBOK V3 中的軟件工程實踐部分的知識域新增的軟件工程職業(yè)實踐包含了職業(yè)化、團體動力和心理和溝通技巧等三個部分,而這三部分的內(nèi)容恰是以前在大學(xué)本科教育中沒有引起足夠重視的部分,這些實踐能力的培養(yǎng)僅僅在學(xué)校的環(huán)境中是很難得到完全鍛煉的。這就需要校企合作。
校企合作建設(shè)主要包括兩個方面:一是邀請企業(yè)工程師到學(xué)校來授課,引進企業(yè)的真實的開發(fā)案例進行案例驅(qū)動式教學(xué),或者開設(shè)專題講座形式,對企業(yè)的人才需求、企業(yè)文化等作介紹;二是積極開拓校外實習(xí)基地,通過選拔一批優(yōu)秀的學(xué)生進駐企業(yè)進行實習(xí),可以采取校企聯(lián)合培養(yǎng)的模式,從而實現(xiàn)高校與企業(yè)的雙贏。
SWEBOK V3 中軟件工程知識更偏重企業(yè)實踐。為了更好地培養(yǎng)學(xué)生,必須要建立一支既能上好課又具有企業(yè)項目開發(fā)能力的師資隊伍,軟件工程專業(yè)的教師既要講授軟件開發(fā)和維護的知識,還要講授軟件工程管理、配置管理等方面的知識,而這樣的要求與當前軟件工程專業(yè)教師的結(jié)構(gòu)不匹配。當前,大部分教師是從學(xué)校碩士或博士畢業(yè)后直接走上教師崗位的,項目開發(fā)經(jīng)驗比較缺乏,對于SWEBOK V3 中的工程實踐方面的知識教授經(jīng)驗不足。
面對這樣的問題,解決辦法有兩點:一是聘請企業(yè)資深工程師來當專業(yè)教師;二是專業(yè)教師中,尤其是年輕教師,分批次地前往一些企業(yè)單位、培訓(xùn)機構(gòu)進行學(xué)習(xí)培訓(xùn),學(xué)成歸來后指導(dǎo)學(xué)生進行相關(guān)項目的開發(fā),提高教學(xué)水平。專業(yè)教師要始終和先進的軟件技術(shù)保持同步,要不斷地學(xué)習(xí)軟件工程的新技術(shù)、新方法,不能落伍。
設(shè)立學(xué)生實踐創(chuàng)新創(chuàng)業(yè)項目基金,支持學(xué)生科技興趣小組和創(chuàng)新團隊開展實踐創(chuàng)新活動。鼓勵學(xué)生參與導(dǎo)師科研課題的研究,并給予獎勵學(xué)分。積極組織學(xué)生參加各級學(xué)科競賽和創(chuàng)新實踐項目,充分發(fā)揮學(xué)生的特長。這些實踐活動可以有效地培養(yǎng)學(xué)生的溝通能力和創(chuàng)新能力,促進學(xué)生“個性化”發(fā)展和創(chuàng)新能力提高。
鑒于以上應(yīng)用型本科院校軟件工程專業(yè)對SWEBOK V3 的解讀,建議應(yīng)用型本科院校軟件工程專業(yè)的專業(yè)培養(yǎng)方案中要融入以下幾點因素:1.在專業(yè)基礎(chǔ)課程中的數(shù)學(xué)和大學(xué)物理的教學(xué)中,要引入軟件工程的基礎(chǔ)教育基礎(chǔ)知識,結(jié)合軟件工程的知識來教授數(shù)學(xué)和物理;2.軟件工程職業(yè)實踐知識要貫穿到整個專業(yè)課程的教學(xué)中,軟件工程專業(yè)課程的老師應(yīng)該都具備企業(yè)工程背景,要潛移默化地對學(xué)生進行熏陶;3.專業(yè)課程的設(shè)置要循序漸進,如前期開設(shè)了Java 程序設(shè)計,后期可以開設(shè)Web 程序設(shè)計做為后續(xù);4.軟件工程的專業(yè)培養(yǎng)方案要引入專業(yè)新知識、新技術(shù),可以作為講座的形式開設(shè);5.軟件工程的專業(yè)課程要引入行業(yè)規(guī)定,要結(jié)合具體的業(yè)務(wù)領(lǐng)域形成有自己特色的專業(yè)方向。下表2 是建議性的專業(yè)課程體系,僅供參考。
表2 建議性的軟件工程專業(yè)課程體系
本文通過闡述SWEBOK V3 的內(nèi)容體系,分析該版本的SWEBOK 內(nèi)容和第二版的差異和創(chuàng)新點,結(jié)合應(yīng)用型本科院校軟件工程專業(yè)的特點,對應(yīng)用型本科院校軟件工程專業(yè)建設(shè)在工程思維的培養(yǎng)、實踐教學(xué)體系、校企合作、師資隊伍建設(shè)和創(chuàng)新、創(chuàng)業(yè)實踐活動等方面作出有益探索。