吳春雷, 剛 旭, 崔學榮
(中國石油大學(華東) 計算機與通信工程學院, 山東 青島 266580)
軟件工程綜合實驗課程的改革與建設
吳春雷, 剛 旭, 崔學榮
(中國石油大學(華東) 計算機與通信工程學院, 山東 青島 266580)

根據軟件工程卓越工程師教育培養計劃的總體要求,為了切實增強學生的工程實踐能力和創新意識,構建軟件工程專業核心課程群并對其中的綜合實驗課程進行了深化改革和建設。明確綜合實驗課程的目標定位,重構符合國際SWEBOK和國內CCSE的實踐教學知識體系,設計面向全生命周期軟件交付的敏捷實驗教學流程,探索多教師分階段、協作式的實驗指導模式,提出并實施多元性、過程化的軟件工程實踐考核評價方法。
卓越工程師; 實驗教學; 軟件工程; 實踐能力; 實驗課程改革
軟件工程是綜合運用計算機理論和技術以及工程管理的原則和方法,按照用戶需求及設定的預算和進度,實現特定功能的軟件產品的定義、設計、開發、測試、發布和維護的工程或以之為研究對象的學科。由此可見,學科特點決定了軟件人才的培養需要兼顧系統的理論知識掌握和綜合的工程實踐鍛煉[1-2]。特別是隨著我校軟件工程專業成為“卓越工程師教育培養計劃”(以下簡稱“卓越計劃”)建設專業,對軟件人才培養質量在實踐能力和創新意識方面提出了更高的要求[3-5]。然而,軟件工程人才培養普遍存在重理論、輕實踐,理論學習不系統、實踐鍛煉不完整,以及考核標準不科學等問題,難以達到“卓越計劃”培養標準的要求[6]。
近年來,在卓越工程師教育培養計劃的支持下,圍繞提升學生的“專業理論、設計開發、系統思維、過程管理”四個核心能力的總體目標,以軟件工程過程、軟件需求工程、軟件項目管理、軟件測試與維護、軟件質量工程等5門理論課程和軟件開發實戰1門綜合實驗課程組建了軟件工程專業核心課程群(以下簡稱“課程群”),并對課程群的知識體系、教學內容、教學方法、實踐流程和考核方式進行了系統規劃、協同建設,經過四年的持續探索完善,已取得明顯成效。
軟件開發過程實戰屬于課程群中的綜合實驗課程,計劃課時為96學時,貫穿軟件工程專業教學計劃的整個第6學期。通過對國內外軟件工程行業協會和知名院校的調查,決定按照SWECC修訂和發表的SWEBOK和我國CCSE課程體系重構課程群的理論知識框架和實踐訓練內容,使其涵蓋軟件工程的十個知識域[7-9]。綜合實驗課程在課程群中處于核心地位,與其他理論課程及知識域的關系如圖1所示。

圖1 軟件工程核心課程群結構圖
實驗課程落實了CDIO(Conceive-Design-Implement- Operate)工程教育理念[10],實驗內容包括項目構思、軟件設計、構建實現、交付運行等軟件開發過程的主要環節。實行了以項目案例為示范、以網絡平臺為支撐、以學生團隊協作學習為主導,以多教師協作式指導為保障的“基于項目的教學”模式,旨在利用該課程充沛的時間和資源,使學生完成一個軟件項目的完整開發訓練,在實踐過程中實現對5門理論課程教學內容的理解和掌握,建立軟件工程的整體概念,并增強工程實踐能力和創新意識。
不同于許多傳統的經典學科,軟件工程的知識體系是軟件大師們在長期的工程實踐中總結提煉出來的。如果僅僅依靠理論課堂的灌輸式講授,將難以引起學生的共鳴而變成空洞的說教。因此,課程群引入CDIO工程教育理念,并在綜合實驗課程中實施“基于項目的教學”方法,包括:
(1) 參照企業模式,以學生自愿為原則,按照4或5人的規模組建學生項目團隊。采取全員參與、角色扮演、協作學習、交流共享等措施,使學生成為認知的主體、知識的主動建構者,實現“以教師為中心向以學生為中心的轉變”。
(2) 強化項目案例的質量,通過設計綜合性、創新型軟件開發項目,并把課程群知識點融入到項目開發的過程中,做到在過程中介紹理論、指導實踐,實現“以知識結構為中心向以項目流程為中心的轉變”。
其中,軟件項目及其實踐內容的設計是影響教學效果的首要因素。傳統課程的項目案例一般都比較簡單,多是針對單門課程某些知識點的鞏固訓練,例如項目管理、架構設計或測試用例編寫等。然而,本課程項目案例需要更高的層次和更豐富的內容,因為實驗課程對應于整個軟件工程核心課程群,實踐過程要能夠覆蓋課程群的全部知識點。通過參考SWEBOK和CCSE,并結合我校軟件工程專業人才培養目標和學生實際情況,制訂了實驗課程的訓練要點,并設定了每個知識域的不同掌握程度,包括K(知識)、C(理解)、AP(應用)和AN(分析)四個層次[7-8]。這里梳理了其中具有AP和AN要求的軟件工程核心知識體系,作為實驗課程教學的內容設計標準,如表1所示。

