丁 箐 李 曦 姜 明 白 天
摘要:本文針對我國軟件學(xué)院專業(yè)教學(xué)所面臨的挑戰(zhàn),在充分調(diào)研IEEE SWEBOK和CC2004SE知識體系的基礎(chǔ)上,針對我國軟件學(xué)院目前的實(shí)際情況重新劃分軟件工程知識體系,提出了軟件工程碩士開放式教學(xué)體系的建設(shè)方案。圍繞專業(yè)培養(yǎng)目標(biāo),結(jié)合學(xué)生的工程實(shí)踐,引入課程組的概念,制定了一套較為完整的開放式實(shí)踐教學(xué)實(shí)施計(jì)劃。
關(guān)鍵詞:工程碩士;開放式教學(xué);課程組
中圖分類號:G642文獻(xiàn)標(biāo)識碼:B
1引言
軟件學(xué)院軟件工程碩士的培養(yǎng)目標(biāo)是培養(yǎng)高層次、應(yīng)用型人才,針對這個目標(biāo),其教學(xué)實(shí)施應(yīng)著重體現(xiàn)出以下兩個差異性:
(1) 軟件工程學(xué)科領(lǐng)域和計(jì)算機(jī)學(xué)科領(lǐng)域間專業(yè)設(shè)置的差異性,這個差異應(yīng)能夠很好地體現(xiàn)培養(yǎng)應(yīng)用型人才的目的;
(2) 工程碩士課程和軟件學(xué)院本科課程的差異性,這個差異應(yīng)能夠很好地體現(xiàn)培養(yǎng)高層次人才的目的。
目前國內(nèi)軟件學(xué)院軟件工程學(xué)科和傳統(tǒng)的計(jì)算機(jī)科學(xué)學(xué)科在課程設(shè)置上差異還不顯著,工程碩士的培養(yǎng)方案中甚至部分課程只是本科階段的重復(fù)。雖然大都開始強(qiáng)調(diào)學(xué)生的軟件項(xiàng)目實(shí)踐,但普遍缺乏過程管理。本文在對IEEE的軟件工程知識體系進(jìn)行深入學(xué)習(xí)的基礎(chǔ)上,針對軟件學(xué)院軟件工程碩士提出了實(shí)現(xiàn)開放式教學(xué)體系的教學(xué)改革方案。
2軟件工程知識體系
2004版SWEBOK將整個軟件工程知識體系分為11個知識領(lǐng)域(Knowledge Area,KA),其中前5個知識領(lǐng)域是按軟件開發(fā)的生命期諸階段排列的,即軟件需求、軟件設(shè)計(jì)、軟件構(gòu)造、軟件測試和軟件維護(hù);后6個知識領(lǐng)域是軟件開發(fā)中的支撐性或者輔助性的方面,可能覆蓋軟件開發(fā)的多個階段,包括軟件配置管理、軟件工程管理、軟件工程過程、軟件工程工具與方法、軟件質(zhì)量、相關(guān)學(xué)科知識領(lǐng)域。這些知識領(lǐng)域SWEBOK并沒有重新系統(tǒng)規(guī)定,而是直接套用已經(jīng)成型的各領(lǐng)域知識體系,因此不可避免地存在重疊和不匹配。
在SWEBOK的基礎(chǔ)上,IEEE與ACM又共同擬定了CCSE。其中的核心部分是軟件工程教育知識(SEEK)。SEEK由十個知識領(lǐng)域組成,包括:計(jì)算機(jī)基礎(chǔ)(CMP)、數(shù)學(xué)和工程學(xué)基礎(chǔ)(FND)、職業(yè)實(shí)踐(PRF)、軟件建模與分析(MAA)、軟件設(shè)計(jì)(DES)、軟件驗(yàn)證(VAV)、軟件演化(EVL)、軟件過程(PRO)、軟件質(zhì)量(QUA)、軟件管理(MGT)。
可以看出,SEEK和SWEBOK基本內(nèi)容是相近的。總的來說,二者都是包含了軟件工程核心類的知識領(lǐng)域、基礎(chǔ)類或前導(dǎo)類的知識領(lǐng)域,以及其他相關(guān)領(lǐng)域的知識。
3高等教育教學(xué)改革研究狀況
目前國內(nèi)關(guān)于高等教育教學(xué)改革的論文很多,如翁敬農(nóng)、劉云等在軟件學(xué)院實(shí)踐教學(xué)體系的內(nèi)容與規(guī)劃中提出了“一個目標(biāo)”、“兩種途徑”、“三大環(huán)節(jié)”、以及“四級臺階”的具體步驟。王移芝、林艷琴提出基于“兩段教學(xué)”的計(jì)算機(jī)基礎(chǔ)課程的教學(xué)體系框架。謝芳清、閆大順提出了以素質(zhì)教育為目標(biāo)的實(shí)踐教學(xué)體系。王浩、胡學(xué)鋼等提出計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)實(shí)踐教學(xué)體系的總體研究與建設(shè)。王志英以國家實(shí)驗(yàn)教學(xué)示范中心為例,提出實(shí)踐是綜合能力培養(yǎng)的基礎(chǔ),并以此構(gòu)建計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)實(shí)踐教學(xué)體系。董瑋、邱建華等以專業(yè)課“程序設(shè)計(jì)基礎(chǔ)(C語言)”為例給出了建設(shè)實(shí)踐教學(xué)體系的實(shí)踐探索。然而目前還沒有檢索到專門研究軟件學(xué)院工程碩士教學(xué)改革的論文。無論是從傳統(tǒng)計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)與軟件學(xué)院軟件工程專業(yè)的區(qū)別,還是本科生與研究生的區(qū)別來看,針對軟件學(xué)院工程碩士的教學(xué)改革研究都是十分有必要的,同時也是迫切的。
4工程碩士的課程體系設(shè)計(jì)策略
我們以IEEE SWEBOK和CC2004SE的知識體系為主體,結(jié)合中國軟件產(chǎn)業(yè)以及本院的具體實(shí)際情況,設(shè)計(jì)了中國科學(xué)技術(shù)大學(xué)軟件學(xué)院軟件工程專業(yè)的知識體系,作為我院工程碩士課程設(shè)置和教學(xué)計(jì)劃實(shí)施的依據(jù)。以SEEK為基礎(chǔ),我們對軟件工程的課程設(shè)置進(jìn)行規(guī)劃。整個課程設(shè)置可以分為三個層次,即導(dǎo)論性課程、軟件工程核心課程和其他課程。如圖1所示,該知識體系定義了7個知識體系子類。計(jì)算機(jī)基礎(chǔ)和數(shù)學(xué)和工程學(xué)基礎(chǔ)屬于導(dǎo)論性課程、其他課程包含了職業(yè)實(shí)踐、領(lǐng)域課程、軟件工具、工程實(shí)踐等四個子類。
其中計(jì)算機(jī)基礎(chǔ)定義了軟件工程作為計(jì)算學(xué)科所必需包含的計(jì)算科學(xué)基礎(chǔ)以支持軟件產(chǎn)品的設(shè)計(jì)與建設(shè);數(shù)學(xué)與工程學(xué)基礎(chǔ)提供了軟件產(chǎn)品獲得所需屬性的理論和科學(xué)基礎(chǔ);職業(yè)實(shí)踐則聚焦于軟件工程師以職業(yè)行為從事軟件工程實(shí)踐所必需具備的知識、技能和態(tài)度;軟件工程核心課程應(yīng)該包含軟件開發(fā)生命周期所涉及到的主要知識領(lǐng)域;領(lǐng)域課程包含了對于某個特定領(lǐng)域軟件工程師應(yīng)該接受的特定教育或經(jīng)驗(yàn);軟件工具定義了從事軟件工作所必需掌握的當(dāng)前主流工具與軟件產(chǎn)品等;工程實(shí)踐則是學(xué)生使用所學(xué)到的知識從事實(shí)際開發(fā)活動,提供動手能力的重要環(huán)節(jié)。
對于工程碩士來說,大部分同學(xué)經(jīng)過計(jì)算機(jī)本科專業(yè)的學(xué)習(xí),已經(jīng)具備了初步的計(jì)算機(jī)基礎(chǔ)以及數(shù)學(xué)與工程學(xué)基礎(chǔ),因此目前其課程體系建設(shè)如圖2所示,重點(diǎn)是完成軟件工程核心課程教學(xué),并結(jié)合IT界的最新技術(shù)趨勢設(shè)計(jì)相關(guān)領(lǐng)域課程。教學(xué)改革的核心是如何設(shè)計(jì)軟件工程的核心課程,并指導(dǎo)學(xué)生熟練掌握相應(yīng)的軟件工具,強(qiáng)化他們的實(shí)踐動手能力。
5工程碩士開放式教學(xué)體系建設(shè)
對于如何設(shè)計(jì)軟件工程的核心課程,我們的主要思路是打破原先各子知識體系間的界線,圍繞專業(yè)培養(yǎng)目標(biāo),結(jié)合學(xué)生的工程實(shí)踐,引入課程組的概念,實(shí)現(xiàn)一個完整的開放式教學(xué)體系。如圖3所示,整個開放式學(xué)習(xí)體系包含三個部分:
(1) 設(shè)計(jì)課程組:在理論環(huán)節(jié)采用課程組的概念,集中講授較高層次的、符合碩士生水平的軟件工程的某些重要環(huán)節(jié);
(2) 開設(shè)實(shí)踐教學(xué)環(huán)節(jié):在實(shí)踐教學(xué)中采用做中學(xué)(Learning by Doing或LBD)理念,由指導(dǎo)教師講述軟件工具的具體操作過程,同學(xué)實(shí)際動手學(xué)習(xí);
(3) 強(qiáng)化工程實(shí)踐:在工程實(shí)踐中由學(xué)生自主選題,并將LBD中講述的工具在項(xiàng)目整個生命周期中貫穿使用。
5.1設(shè)計(jì) 課程組
目前我院開設(shè)的高級軟件工程和本科的軟件工程課程內(nèi)容并沒有太大差別,對于軟件工程的各個環(huán)節(jié)面面俱到,但又都比較淺顯,對于工程碩士的培養(yǎng)顯然是不合適的。因此我們設(shè)計(jì)了軟件工程課程組的理念,初步設(shè)計(jì)了以下課程:
(1)“軟件開發(fā)管理”(Managing Software Development)
(2)“軟件系統(tǒng)架構(gòu)”(Architectures for Software Systems)
第一門課程主要針對以后立志從事軟件工程管理方向的同學(xué),課程針對IT項(xiàng)目集中闡述如何實(shí)現(xiàn)風(fēng)險(xiǎn)、資金、工期等各方面的管理;第二門課程主要針對以后立志從事軟件高級開發(fā)方向的同學(xué),課程主要講述復(fù)雜軟件系統(tǒng)架構(gòu)層上的設(shè)計(jì),介紹目前通用的軟件系統(tǒng)結(jié)構(gòu)、設(shè)計(jì)技術(shù)以及實(shí)現(xiàn)這些結(jié)構(gòu)的模型、表述方法等。這兩門課程對于軟件工程碩士應(yīng)該至少必修一門。除了這兩門課程,其他軟件工程類的課程包括了設(shè)計(jì)模式、軟件測試、語言類課程如J2EE、.NET等等,學(xué)生可根據(jù)自己的實(shí)際情況進(jìn)行選修。
5.2開設(shè)實(shí)踐教學(xué)
針對該課程組,我們開設(shè)了實(shí)踐教學(xué)環(huán)節(jié),采用做中學(xué)理念,由指導(dǎo)教師(可以由助教擔(dān)任)根據(jù)事先確定的主題,選用具體工具講述如何使用該工具完成項(xiàng)目開發(fā)的某具體環(huán)節(jié),工具涵蓋了項(xiàng)目管理、架構(gòu)設(shè)計(jì)文檔化以及測試等軟件項(xiàng)目開發(fā)的主要方面。
對于軟件工具的選擇,有兩種思路。一種方法是對軟件工程的不同環(huán)節(jié)分別選擇不同工具,例如項(xiàng)目管理選Project、開發(fā)文檔化選Rational、測試再選別的工具這樣來做,但結(jié)構(gòu)分散,不利于整體化考慮。另一種是采用套件,完成項(xiàng)目開發(fā)全程的所有操作,目前我們選擇了兩種套件,一是微軟的VSTS,該套件和微軟的Visual Studio開發(fā)平臺綁定,適合學(xué)習(xí).net開發(fā)框架的同學(xué);另一種是IBM的RSA,該套件和Eclipse開發(fā)平臺綁定,適合選擇開源J2EE開發(fā)框架的同學(xué)。
5.3強(qiáng)化工程實(shí)踐
大多數(shù)的軟件學(xué)院目前都開設(shè)了專門的工程實(shí)踐環(huán)節(jié),但實(shí)際的效果并不盡如人意。因此我們將工程實(shí)踐環(huán)節(jié)也納入到開放式學(xué)習(xí)體系中,以前面所說的理論以及實(shí)踐教學(xué)環(huán)節(jié)來指導(dǎo)學(xué)生更好地高質(zhì)量完成整個工程實(shí)踐。
從教學(xué)方法上,工程實(shí)踐應(yīng)盡可能地貼近現(xiàn)實(shí)項(xiàng)目,除了常見的軟件工程文檔,我們還要求學(xué)生提交過程管理類文檔(軟件開發(fā)合同、會議記錄、工作日程記錄、合同執(zhí)行報(bào)告:財(cái)務(wù)報(bào)告和開發(fā)過程報(bào)告、個人總結(jié)、小組總結(jié)等)。
從技術(shù)上,學(xué)生可以自由選題,也可參考工程實(shí)踐題庫中的選題。選題涉及所有領(lǐng)域課程包含的內(nèi)容。要求學(xué)生必須采用實(shí)踐教學(xué)環(huán)節(jié)中介紹的工具全程介入項(xiàng)目開發(fā)的各個階段。學(xué)院設(shè)立專門的工程實(shí)踐網(wǎng)站提供學(xué)生選題及交流,以及指導(dǎo)教師的監(jiān)督。
從教學(xué)形式上,則注重如何實(shí)現(xiàn)應(yīng)用型軟件人才的核心能力分析與培養(yǎng),要求學(xué)生運(yùn)用職業(yè)實(shí)踐子知識體系中的相應(yīng)內(nèi)容,鍛煉學(xué)生的口頭表達(dá)能力、書面表達(dá)能力等。通過學(xué)生的開題演講、采用各種工具完成相應(yīng)的項(xiàng)目文檔、結(jié)題答辯等環(huán)節(jié)來實(shí)現(xiàn)學(xué)生職業(yè)素質(zhì)的培養(yǎng)。
從實(shí)踐效果評價(jià)上,我們制定了一系列的成績考核方法、管理考核信息、分析考核結(jié)果、評價(jià)教學(xué)質(zhì)量等措施,實(shí)現(xiàn)完整的考核體系。
6結(jié)論
軟件工程專業(yè)學(xué)生的培養(yǎng),在學(xué)科教育與培養(yǎng)面向市場需求的人才方面有著事實(shí)上的矛盾。軟件學(xué)院現(xiàn)有的實(shí)踐教學(xué)體系存在著專業(yè)課程設(shè)置定位不準(zhǔn)確、課程實(shí)驗(yàn)師資不足、實(shí)驗(yàn)教學(xué)內(nèi)容質(zhì)量不高、實(shí)驗(yàn)指導(dǎo)和管理落后等問題。根據(jù)軟件工程專業(yè)教學(xué)所面臨的挑戰(zhàn),在充分調(diào)研IEEE SWEBOK和CC2004SE知識體系的基礎(chǔ)上,針對軟件學(xué)院的工程碩士,我們提出了軟件工程碩士開放式教學(xué)體系的建設(shè),圍繞專業(yè)培養(yǎng)目標(biāo),結(jié)合學(xué)生的工程實(shí)踐,引入課程組的概念,制定了一套較為完整的開放式實(shí)踐教學(xué)實(shí)施計(jì)劃。
參考文獻(xiàn) :
[1] Curriculum Guidelines for Undergraduate Degree Programs in Software Engineering [EB/OL]. [2004-08-25]. http://sites.computer.org/ccse/SE2004Volume.pdf.
[2] 翁敬農(nóng),劉云. 北航軟件學(xué)院本科生實(shí)踐教學(xué)體系的研究與實(shí)踐[J]. 計(jì)算機(jī)教育,2007(11).
[3] 王移芝,林艷琴.“計(jì)算機(jī)基礎(chǔ)課程”實(shí)踐教學(xué)體系的研究與實(shí)踐[J]. 實(shí)踐教學(xué),2008(8).
[4] 謝芳清,閆大順. 計(jì)算機(jī)工程專業(yè)實(shí)踐教學(xué)體系的研究[J]. 中國科技信息,2008(9).
[5] 王浩,胡學(xué)鋼,侯整風(fēng),等. 計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)實(shí)踐教學(xué)體系的研究與建設(shè)[J]. 計(jì)算機(jī)教育,2007(11).
[6] 王志英. 計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)實(shí)踐教學(xué)體系研究[J]. 計(jì)算機(jī)教育,2008(3).
[7] 董瑋,邱建華,楊英鵬,等. 培養(yǎng)應(yīng)用型軟件人才的實(shí)踐教學(xué)體系的研究與實(shí)踐[J]. 計(jì)算機(jī)教育,2008(10).