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