表1 實踐知識體系設計與學時比例分配
按照上述標準,在每次課程第1階段都進行項目構思和開題。學生在教師的指導下提出項目構思,撰寫項目規劃,通過答辯后確立項目題目和實踐內容。
軟件工程許多實驗課程的實踐流程與企業差別較大,普遍存在不系統、不規范的問題,是學生工程能力培養中的一個薄弱環節。為此,對實踐教學流程進行了全新改革,采用敏捷開發思想,建立了符合目前主流企業軟件項目標準開發過程的實踐流程。使學生在接近真實的場景下,針對完整的項目案例,采用先進的工具平臺模擬實戰開發,實現工程能力的系統化、規范化培養。
制定了以敏捷化工程過程Scrum為模板、符合RUP規范要求的實踐教學流程,對其中涉及的角色、活動、工件、迭代計劃、里程碑和關鍵環節進行了詳細定義,形成了一整套可操作的規范體系[11]。根據實踐課程16周的時間跨度和學時安排,將實踐過程分為項目啟動、項目實施和項目收尾3個階段,并在實施階段細化出2或3次迭代,最終形成包括4或5次迭代(每次迭代3或4周時間)的總體迭代方案,見圖2。

圖2 實驗課程項目開發總體流程
因為新的實踐過程涉及多種軟件工具,例如分析設計、編碼測試、配置管理和協作監控等工具,原有分散孤立的工具形態難以適應當前強調團隊協作和敏捷化的教學要求,所以需要一個包含軟件交付全生命周期、能夠實現過程信息自動收集和共享的軟件協作開發平臺。IBM Jazz的理念和功能符合課程的需求[12],為此搭建了一整套基于IBM Jazz的軟件工程綜合實踐環境,包括協作平臺 RTC、需求管理分析工具Doors和需求定義工具RRC、軟件建模分析工具RSA,以及測試管理平臺RQM等。然后,針對每個實踐環節,結合課程群設定的知識和能力培養標準,構建了基于Jazz平臺各工具的知識和能力實現矩陣,如表2所示。
通常的實踐課都是由一名教師或者實驗師指導,但這種方式在軟件工程核心課程群的實踐教學中面臨很大挑戰。因為課程群中的5門理論課程是從不同角度在描述軟件工程這一整體概念和理論體系。從認知的角度應該借助真實的項目案例作為載體,打破傳統的課程界限,配合完整的軟件開發過程分別講解需求、測試、過程、項目管理等理論,使理論教學同步指導實踐。為此,一方面對課程群的理論授課進行了全盤設計,包括知識體系、課時分配、銜接劃分及推進計劃等;另一方面,安排理論課教師通過“分階段、協作式”的方式全部投入到實驗課程的指導工作,而且按照前文制定的3個階段4或5次迭代的實踐流程設計了較為精細的實驗指導序列,如圖3所示。

表2 實驗課程的知識和能力實現矩陣

