吳春雷, 剛 旭, 崔學(xué)榮
(中國石油大學(xué)(華東) 計算機(jī)與通信工程學(xué)院, 山東 青島 266580)
軟件工程綜合實驗課程的改革與建設(shè)
吳春雷, 剛 旭, 崔學(xué)榮
(中國石油大學(xué)(華東) 計算機(jī)與通信工程學(xué)院, 山東 青島 266580)
根據(jù)軟件工程卓越工程師教育培養(yǎng)計劃的總體要求,為了切實增強(qiáng)學(xué)生的工程實踐能力和創(chuàng)新意識,構(gòu)建軟件工程專業(yè)核心課程群并對其中的綜合實驗課程進(jìn)行了深化改革和建設(shè)。明確綜合實驗課程的目標(biāo)定位,重構(gòu)符合國際SWEBOK和國內(nèi)CCSE的實踐教學(xué)知識體系,設(shè)計面向全生命周期軟件交付的敏捷實驗教學(xué)流程,探索多教師分階段、協(xié)作式的實驗指導(dǎo)模式,提出并實施多元性、過程化的軟件工程實踐考核評價方法。
卓越工程師; 實驗教學(xué); 軟件工程; 實踐能力; 實驗課程改革
軟件工程是綜合運用計算機(jī)理論和技術(shù)以及工程管理的原則和方法,按照用戶需求及設(shè)定的預(yù)算和進(jìn)度,實現(xiàn)特定功能的軟件產(chǎn)品的定義、設(shè)計、開發(fā)、測試、發(fā)布和維護(hù)的工程或以之為研究對象的學(xué)科。由此可見,學(xué)科特點決定了軟件人才的培養(yǎng)需要兼顧系統(tǒng)的理論知識掌握和綜合的工程實踐鍛煉[1-2]。特別是隨著我校軟件工程專業(yè)成為“卓越工程師教育培養(yǎng)計劃”(以下簡稱“卓越計劃”)建設(shè)專業(yè),對軟件人才培養(yǎng)質(zhì)量在實踐能力和創(chuàng)新意識方面提出了更高的要求[3-5]。然而,軟件工程人才培養(yǎng)普遍存在重理論、輕實踐,理論學(xué)習(xí)不系統(tǒng)、實踐鍛煉不完整,以及考核標(biāo)準(zhǔn)不科學(xué)等問題,難以達(dá)到“卓越計劃”培養(yǎng)標(biāo)準(zhǔn)的要求[6]。
近年來,在卓越工程師教育培養(yǎng)計劃的支持下,圍繞提升學(xué)生的“專業(yè)理論、設(shè)計開發(fā)、系統(tǒng)思維、過程管理”四個核心能力的總體目標(biāo),以軟件工程過程、軟件需求工程、軟件項目管理、軟件測試與維護(hù)、軟件質(zhì)量工程等5門理論課程和軟件開發(fā)實戰(zhàn)1門綜合實驗課程組建了軟件工程專業(yè)核心課程群(以下簡稱“課程群”),并對課程群的知識體系、教學(xué)內(nèi)容、教學(xué)方法、實踐流程和考核方式進(jìn)行了系統(tǒng)規(guī)劃、協(xié)同建設(shè),經(jīng)過四年的持續(xù)探索完善,已取得明顯成效。
軟件開發(fā)過程實戰(zhàn)屬于課程群中的綜合實驗課程,計劃課時為96學(xué)時,貫穿軟件工程專業(yè)教學(xué)計劃的整個第6學(xué)期。通過對國內(nèi)外軟件工程行業(yè)協(xié)會和知名院校的調(diào)查,決定按照SWECC修訂和發(fā)表的SWEBOK和我國CCSE課程體系重構(gòu)課程群的理論知識框架和實踐訓(xùn)練內(nèi)容,使其涵蓋軟件工程的十個知識域[7-9]。綜合實驗課程在課程群中處于核心地位,與其他理論課程及知識域的關(guān)系如圖1所示。
圖1 軟件工程核心課程群結(jié)構(gòu)圖
實驗課程落實了CDIO(Conceive-Design-Implement- Operate)工程教育理念[10],實驗內(nèi)容包括項目構(gòu)思、軟件設(shè)計、構(gòu)建實現(xiàn)、交付運行等軟件開發(fā)過程的主要環(huán)節(jié)。實行了以項目案例為示范、以網(wǎng)絡(luò)平臺為支撐、以學(xué)生團(tuán)隊協(xié)作學(xué)習(xí)為主導(dǎo),以多教師協(xié)作式指導(dǎo)為保障的“基于項目的教學(xué)”模式,旨在利用該課程充沛的時間和資源,使學(xué)生完成一個軟件項目的完整開發(fā)訓(xùn)練,在實踐過程中實現(xiàn)對5門理論課程教學(xué)內(nèi)容的理解和掌握,建立軟件工程的整體概念,并增強(qiáng)工程實踐能力和創(chuàng)新意識。
不同于許多傳統(tǒng)的經(jīng)典學(xué)科,軟件工程的知識體系是軟件大師們在長期的工程實踐中總結(jié)提煉出來的。如果僅僅依靠理論課堂的灌輸式講授,將難以引起學(xué)生的共鳴而變成空洞的說教。因此,課程群引入CDIO工程教育理念,并在綜合實驗課程中實施“基于項目的教學(xué)”方法,包括:
(1) 參照企業(yè)模式,以學(xué)生自愿為原則,按照4或5人的規(guī)模組建學(xué)生項目團(tuán)隊。采取全員參與、角色扮演、協(xié)作學(xué)習(xí)、交流共享等措施,使學(xué)生成為認(rèn)知的主體、知識的主動建構(gòu)者,實現(xiàn)“以教師為中心向以學(xué)生為中心的轉(zhuǎn)變”。
(2) 強(qiáng)化項目案例的質(zhì)量,通過設(shè)計綜合性、創(chuàng)新型軟件開發(fā)項目,并把課程群知識點融入到項目開發(fā)的過程中,做到在過程中介紹理論、指導(dǎo)實踐,實現(xiàn)“以知識結(jié)構(gòu)為中心向以項目流程為中心的轉(zhuǎn)變”。
其中,軟件項目及其實踐內(nèi)容的設(shè)計是影響教學(xué)效果的首要因素。傳統(tǒng)課程的項目案例一般都比較簡單,多是針對單門課程某些知識點的鞏固訓(xùn)練,例如項目管理、架構(gòu)設(shè)計或測試用例編寫等。然而,本課程項目案例需要更高的層次和更豐富的內(nèi)容,因為實驗課程對應(yīng)于整個軟件工程核心課程群,實踐過程要能夠覆蓋課程群的全部知識點。通過參考SWEBOK和CCSE,并結(jié)合我校軟件工程專業(yè)人才培養(yǎng)目標(biāo)和學(xué)生實際情況,制訂了實驗課程的訓(xùn)練要點,并設(shè)定了每個知識域的不同掌握程度,包括K(知識)、C(理解)、AP(應(yīng)用)和AN(分析)四個層次[7-8]。這里梳理了其中具有AP和AN要求的軟件工程核心知識體系,作為實驗課程教學(xué)的內(nèi)容設(shè)計標(biāo)準(zhǔn),如表1所示。
表1 實踐知識體系設(shè)計與學(xué)時比例分配
按照上述標(biāo)準(zhǔn),在每次課程第1階段都進(jìn)行項目構(gòu)思和開題。學(xué)生在教師的指導(dǎo)下提出項目構(gòu)思,撰寫項目規(guī)劃,通過答辯后確立項目題目和實踐內(nèi)容。
軟件工程許多實驗課程的實踐流程與企業(yè)差別較大,普遍存在不系統(tǒng)、不規(guī)范的問題,是學(xué)生工程能力培養(yǎng)中的一個薄弱環(huán)節(jié)。為此,對實踐教學(xué)流程進(jìn)行了全新改革,采用敏捷開發(fā)思想,建立了符合目前主流企業(yè)軟件項目標(biāo)準(zhǔn)開發(fā)過程的實踐流程。使學(xué)生在接近真實的場景下,針對完整的項目案例,采用先進(jìn)的工具平臺模擬實戰(zhàn)開發(fā),實現(xiàn)工程能力的系統(tǒng)化、規(guī)范化培養(yǎng)。
制定了以敏捷化工程過程Scrum為模板、符合RUP規(guī)范要求的實踐教學(xué)流程,對其中涉及的角色、活動、工件、迭代計劃、里程碑和關(guān)鍵環(huán)節(jié)進(jìn)行了詳細(xì)定義,形成了一整套可操作的規(guī)范體系[11]。根據(jù)實踐課程16周的時間跨度和學(xué)時安排,將實踐過程分為項目啟動、項目實施和項目收尾3個階段,并在實施階段細(xì)化出2或3次迭代,最終形成包括4或5次迭代(每次迭代3或4周時間)的總體迭代方案,見圖2。
圖2 實驗課程項目開發(fā)總體流程
因為新的實踐過程涉及多種軟件工具,例如分析設(shè)計、編碼測試、配置管理和協(xié)作監(jiān)控等工具,原有分散孤立的工具形態(tài)難以適應(yīng)當(dāng)前強(qiáng)調(diào)團(tuán)隊協(xié)作和敏捷化的教學(xué)要求,所以需要一個包含軟件交付全生命周期、能夠?qū)崿F(xiàn)過程信息自動收集和共享的軟件協(xié)作開發(fā)平臺。IBM Jazz的理念和功能符合課程的需求[12],為此搭建了一整套基于IBM Jazz的軟件工程綜合實踐環(huán)境,包括協(xié)作平臺 RTC、需求管理分析工具Doors和需求定義工具RRC、軟件建模分析工具RSA,以及測試管理平臺RQM等。然后,針對每個實踐環(huán)節(jié),結(jié)合課程群設(shè)定的知識和能力培養(yǎng)標(biāo)準(zhǔn),構(gòu)建了基于Jazz平臺各工具的知識和能力實現(xiàn)矩陣,如表2所示。
通常的實踐課都是由一名教師或者實驗師指導(dǎo),但這種方式在軟件工程核心課程群的實踐教學(xué)中面臨很大挑戰(zhàn)。因為課程群中的5門理論課程是從不同角度在描述軟件工程這一整體概念和理論體系。從認(rèn)知的角度應(yīng)該借助真實的項目案例作為載體,打破傳統(tǒng)的課程界限,配合完整的軟件開發(fā)過程分別講解需求、測試、過程、項目管理等理論,使理論教學(xué)同步指導(dǎo)實踐。為此,一方面對課程群的理論授課進(jìn)行了全盤設(shè)計,包括知識體系、課時分配、銜接劃分及推進(jìn)計劃等;另一方面,安排理論課教師通過“分階段、協(xié)作式”的方式全部投入到實驗課程的指導(dǎo)工作,而且按照前文制定的3個階段4或5次迭代的實踐流程設(shè)計了較為精細(xì)的實驗指導(dǎo)序列,如圖3所示。
表2 實驗課程的知識和能力實現(xiàn)矩陣
圖3 教師分階段、協(xié)作式指導(dǎo)序列圖
“分階段、協(xié)作式”是指各位教師按照軟件項目的推進(jìn)過程,在合適的時機(jī)對自己熟悉的內(nèi)容進(jìn)行實驗指導(dǎo)。例如,軟件需求工程授課教師會在實驗課程的項目規(guī)劃、需求分析、需求變更等階段介入,為學(xué)生提供當(dāng)前階段最需要的理論知識和操作技術(shù)。
傳統(tǒng)的實驗課程考核評價一般以系統(tǒng)演示和實驗報告為主,而且通常在課程結(jié)束時實施,教師通過考察系統(tǒng)、評閱報告進(jìn)行打分。然而,這種考核方式已經(jīng)無法滿足課程群新的教學(xué)要求,因為按照“卓越計劃”人才培養(yǎng)標(biāo)準(zhǔn),設(shè)立了以工程實踐能力、創(chuàng)新意識培養(yǎng)為核心的教學(xué)目標(biāo)[13-14]。強(qiáng)調(diào)學(xué)生不僅要具有現(xiàn)代軟件工程開發(fā)能力,也要具備主動學(xué)習(xí)、協(xié)作學(xué)習(xí)、系統(tǒng)思維、過程控制、表達(dá)展示等綜合素質(zhì),這些要求在傳統(tǒng)考核方式中難以體現(xiàn)和落實。另外,傳統(tǒng)的期末單次考核方式也無法使教師掌握實踐過程中的詳細(xì)情況,與“基于項目的教學(xué)”要求的過程控制相違背,難以實現(xiàn)“做中學(xué)”“做中教”的教學(xué)效果。
經(jīng)過不斷探索,課程群實施了多元化、過程化的考核評價體系,重視學(xué)生的專業(yè)知識掌握、實戰(zhàn)開發(fā)過程、系統(tǒng)開發(fā)結(jié)果、創(chuàng)新能力水平等全面素質(zhì)的考察和評價,真正實現(xiàn)以考促學(xué)、以考促教的目的。對每個小組開發(fā)的軟件系統(tǒng)都進(jìn)行這方面的評價,包括設(shè)計水平、開發(fā)效果、界面體驗、測試質(zhì)量等,并根據(jù)在小組中的表現(xiàn)對每個成員進(jìn)行細(xì)致評價。
(1) 實踐過程中階段性的輸出物。在開發(fā)過程規(guī)定的3個階段和5次迭代中,每個小組會產(chǎn)生包括項目規(guī)劃、產(chǎn)品訂單、需求報告、架構(gòu)設(shè)計、測試方案等許多文檔和階段性輸出成果。對這些文檔和成果進(jìn)行過程中的即時檢查能夠獲取更加客觀、真實的平時成績,有助于教師發(fā)現(xiàn)問題并給予及時指導(dǎo)。項目收尾階段的輸出物主要是5份文檔:需求分析文檔、軟件架構(gòu)設(shè)計文檔、系統(tǒng)測試文檔、軟件過程總結(jié)以及項目管理文檔。文檔的評價結(jié)果將作為課程成績的重要組成部分,旨在引導(dǎo)學(xué)生重視書面表達(dá)能力并提高科技文檔的撰寫水平。
(2) 實踐結(jié)束時交付的軟件系統(tǒng)。開發(fā)結(jié)束時學(xué)生小組提交的項目系統(tǒng)是考核評價的最主要依據(jù),它展現(xiàn)了學(xué)生的理論運用能力和綜合解決問題的水平??己酥笜?biāo)包括項目的整體完成率、系統(tǒng)功能的可用性、可靠性、項目管理和過程控制能力。最終的答辯準(zhǔn)備及答辯效果也是評價要素。
(3) 實踐衍生出的創(chuàng)新成果。因為課程中的項目構(gòu)思不再是傳統(tǒng)僵化的固定命題,而是學(xué)生自主選擇的創(chuàng)意應(yīng)用,所以鼓勵小組在課內(nèi)完成的軟件系統(tǒng)的基礎(chǔ)上進(jìn)行創(chuàng)新發(fā)展,包括申請國家軟件著作版權(quán),發(fā)表學(xué)術(shù)論文,開展學(xué)科競賽等。這種機(jī)制很好地激發(fā)了學(xué)生實踐課程的投入熱情。例如,2015年的實驗課程軟件作品獲得11項國家軟件著作版權(quán)、7項大學(xué)生創(chuàng)新項目。
過程化考核體現(xiàn)在評價在教學(xué)的推進(jìn)中及時采集數(shù)據(jù)并給予學(xué)生指導(dǎo)。課程群設(shè)置了每周2 h的研討環(huán)節(jié),就是讓學(xué)生匯報和展示最新的進(jìn)展和階段性輸出,包括每個學(xué)生在此過程中的參與情況,這一做法持續(xù)16周,能夠覆蓋整個教學(xué)周期的全部關(guān)鍵環(huán)節(jié)。因此,老師能夠在教學(xué)過程中及時發(fā)現(xiàn)問題并給出指導(dǎo),實現(xiàn)了“考教結(jié)合、考指導(dǎo)教”的效果。
軟件工程專業(yè)核心課程群綜合實驗課程自2012年改革建設(shè)以來,經(jīng)過近4年的教學(xué)實踐和不斷完善,取得了明顯成效。首先,學(xué)生的工程實踐能力與創(chuàng)新意識明顯提高。根據(jù)學(xué)校官方統(tǒng)計,近4年軟件工程專業(yè)學(xué)生參加省級以上學(xué)科競賽并獲獎的人數(shù)逐年提高,2015年獲獎36項,同比增長近25%,獲得國家軟件著作版權(quán)11項。其次,學(xué)生初次就業(yè)率和就業(yè)層次實現(xiàn)持續(xù)增長,近4年分別為:2013年96.67%、2014年為98.78%、2015年100%。另外,改革建設(shè)做法也得到了領(lǐng)域教育專家的較高評價,2014年獲邀參加教育部“高校計算機(jī)類專業(yè)應(yīng)用型人才培養(yǎng)方案研究”研討會并進(jìn)行大會交流。企業(yè)代表也認(rèn)為改革思路表明了軟件工程教育改革發(fā)展的基本方向,與企業(yè)軟件工程師的培養(yǎng)路徑一致。
軟件工程綜合實驗課程的改革思路和建設(shè)效果對學(xué)生工程實踐能力和創(chuàng)新意識具有重要的影響作用,為了達(dá)到“卓越計劃”對軟件人才培養(yǎng)的較高要求,對該課程的教學(xué)內(nèi)容、實踐流程、指導(dǎo)方法和考核方式進(jìn)行了全方位的改革。首先,參照國際上IEEE/ACM CC2001、SWEBOK和我國CCSE課程體系,對實踐教學(xué)應(yīng)該覆蓋的知識體系進(jìn)行重構(gòu),使其包含軟件工程學(xué)科全部十個知識域,更加完整和規(guī)范。然后,根據(jù)知識的邏輯關(guān)系和前后順序,探索實踐了新型的教學(xué)安排和組織形式,打破傳統(tǒng)相對孤立的課程界限,把課程群中的幾門理論課程教學(xué)融入到一個軟件項目的完整開發(fā)過程中,在實踐中有針對性地介紹理論,營造了良好的知識學(xué)習(xí)氛圍,提高了工程實踐的質(zhì)量。另外,設(shè)計了以企業(yè)標(biāo)準(zhǔn)化項目交付過程為主線的敏捷實踐流程,搭建了一整套先進(jìn)的實踐教學(xué)環(huán)境。最后,提出并實施了與實踐過程相匹配的多教師分階段、協(xié)作式的實驗指導(dǎo),以及多元性、過程化的考核評價方式。
[1] 盧 葦,蔡圓媛,邢薇薇. 國際化軟件人才培養(yǎng)模式改革與創(chuàng)新[J]. 高等工程教育研究, 2013(1): 76-82.
[2] 林 健.“卓越工程師教育培養(yǎng)計劃”專業(yè)培養(yǎng)方案研究[J].清華大學(xué)教育研究,2011,32(2):47-55.
[3] 韓 彬,雷 毅. 全面深化實踐教學(xué)改革,培養(yǎng)學(xué)生工程實踐能力[J]. 實驗室研究與探索, 2015 ,34(9): 196-199,235.
[4] 施曉秋,金可仲. 卓越計劃“3+1”模式下的課外專業(yè)教育體系[J]. 高等工程教育研究,2012(4):40-44.
[5] 曾明星,周清平,王曉波,等.軟件工程專業(yè)“項目化”教學(xué)實施體系的構(gòu)建[J].實驗室研究與探索,2013,32(5):158-163.
[6] 林 健.高?!白吭焦こ處熃逃囵B(yǎng)計劃”實施進(jìn)展評析(2010~2012)[J].高等工程教育研究,2013(4):1-12.
[7] 駱 斌,張大良,邵 棟. 軟件工程專業(yè)的課程體系設(shè)計[J]. 中國大學(xué)教學(xué), 2005 (1): 32-35.
[8] 駱 斌, 臧斌宇,丁二玉. 軟件工程專業(yè)教育知識體系的分析、重構(gòu)與求精[J]. 計算機(jī)教育, 2010 (23): 2-8.
[9] 劉 強(qiáng),陳 越,駱 斌,等.“軟件工程”課程教學(xué)實施方案[J].中國大學(xué)教學(xué),2011(2):41-44.
[10] 查建中.論“做中學(xué)”戰(zhàn)略下的CDIO模式[J].高等工程教育研究, 2008(3):1-6, 9.
[11] 陳國棟,羅省賢.Scrum敏捷軟件開發(fā)方法實踐中的改進(jìn)和應(yīng)用[J].計算機(jī)技術(shù)與發(fā)展,2011,21(12):97-99,104.
[12] 寧德軍,朱育雄,孫 昕. 奏響軟件交付的爵士樂:JAZZ平臺實踐者之路[M]. 北京:清華大學(xué)出版社,2009:40.
[13] 劉華東.構(gòu)建“三三三”培養(yǎng)體系,推進(jìn)本科教育邁向更高目標(biāo)[J].中國高等教育,2012(18):34-36.
[14] 夏有為.培養(yǎng)實踐能力,造就創(chuàng)新人才(二)——訪美籍科學(xué)家交大密西根學(xué)院院長倪軍教授[J].實驗室研究與探索,2015,34(1):1-4.
Reform and Construction of The Comprehensive Practical Curricula of Software Engineering
WUChun-lei,GANGXu,CUIXue-rong
(College of Computer and Communication, China University of Petroleum, Qingdao 266580, Shandong, China)
According to the requirements of education and training program for excellent engineers in software engineering field, a core curriculum group for software engineering is constructed and comprehensive practical courses are reformed to enhance the students' engineering practical ability and innovative consciousness effectively. Firstly, the objective and location of the practical course are defined. Then the practical knowledge system is reconstructed according to international SWEBOK and domestic CCSE. Finally, the agile experimental teaching process for the whole life cycle of project delivery is designed, the multi-phased and participatory experimental guidance mode by multi-teachers is explored, and the diversity and process-oriented practices evaluation mechanism for software engineering are proposed and implemented.
excellent engineers; practice teaching; software engineering; practice ability; experimental course reform
2016-02-02
教育部-IBM專業(yè)綜合改革項目(2015);山東省卓越工程師教育培養(yǎng)計劃專業(yè)建設(shè)項目(2013);中國石油大學(xué)教學(xué)改革和考試改革項目(JY-B201413、KS-B201409)
吳春雷(1980-),男,山東青島人,博士,副教授,軟件工程系主任,研究方向:軟件工程技術(shù)與過程。
Tel.: 15265322566; E-mail: wuchunlei06@163.com
崔學(xué)榮(1979-),男,山東煙臺人,博士,副教授,計算機(jī)與通信工程學(xué)院院長助理,研究方向:超寬帶無線通信。
Tel.: 0532-86981339; E-mail: cxr163@163.com
TP 311.5; G 642
A
1006-7167(2017)01-0180-05