摘要:針對目前很多高校在軟件工程實踐教學初期所遇到的缺乏過程指導與各種資源的問題,闡述軟件工程實踐教學所需要的各方面支撐體系,構建一個由指導手冊、系統(tǒng)原型、關鍵問題解決方案、教學資源庫及相應管理規(guī)則、考核指標體系等要素形成的全方位實踐教學支撐平臺。
關鍵詞:教學改革;實踐教學;支撐平臺;實訓課程
一段時間以來,高校培養(yǎng)的軟件工程專業(yè)的學生存在著“重理論、輕實踐”、“什么都知道,卻什么系統(tǒng)都做不出”的尷尬局面?!把鄹呤值汀薄ⅰ皠邮謱嵺`能力不強”這些語句是軟件企業(yè)對高校畢業(yè)生最多的評價和抱怨。形成這種情況的根源是我們在計算機傳統(tǒng)教學中重理論輕實踐,對軟件工程實踐教學沒有給予足夠的重視。雖然目前不少學校已意識到這個問題,并開始重視實踐教學,著手提高學生的工程實踐能力,但由于實踐教學的特點,我們在實踐教學的開展過程中,存在不少的實際問題,特別是過程指導與資源建設的問題,需要構建高質量的實訓教學支撐平臺,以提高實踐教學的效果和學生的滿意度。
1、軟件工程實踐教學的特點
軟件工程實踐教學目前還處于摸索階段;特別是實踐課程的設置問題,要么局限于比較簡單的實踐活動,如大作業(yè)或課程設計。也有一些學校進行的是2~3周的專門實訓課程,這類實踐過程偏短,學生不能真正完成軟件工程全階段的工作;要么是項目過于龐大,如全真模仿商業(yè)產(chǎn)品的開發(fā),開發(fā)周期可能長達一個學期,教師因為精力、時間分配不足等原因參與度有限,不能有效地全程指導學生實踐,變成學生們“孤軍奮戰(zhàn)”,最后“掉落在泥潭里”,最終項目失敗,匆匆結束,學生們得不到應有的提高。
再從實踐教學的特點來看,軟件工程實踐教學不同于傳統(tǒng)的理論教學,它牽涉的知識面廣,對教師的工程實踐能力要求較高,涉及的事務性和管理性工作較多,需要教師與學生一起“摸爬滾打”,投入大量的精力和時間。不同的教師對其重視程度不同,取得的教學效果差異很大,但對教師工作成績考核卻沒有有效的橫向比較指標。這在一定程度上影響了教師的積極性。
2、實踐教學支撐平臺建設
針對上述問題,從2007年開始,我們著手進行教學計劃改革,加大、加強軟件工程實踐教學的力度,并特別重視實踐教學支撐平臺的建設。平臺建設之初,國內(nèi)尚無可借鑒的經(jīng)驗。在這種情況下,華南理工大學軟件學院與國際著名軟件公司IBM進行合作,在建設好硬件平臺的基礎上,精心設計完成了一整套軟件開發(fā)全過程中各個過程所需要的系統(tǒng)靜態(tài)原型、指導手冊l、各種技術文檔模板、各種關鍵技術課件、分別對應于教師與學生的管理制度及考評指標等資源,形成完整的實踐教學支撐平臺。在此平臺的支撐下,學校組織學生參加為期8周的項目開發(fā)實訓,模擬軟件企業(yè)的管理模式,遵循軟件工程的原理與方法,在教師的指導下,開展軟件開發(fā)的全過程,并在最后拿出一個符合業(yè)界標準的軟件系統(tǒng)。經(jīng)過4年多的不斷總結和完善,實踐教學支撐平臺已經(jīng)基本成型,并取得了較好的教學效果。在它的支撐下,全面的實訓課程體系與指南也逐步改進成型。
實踐教學主要是通過項目實訓的方式,使學生采用工程化的方式開發(fā)和設計軟件系統(tǒng),熟練掌握軟件工程知識與技能,培養(yǎng)學生具有能勝任研究、分析、開發(fā)、設計、測試、管理等多種角色的專業(yè)能力。為有效地開展實踐教學,我們需要支撐平臺的支持,要構建支撐平臺,需要采取一系列有效的方法,解決一些關鍵問題。
2.1 實訓課程項目時間及內(nèi)容的選定
過短或過長的實訓課程項目時間都不利于提高學生的工程實踐能力。時間過短,學生在軟件開發(fā)各階段的深入度不夠,感受不深,所受的訓練強度也不夠,自然獲益不多;時間過長,項目規(guī)模過大,學生浸沒在繁瑣的技術細節(jié)中,容易產(chǎn)生厭煩情緒,專注度不能持續(xù),也不利于把握軟件過程各階段的主要技術和目標。綜合考慮,6~8周的時間比較合適,除掉最初階段的可行性調查和需求調研外,學生通過努力,可以在6~8周的時間內(nèi)完成需求分析、建模、設計、編碼及測試這幾個主要軟件工程過程的工作,最后開發(fā)出一個接近于實用的軟件系統(tǒng)。
實訓課程項目內(nèi)容的選定是實踐課程教學的重要部分,也是實訓課程建設的難點和重點。實訓項目內(nèi)容的設計既要考慮想要學生掌握的技術,還要考慮項目的規(guī)模。我們通過與IBM公司的合作,將該公司的一個實際商業(yè)項目經(jīng)過裁剪后作為實訓項目的題目,以滿足課程需求。
2.2 協(xié)作開發(fā)支撐平臺的建設
我們充分利用IBM公司在業(yè)界領先的RSA(Rational Software Architect)和KAD(RationalApplication Developer)等軟件系統(tǒng),配合項目管理軟件、Bug管理跟蹤系統(tǒng),基于計算機網(wǎng)絡和服務器,架設起FTP、SVN、數(shù)據(jù)庫及應用服務器,建立了團隊協(xié)作開發(fā)支撐平臺。這個平臺不但可以進行Java EE實訓,還可支持其他各種項目的開發(fā)實訓。
2.3 “學習工廠”開發(fā)方式
在實訓中我們采取了“學習工廠”的教學方式?!皩W習工廠”是國際工程教育界對于工程學科的一種主要的實踐教學方式。它以校內(nèi)的工程實踐學習環(huán)境為基礎,通過工業(yè)界提供的設計項目,在企業(yè)教師和學校教師的雙重指導下,使學生能夠親自動手完成這一工程實踐項目。在實訓課程中,教師讓學生進行自由組合,由6~8個學生組成一個團隊,選出項目經(jīng)理、技術經(jīng)理、測試經(jīng)理、配置管理員等角色,并保證每人都有一定的編碼工作量。教師擔任團隊項目總監(jiān),持續(xù)跟蹤團隊的狀態(tài),了解進展,對明顯偏差進行建議和指導。
2.4 基于項目驅動,基于問題學習
學生的工作和學習都是基于項目開發(fā)進行的。在項目開發(fā)過程中,學生會遇到包括溝通、技術等各方面的問題,指導教師一般不直接給出解決的具體辦法,而是指導學生自行調研、查閱和學習,形成自己的解決方案。
2.5 完善的多指標考核體系
完善的多指標考核體系包含幾個層面的問題。一是怎樣全面、客觀地考核實訓課程的效果,表現(xiàn)在大部分學生經(jīng)過實訓后有多大的提高;二是怎樣考核每個團隊做出來的作品;三是考核學生作為個體對團隊項目的貢獻;四是考核教師的表現(xiàn)與所起的作用。從這幾個問題出發(fā),我們建立了實訓的考核指標庫。從實訓課程最開始的各個時段,就按指標進行過程式考核。這樣就避免了學生由于前期太松懈導致后期項目不能完成或完成質量太差的現(xiàn)象。
3、平臺特點
3.1 軟件工程思想貫穿實訓全過程
通過實訓,學生充分認識到軟件開發(fā)是件龐大而繁雜的事情,如果不應用軟件工程的思想,項目會不可避免地失敗。我們應該加強軟件工程過程能力的訓練,把一個開發(fā)周期分成若干個具有里程碑的階段。每個階段都有明確的輸入和輸出,輸出必須通過文檔的形式進行完整描述,而且其輸出是可驗證的。在開發(fā)活動的全過程中,加深學生對“統(tǒng)一軟件開發(fā)過程RUP”“迭代式開發(fā)”等重要概念的深刻理解。
3.2 以“CDIO”的方式提高學生的實踐能力
CDIO為構思(Conceive)、設計(Design)、實施(Implement)與運行(Opemte)的縮寫,是以產(chǎn)品從研發(fā)到運行的生命周期過程為載體,使學生通過主動的、實踐的、課程之間有機聯(lián)系的方式學習工程,培養(yǎng)學生的工程能力。相應于這一方式,讓學生在實訓項目開發(fā)中調研、實踐,建立起對問題的感性認識,促使其回憶、學習相應的理論知識,經(jīng)過綜合分析與思考,再回到實際中解決問題,最終運行、維護所開發(fā)的系統(tǒng)。這樣一種“實踐—理論—再實踐”的學習方式,使學生對所學專業(yè)知識有了更深刻的理解和更強的運用能力。
3.3 “因材施教”原則的有機應用
開發(fā)團隊內(nèi)不同的角色由不同性格特質、技術能力和知識水平的學生承擔,主要任務也各不相同。如項目經(jīng)理的主要工作是“上通下達”,制訂、監(jiān)督、保證項目順利完成,適合有一定管理能力、溝通能力的學生擔任,不一定承擔大量的編碼工作;技術經(jīng)理則是團隊中的技術中堅力量,不但承擔主要的技術工作,還要負責其他組員的技術培訓;測試人員則要保證軟件系統(tǒng)的質量等。通過這樣的安排,使得各類學生都能發(fā)揮自己的專長,積極地參與到項目實訓中去。
4、結語
我們通過3年的實踐教學支撐平臺及實訓課程的建設,最終形成了支撐各種實訓課程的綜合平臺,規(guī)范了各種實訓操作流程,建立了各種文檔資源及模板,并逐步應用到各種內(nèi)容的實訓活動中。如教師及學生實訓指導手冊,使各實訓課程的教師和學生“何時做何種工作”都有可參照的模板。另外,平臺還提供系統(tǒng)原型、關鍵問題解決方案、教學資源庫及相應管理條例、管理系統(tǒng)、考核指標體系。我們在此平臺上開展的“Java EE實訓項目開發(fā)”實訓課程獲得2011年“教育部-IBM”精品課程及2011年“CSC-IBM中國獎研金”(CSC是指中國留學基金委)。我們希望在此平臺的支撐下,實踐教學將步入一個新階段。