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