圖3 教師分階段、協作式指導序列圖
“分階段、協作式”是指各位教師按照軟件項目的推進過程,在合適的時機對自己熟悉的內容進行實驗指導。例如,軟件需求工程授課教師會在實驗課程的項目規劃、需求分析、需求變更等階段介入,為學生提供當前階段最需要的理論知識和操作技術。
傳統的實驗課程考核評價一般以系統演示和實驗報告為主,而且通常在課程結束時實施,教師通過考察系統、評閱報告進行打分。然而,這種考核方式已經無法滿足課程群新的教學要求,因為按照“卓越計劃”人才培養標準,設立了以工程實踐能力、創新意識培養為核心的教學目標[13-14]。強調學生不僅要具有現代軟件工程開發能力,也要具備主動學習、協作學習、系統思維、過程控制、表達展示等綜合素質,這些要求在傳統考核方式中難以體現和落實。另外,傳統的期末單次考核方式也無法使教師掌握實踐過程中的詳細情況,與“基于項目的教學”要求的過程控制相違背,難以實現“做中學”“做中教”的教學效果。
經過不斷探索,課程群實施了多元化、過程化的考核評價體系,重視學生的專業知識掌握、實戰開發過程、系統開發結果、創新能力水平等全面素質的考察和評價,真正實現以考促學、以考促教的目的。對每個小組開發的軟件系統都進行這方面的評價,包括設計水平、開發效果、界面體驗、測試質量等,并根據在小組中的表現對每個成員進行細致評價。
(1) 實踐過程中階段性的輸出物。在開發過程規定的3個階段和5次迭代中,每個小組會產生包括項目規劃、產品訂單、需求報告、架構設計、測試方案等許多文檔和階段性輸出成果。對這些文檔和成果進行過程中的即時檢查能夠獲取更加客觀、真實的平時成績,有助于教師發現問題并給予及時指導。項目收尾階段的輸出物主要是5份文檔:需求分析文檔、軟件架構設計文檔、系統測試文檔、軟件過程總結以及項目管理文檔。文檔的評價結果將作為課程成績的重要組成部分,旨在引導學生重視書面表達能力并提高科技文檔的撰寫水平。
(2) 實踐結束時交付的軟件系統。開發結束時學生小組提交的項目系統是考核評價的最主要依據,它展現了學生的理論運用能力和綜合解決問題的水平。考核指標包括項目的整體完成率、系統功能的可用性、可靠性、項目管理和過程控制能力。最終的答辯準備及答辯效果也是評價要素。
(3) 實踐衍生出的創新成果。因為課程中的項目構思不再是傳統僵化的固定命題,而是學生自主選擇的創意應用,所以鼓勵小組在課內完成的軟件系統的基礎上進行創新發展,包括申請國家軟件著作版權,發表學術論文,開展學科競賽等。這種機制很好地激發了學生實踐課程的投入熱情。例如,2015年的實驗課程軟件作品獲得11項國家軟件著作版權、7項大學生創新項目。
過程化考核體現在評價在教學的推進中及時采集數據并給予學生指導。課程群設置了每周2 h的研討環節,就是讓學生匯報和展示最新的進展和階段性輸出,包括每個學生在此過程中的參與情況,這一做法持續16周,能夠覆蓋整個教學周期的全部關鍵環節。因此,老師能夠在教學過程中及時發現問題并給出指導,實現了“考教結合、考指導教”的效果。
軟件工程專業核心課程群綜合實驗課程自2012年改革建設以來,經過近4年的教學實踐和不斷完善,取得了明顯成效。首先,學生的工程實踐能力與創新意識明顯提高。根據學校官方統計,近4年軟件工程專業學生參加省級以上學科競賽并獲獎的人數逐年提高,2015年獲獎36項,同比增長近25%,獲得國家軟件著作版權11項。其次,學生初次就業率和就業層次實現持續增長,近4年分別為:2013年96.67%、2014年為98.78%、2015年100%。另外,改革建設做法也得到了領域教育專家的較高評價,2014年獲邀參加教育部“高校計算機類專業應用型人才培養方案研究”研討會并進行大會交流。企業代表也認為改革思路表明了軟件工程教育改革發展的基本方向,與企業軟件工程師的培養路徑一致。
軟件工程綜合實驗課程的改革思路和建設效果對學生工程實踐能力和創新意識具有重要的影響作用,為了達到“卓越計劃”對軟件人才培養的較高要求,對該課程的教學內容、實踐流程、指導方法和考核方式進行了全方位的改革。首先,參照國際上IEEE/ACM CC2001、SWEBOK和我國CCSE課程體系,對實踐教學應該覆蓋的知識體系進行重構,使其包含軟件工程學科全部十個知識域,更加完整和規范。然后,根據知識的邏輯關系和前后順序,探索實踐了新型的教學安排和組織形式,打破傳統相對孤立的課程界限,把課程群中的幾門理論課程教學融入到一個軟件項目的完整開發過程中,在實踐中有針對性地介紹理論,營造了良好的知識學習氛圍,提高了工程實踐的質量。另外,設計了以企業標準化項目交付過程為主線的敏捷實踐流程,搭建了一整套先進的實踐教學環境。最后,提出并實施了與實踐過程相匹配的多教師分階段、協作式的實驗指導,以及多元性、過程化的考核評價方式。
[1] 盧 葦,蔡圓媛,邢薇薇. 國際化軟件人才培養模式改革與創新[J]. 高等工程教育研究, 2013(1): 76-82.
[2] 林 健.“卓越工程師教育培養計劃”專業培養方案研究[J].清華大學教育研究,2011,32(2):47-55.
[3] 韓 彬,雷 毅. 全面深化實踐教學改革,培養學生工程實踐能力[J]. 實驗室研究與探索, 2015 ,34(9): 196-199,235.
[4] 施曉秋,金可仲. 卓越計劃“3+1”模式下的課外專業教育體系[J]. 高等工程教育研究,2012(4):40-44.
[5] 曾明星,周清平,王曉波,等.軟件工程專業“項目化”教學實施體系的構建[J].實驗室研究與探索,2013,32(5):158-163.
[6] 林 健.高校“卓越工程師教育培養計劃”實施進展評析(2010~2012)[J].高等工程教育研究,2013(4):1-12.
[7] 駱 斌,張大良,邵 棟. 軟件工程專業的課程體系設計[J]. 中國大學教學, 2005 (1): 32-35.
[8] 駱 斌, 臧斌宇,丁二玉. 軟件工程專業教育知識體系的分析、重構與求精[J]. 計算機教育, 2010 (23): 2-8.
[9] 劉 強,陳 越,駱 斌,等.“軟件工程”課程教學實施方案[J].中國大學教學,2011(2):41-44.
[10] 查建中.論“做中學”戰略下的CDIO模式[J].高等工程教育研究, 2008(3):1-6, 9.
[11] 陳國棟,羅省賢.Scrum敏捷軟件開發方法實踐中的改進和應用[J].計算機技術與發展,2011,21(12):97-99,104.
[12] 寧德軍,朱育雄,孫 昕. 奏響軟件交付的爵士樂:JAZZ平臺實踐者之路[M]. 北京:清華大學出版社,2009:40.
[13] 劉華東.構建“三三三”培養體系,推進本科教育邁向更高目標[J].中國高等教育,2012(18):34-36.
[14] 夏有為.培養實踐能力,造就創新人才(二)——訪美籍科學家交大密西根學院院長倪軍教授[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專業綜合改革項目(2015);山東省卓越工程師教育培養計劃專業建設項目(2013);中國石油大學教學改革和考試改革項目(JY-B201413、KS-B201409)
吳春雷(1980-),男,山東青島人,博士,副教授,軟件工程系主任,研究方向:軟件工程技術與過程。
Tel.: 15265322566; E-mail: wuchunlei06@163.com
崔學榮(1979-),男,山東煙臺人,博士,副教授,計算機與通信工程學院院長助理,研究方向:超寬帶無線通信。
Tel.: 0532-86981339; E-mail: cxr163@163.com
TP 311.5; G 642
A
1006-7167(2017)01-0180-05