彭輝+鐵菊紅+文立玉+岳希+葉振



摘 要:提出將CIDO教育模式應用到軟件工程專業工程實踐類課程教學中,詳細介紹基于CDIO的工程實踐類課程培養標準的制訂、課程體系的構建、課程教學內容和實施、考核方式,根據實踐結果說明基于CDIO的工程實踐類課程教學模式是可行的,畢業生的能力能夠達到CDIO培養標準要求。
關鍵詞:工程實踐;軟件工程;CDIO
文章編號:1672-5913(2017)05-0030-04
中圖分類號:G642
0 引 言
工程教育的目的是將學生培養成為“整裝待發”的工程師,也就是在其從事職業前具備較好的工程能力和深厚的技術基礎知識。為了達到這個目標,工程教育者的任務就是不斷地改進本科工程教育的質量和內涵。CDIO教學模式改革了工程教育,教育學生理解如何在一個現代團隊環境下構思—設計—實施—運行復雜的、具有高附加值的工程產品、過程和系統[1]。隨著社會信息化的不斷發展,各行各業對軟件的需求也越來越多,各種應用軟件的復雜性和規模不斷增加,導致軟件企業亟需大量的能夠構思、設計、實施和運行復雜軟件系統的人才。軟件企業對所需人才的要求與CDIO的培養標準是相符合的。然而,目前一些高校的軟件工程專業畢業生并不具備這種CDIO能力,因此目前軟件工程專業的培養標準、培養方案和課程體系有必要根據CDIO的培養標準進行調整[2]。
工程性和實踐性是軟件工程專業的主要特點。 CDIO工程教育強調學生工程實踐能力的重要性。軟件工程專業的實踐教學環節主要分為3類:第1類是理論課程內的實驗或上機;第2類是工程實踐類課程(或稱為課程設計類課程);第3類是畢業設計和實習。軟件工程專業的工程實踐類課程沒有理論授課,全部都是實驗或上機課,主要是培養學生的應用理論知識解決實際問題能力和工程實踐動手能力,在整個軟件工程專業的實踐教學體系中占據著非常重要的一個位置[3-4]。
1 基于CDIO的工程實踐類課程培養標準的制訂
根據CDIO教學大綱,CDIO培養標準指標共分為三級,其中一級指標4個,分別是技術知識和推理,個人能力、職業能力和態度,人際交往能力、團隊工作和交流,在企業和社會環境下構思、設計、實現、運行系統的能力。每個一級指標又分為很多二級指標,二級指標又分為若干三級指標[1-5]。結合CDIO培養標準和成都信息工程大學軟件工程學院軟件工程專業的培養目標,我們制定了軟件工程專業的培養標準,其中與工程實踐類課程相關的培養標準見表1。工程實踐類課程主要培養學生的以下幾方面的能力:①應用核心軟件工程基礎知識的能力;②工程推理和解決問題的能力;③進行工程實踐所需的個人能力;④團隊合作能力;⑤人際交流能力;⑥系統的構思與工程化能力。
2 軟件工程實踐類課程體系的構建
基于CDIO的工程實踐類課程培養標準對現有的工程實踐類課程進行改革,重新構建工程實踐課程群,總共包括4門課程:工程實踐I(編碼訓練)、工程實踐II(軟件技術)、工程實踐III(軟件測試)和工程實踐IV(綜合訓練)。這4門課程的學時、學分、執行學期和培養標準見表2。這4門課分別設置在不同的學期,每門課的學時都是32學時(2學分),每門課程的培養標準三級指標都根據表1中的培養標準設定。
工程實踐類課程群的構建思想:①學生通過工程實踐類課程的學習,能夠達到表1中的能力要求,因此所有工程實踐課程的培養標準加起來能夠完全覆蓋表1中的培養標準三級指標;②按照軟件工程由底向上、循序漸進的模式,構建工程實踐課程群。
在第3學期,首先開設的是工程實踐I(編碼訓練)課程,重點培養學生的基本編程功能, 培養學生應用所學的C語言程序設計、面向對象程序設計(C#或Java)、數據結構等課程專業基礎知識解決實際問題的能力和動手編程能力。工程實踐I課程為后續的3門工程實踐課程打下實踐基礎。
在第4學期,開設的是工程實踐II(軟件技術)課程,重點培養學生使用高級程序設計語言(JSP、ASP.NET等語言)和數據庫技術(Oracle、SQL Server等)進行Web編程的能力和初步軟件設計能力,同時培養學生對已有軟件的需求分析能力以及對設計文檔的閱讀和理解能力。
在第5學期,開設的是工程實踐III(軟件測試)課程,重點培養學生制訂測試計劃、設計測試用例、實施測試方案等基本的測試技能,為學生進入企業從事軟件測試工作奠定堅實的實踐基礎。
在第6學期,開設的是工程實踐IV(綜合訓練)課程,通過一個中型軟件工程項目的完整開發,學生經歷需求分析、概要設計、詳細設計、程序編碼、程序測試及集成運行全過程,培養軟件項目構思、設計、實現和運行系統的基本能力,在企業和社會環境下,能夠參與或組織一個完整軟件項目的全生命周期工作,包括軟件的需求、設計、實現、測試、維護等工作[4]。
3 工程實踐類課程的教學主要內容和實施
所有的工程實踐課程都圍繞該課程的培養標準進行課程教學內容的設計和實施,課程的教學內容應該完全覆蓋該課程培養標準三級指標,使學生通過該課程的學習,能力能夠達到培養標準所要求的水平。所有的工程實踐課程都是以項目驅動型教學方法為主,教師以一套項目案例展開教學活動,學生參考案例模板,按軟件工程流程完成自己的項目。除了工程實踐課程I,其他的工程實踐課程都以小組為單位(4~6人組成一個小組)完成課程作業。每個工程實踐課程都要求項目答辯,一人一辯。通過項目答辯可以考查和評估學生所做系統的效果以及學生的項目設計、實現、測試、集成等能力,還可以鍛煉學生的口頭表達能力和交流能力。每個課程項目答辯在課程最后階段進行,一般需要8~12學時完成。
工程實踐I (編碼訓練)課程的主要教學內容:①每名學生選擇一個小型軟件項目(或者老師指定一個項目),制訂項目開發計劃;②對項目進行初步分析和設計,完成程序模塊劃分和設計,撰寫程序設計文檔;③學習程序編碼規范,編寫符合編碼規范的程序代碼;④程序調試和測試;⑤完成項目答辯;⑥編寫課程總結報告,提交項目成果。
工程實踐II(軟件技術)課程的主要教學內容:①任課教師提供多個信息管理系統軟件的需求分析、功能結構設計、數據庫設計等資料供學生選擇,以選擇好的項目作為后期功能實現及評價的依據;②學生小組根據項目資料,在規定時間內完成軟件項目的原型設計,提交中間成果(功能設計文檔和系統原型);③根據系統項目文檔及前期做的原型,完成對應系統的編碼及具體實現,小組成員分工合作,由小組長負責組織協調,要求每個學生至少完成一個相對完整的功能模塊設計與開發;④每名學生分別講述自己完成項目的工作情況和實現方式,進行項目答辯。
工程實踐III(軟件測試)課程的主要教學內容:①教師給定一個待測試軟件系統的需求、設計文檔以及源代碼,學生分組閱讀理解該系統的文檔和源代碼,按規范格式編寫軟件測試計劃書;②學生根據軟件測試計劃書進行測試用例設計;③學生根據測試用例設計書,按步驟執行測試用例,記錄測試結果;④學生分析軟件缺陷分布狀況和測試結果,按軟件測試總結報告要求編寫軟件測試總結報告,提交相關文檔;⑤每名學生進行項目答辯。
工程實踐IV(綜合訓練)課程的主要教學內容:①學生以小組為單位,自選一個中型軟件項目系統題目(或老師指定一個題目),進行文獻檢索、資料查詢,按規范格式編寫需求規格說明書;②根據需求規格說明書,按規范格式進行數據庫設計和模塊功能設計,小組共同完成概要設計說明書;③每名學生根據概要設計說明書,按規范格式完成所分配模塊的詳細設計說明書;④每名學生根據詳細設計說明書,按照編碼規范完成自己所分配模塊的代碼編寫;⑤每名學生按標準文檔格式記錄測試結果,提交測試文檔;⑥學生以團隊為單位,完成項目集成,提交源代碼;⑦每名學生進行項目現場演示及項目答辯。
4 考核方式
所有的工程實踐課程均采用過程化考核方式,除了平時表現(包括考勤、課堂表現和小組討論)之外,每門課程都設置很多中間過程考核環節。每個中間過程考核環節要求學生提交至少一個成果物(文檔或程序),每門課程最后都要進行項目答辯,一人一辯,因此一名學生的課程最終成績由平時表現成績+中間成果物成績+項目答辯成績構成。中間成果物要求至少有3項,不同課程的中間成果物不一樣,以工程實踐IV課程為例,其中間成果物包括需求規格說明書、概要設計說明書、詳細設計說明書、單元測試、代碼編寫和項目集成。每個課程的考核環節都要覆蓋該課程的培養指標,表3是工程實踐IV課程考核環節與考核指標的對應關系,所有考核環節覆蓋的三級培養標準加起來要能夠完全覆蓋該門課程的三級培養指標,項目答辯的成績不低于15%。
5 結 語
從4年的教學實踐來看,課程改革的效果良好。經過調研,很多學生反映通過工程實踐類課程學習,他們的需求分析、設計、實現、測試、集成等能力增強;很多企業雇主也非常認可這種工程實踐類課程的教學模式,認為對提升學生的工程實踐能力有很大幫助。當然,這種基于CDIO的工程實踐類課程教學模式還需要根據畢業生、企業雇主、第三方教育評估機構的追蹤調查反饋信息不斷完善,這也是我們下一步的研究工作。
參考文獻:
[1] Crawley E F, Malmqvist J, ?stlund S, et al. Rethinking engineering education: The CDIO approach[M]. 北京: 高等教育出版社,2009: 5-40.
[2] 陳澎, 熊耀華, 周慧. 基于CDIO模式的軟件工程實踐教學課程建設的研究[J]. 軟件工程, 2016(1): 1-3.
[3] 厲小軍, 謝波. 軟件工程實踐課程教學改革探索[J]. 計算機教育, 2012(3): 106-110.
[4] 岳希, 李超, 李蕊, 等. 軟件工程綜合實訓建設與實施[J]. 計算機教育, 2010(8): 143-145.
[5] 韓立華, 周穎, 胡暢霞. CDIO 理念下工程項目教學案例開發與應用實踐[J].計算機教育, 2015(24): 139-143.
(編輯:宋文婷)