摘 要:分析目前高校計(jì)算機(jī)專業(yè)軟件工程實(shí)踐教學(xué)存在的問題,提出在學(xué)校現(xiàn)有實(shí)踐教學(xué)條件下,結(jié)合社會發(fā)展對計(jì)算機(jī)專業(yè)人才的要求,借鑒企業(yè)的工程化模式,將校內(nèi)實(shí)驗(yàn)設(shè)備、師資、項(xiàng)目等資源進(jìn)行重組,實(shí)現(xiàn)課堂教學(xué)與實(shí)訓(xùn)相結(jié)合的課程設(shè)計(jì)教學(xué)的新模式。并給出了在中國軟件行業(yè)協(xié)會的支持下該模式的實(shí)踐過程,結(jié)果證明,教學(xué)效果良好。
關(guān)鍵詞:軟件工程;課程設(shè)計(jì)教學(xué);創(chuàng)新模式;實(shí)訓(xùn)
1 背景
軟件工程課程設(shè)計(jì)的目標(biāo)是使學(xué)生系統(tǒng)地掌握軟件工程的過程、方法和工具,為學(xué)生將來從事軟件的研發(fā)和管理奠定基礎(chǔ)。軟件工程教學(xué)內(nèi)容中的需求分析、設(shè)計(jì)、實(shí)現(xiàn)和測試等軟件開發(fā)技術(shù)以及工程化的開發(fā)過程(如軟件過程、配置管理、項(xiàng)目管理等)必須通過實(shí)際軟件問題求解過程以及團(tuán)隊(duì)合作進(jìn)行體驗(yàn),而綜合的軟件開發(fā)能力的鍛煉和培養(yǎng)是需要借助一個(gè)完整的軟件項(xiàng)目開發(fā)過程。因此軟件工程課程設(shè)計(jì)是鞏固課堂教學(xué)成果、培養(yǎng)學(xué)生軟件工程實(shí)踐能力的重要環(huán)節(jié)[1],為了培養(yǎng)高素質(zhì)、高質(zhì)量的軟件工程人才必須在理論與實(shí)踐結(jié)合上下工夫,通過強(qiáng)化實(shí)踐教學(xué)來提高人才培養(yǎng)[2]。
2 現(xiàn)狀
教育部高教司2006年一項(xiàng)調(diào)查[3]顯示,自2002年以來,高校計(jì)算機(jī)專業(yè)大學(xué)生初次就業(yè)率連年下滑,然而業(yè)界高端軟件人才依舊匱乏。造成這一現(xiàn)象的重要原因?yàn)楫?dāng)前高校軟件工程型人才的能力結(jié)構(gòu)和知識結(jié)構(gòu)與當(dāng)前技術(shù)發(fā)展不能緊密結(jié)合,沒有形成以能力培養(yǎng)為核心、綜合技能訓(xùn)練為輔助的實(shí)踐課程體系[4]。目前軟件工程的實(shí)踐教學(xué)主要存在以下問題:
1) 軟件工程教學(xué)多數(shù)還停留在傳統(tǒng)的人才培養(yǎng)模式,基礎(chǔ)理論知識和驗(yàn)證型實(shí)驗(yàn)構(gòu)成教學(xué)主體,
缺少對學(xué)生工程能力和職業(yè)素質(zhì)的訓(xùn)練,因此培養(yǎng)出來的學(xué)生難以適應(yīng)IT企業(yè)的需求。
2) 傳統(tǒng)的軟件工程教學(xué)使學(xué)生具備一定的專業(yè)基礎(chǔ)知識,但沒有機(jī)會讓學(xué)生將所學(xué)知識融會貫通,缺乏實(shí)際參與軟件工程項(xiàng)目的經(jīng)驗(yàn)。
3) 學(xué)校通過在企業(yè)建立實(shí)訓(xùn)基地的形式將軟件工程實(shí)踐環(huán)節(jié)引入其中。這種形式可以促進(jìn)學(xué)生從學(xué)習(xí)專業(yè)知識向?qū)W習(xí)專業(yè)技能迅速轉(zhuǎn)化。但這種形式需要投入大量的人力、財(cái)力。目前,由于這種形式風(fēng)險(xiǎn)較大,成本高,多數(shù)高校沒有采用。
如何在學(xué)?,F(xiàn)有教學(xué)條件下,借鑒企業(yè)的工程化模式,實(shí)現(xiàn)軟件工程課堂教學(xué)與實(shí)訓(xùn)相結(jié)合,使學(xué)生走出校門就能實(shí)現(xiàn)與IT企業(yè)的無縫連接,這正是該門課程在實(shí)踐教學(xué)環(huán)節(jié)需要研究和解決的問題。
3 課程設(shè)計(jì)改革
工程化的方法開發(fā)軟件已成為當(dāng)今業(yè)界的共識,對學(xué)生工程能力和職業(yè)素養(yǎng)的培養(yǎng)僅在學(xué)校內(nèi)部進(jìn)行顯然局限性大,為了更好地促進(jìn)學(xué)生這種專業(yè)綜合能力的塑造,我校通過中國軟件行業(yè)協(xié)會教育與指導(dǎo)委員會與北京市中關(guān)村軟件園簽訂了校企合作的協(xié)議,并在中關(guān)村軟件園掛牌成立了校外實(shí)訓(xùn)基地。由于軟件工程課程設(shè)計(jì)周期有限(如1周),進(jìn)入實(shí)訓(xùn)基地進(jìn)行教學(xué)的效果并不理想。因此,借助合作,我們對軟件工程課程設(shè)計(jì)教學(xué)環(huán)節(jié)進(jìn)行改革,
作者簡介:唐曉君,女,副教授,研究方向?yàn)檐浖こ蹋焕顣约t,女,講師,研究方向?yàn)樾畔⑾?b name="eae349a090d7525181d304ae0ce009830fabbf80">統(tǒng)、軟件測試。
使其與實(shí)訓(xùn)相結(jié)合,探索出一種計(jì)算機(jī)實(shí)訓(xùn)與基本教學(xué)實(shí)踐環(huán)節(jié)無縫結(jié)合的模式,具體實(shí)踐流程如下。
3.1 內(nèi)容安排
目前,我校軟件工程課程設(shè)計(jì)教學(xué)環(huán)節(jié)按照教學(xué)大綱安排,共分以下幾個(gè)步驟。
1) 課程設(shè)計(jì)要求說明。給出課程設(shè)計(jì)期間對學(xué)生的出勤、時(shí)間、地點(diǎn)等要求。
2) 課程設(shè)計(jì)任務(wù)布置與講解。進(jìn)行課程設(shè)計(jì)安排時(shí),課程設(shè)計(jì)任務(wù)的布置形式由教師進(jìn)行課程教學(xué)的形式發(fā)布;對課程設(shè)計(jì)內(nèi)容的選取大多選擇模擬或選取類似中小企業(yè)項(xiàng)目。
3) 分組實(shí)踐。分組原則是使每個(gè)學(xué)生工作量相當(dāng),并都能在項(xiàng)目開發(fā)過程中得到鍛煉。
4) 中期檢查。教師對各小組中期結(jié)果以答辯的形式進(jìn)行監(jiān)督檢查,督促各小組按進(jìn)度進(jìn)行。
5) 課程設(shè)計(jì)答辯、設(shè)計(jì)結(jié)果提交。課程設(shè)計(jì)采用答辯和軟件演示的形式對設(shè)計(jì)結(jié)果進(jìn)行驗(yàn)收。
以上這種課程設(shè)計(jì)安排形式也是大多數(shù)高校采用的方式,但該方式不能使學(xué)生對企業(yè)軟件開發(fā)全過程產(chǎn)生很好的感性認(rèn)識。同時(shí),由于項(xiàng)目大多是模擬項(xiàng)目,學(xué)生對待項(xiàng)目積極性不夠,對項(xiàng)目需求的理解及設(shè)計(jì)的實(shí)現(xiàn)也過于局限,小組成員的角色分工也不夠科學(xué)。此外,對課程設(shè)計(jì)環(huán)節(jié)的管理(任務(wù)下發(fā)、角色分配、進(jìn)度控制、在線答疑、任務(wù)提交等)一直沒有實(shí)現(xiàn)信息化。
3.2 具體措施
結(jié)合軟件工程實(shí)踐教學(xué)的現(xiàn)狀,針對我校軟件工程課程設(shè)計(jì)存在的問題,在中國軟件行業(yè)協(xié)會提供的產(chǎn)學(xué)研實(shí)訓(xùn)平臺的支持下,我校對軟件工程課程設(shè)計(jì)的教學(xué)進(jìn)行了以下幾方面的改革和探索:
1) 將實(shí)訓(xùn)模式引入課程設(shè)計(jì)中。
軟件工程課程設(shè)計(jì)教學(xué)采用的是實(shí)訓(xùn)模式,但由于考慮成本問題,沒有借助企業(yè)人員進(jìn)行專門指導(dǎo)。學(xué)生課程設(shè)計(jì)地點(diǎn)仍在計(jì)算機(jī)專業(yè)機(jī)房和專門實(shí)驗(yàn)室,課程設(shè)計(jì)是在本校軟件工程專業(yè)教師的指導(dǎo)下,按照軟件企業(yè)的項(xiàng)目開發(fā)摸式,以“項(xiàng)目驅(qū)動”形式進(jìn)行軟件開發(fā)實(shí)踐訓(xùn)練,既以項(xiàng)目開發(fā)帶動軟件工程的理論學(xué)習(xí),又以軟件工程的理論來指導(dǎo)軟件開發(fā)的實(shí)踐,使學(xué)生得到較全面、系統(tǒng)和規(guī)范的軟件工程實(shí)踐訓(xùn)練,提高軟件設(shè)計(jì)與開發(fā)的能力。
2) 將產(chǎn)學(xué)研實(shí)訓(xùn)管理平臺引入課程設(shè)計(jì)管理中。
對軟件工程課程設(shè)計(jì)整個(gè)環(huán)節(jié)的管理(包括任務(wù)發(fā)布、角色分配、項(xiàng)目管理、進(jìn)度監(jiān)控、成果驗(yàn)收、學(xué)生管理等)通過中國軟件行業(yè)協(xié)會提供的產(chǎn)學(xué)研實(shí)訓(xùn)管理平臺實(shí)現(xiàn)。平臺為每個(gè)學(xué)生分配用戶賬號及口令,通過該平臺統(tǒng)一進(jìn)行學(xué)生管理,學(xué)生可以通過校園網(wǎng)登錄實(shí)訓(xùn)管理平臺,方便快捷的了解項(xiàng)目需求(課程設(shè)計(jì)主要任務(wù))、項(xiàng)目相關(guān)資料、項(xiàng)目管理流程、項(xiàng)目角色分工等信息。平臺也為指導(dǎo)教師提供管理接口,教師可以通過平臺進(jìn)行項(xiàng)目案例的發(fā)布與管理、項(xiàng)目的啟用、項(xiàng)目角色的管理等。學(xué)生和教師還可以使用在線提問與在線答疑的形式指導(dǎo)教師進(jìn)行交流,學(xué)生與教師的溝通更加實(shí)時(shí)、高效,實(shí)現(xiàn)了完全信息化的管理形式。
3) 將企業(yè)真實(shí)案例引入課程設(shè)計(jì)中。
在進(jìn)行課程設(shè)計(jì)任務(wù)布置時(shí),采用所有項(xiàng)目案例均來自中國軟件行業(yè)協(xié)會提供的企業(yè)真實(shí)案例(10余個(gè)),考慮到企業(yè)員工與在校學(xué)生的能力差別,同時(shí)根據(jù)課程設(shè)計(jì)要求掌握的知識點(diǎn)和教學(xué)時(shí)間限制,通過指導(dǎo)教師與軟件行業(yè)協(xié)會技術(shù)人員溝通,對項(xiàng)目案例進(jìn)行不同程度的調(diào)整。因此,應(yīng)用到課程設(shè)計(jì)教學(xué)中的所有教學(xué)案例均由本校教師根據(jù)課程設(shè)計(jì)的要求定制確定。對案例的裁剪既解決了以往教學(xué)案例局限的問題,又保證了學(xué)生在有限的設(shè)計(jì)周期內(nèi)實(shí)現(xiàn)完整實(shí)際項(xiàng)目開發(fā)的目的。
學(xué)生按照興趣選擇項(xiàng)目案例,這樣可以確保學(xué)生在整個(gè)項(xiàng)目周期中有足夠的積極性和信心按期完成。通過以實(shí)際的工程項(xiàng)目為背景,使學(xué)生參與實(shí)際項(xiàng)目開發(fā),以開發(fā)團(tuán)隊(duì)形式,按照實(shí)訓(xùn)步驟在規(guī)定的時(shí)間完成從需求分析建模(需求由案例給出)、設(shè)計(jì)、代碼編寫、測試、部署體驗(yàn)完整的軟件開發(fā)全過程。這樣,可以激發(fā)學(xué)生項(xiàng)目開發(fā)熱情,使學(xué)生完全掌握企業(yè)化軟件開發(fā)流程,并具備直接進(jìn)入企業(yè)進(jìn)行開發(fā)的能力。
4) 將企業(yè)項(xiàng)目管理方法引入課程設(shè)計(jì)中。
課程設(shè)計(jì)借鑒企業(yè)化運(yùn)作機(jī)制,實(shí)施每天八小時(shí)工作制,晚上可以加班加點(diǎn),以項(xiàng)目組長負(fù)責(zé)、項(xiàng)目組成員協(xié)作的形式完成設(shè)計(jì)任務(wù)。
項(xiàng)目啟動(課程設(shè)計(jì)任務(wù)的發(fā)布)通過產(chǎn)學(xué)研實(shí)訓(xùn)平臺發(fā)布,學(xué)生可以使用個(gè)人用戶賬號通過校園網(wǎng)絡(luò)登錄到平臺查看自己的項(xiàng)目組及項(xiàng)目要求。由于項(xiàng)目案例均來自企業(yè)真實(shí)案例,因此,平臺能為學(xué)生提供比較規(guī)范、詳細(xì)的需求說明文檔,幫助學(xué)生更好地理解業(yè)務(wù)知識及流程。
項(xiàng)目小組成立時(shí),指導(dǎo)教師按照項(xiàng)目實(shí)際情況(項(xiàng)目需求復(fù)雜程度、設(shè)計(jì)難度、代碼量等)安排小組人數(shù),并按照學(xué)生能力對小組成員進(jìn)行角色分配,如項(xiàng)目組長、軟件工程師、測試工程師、配置工程師等。這種角色分工根據(jù)源于企業(yè)項(xiàng)目組的分工,能夠使學(xué)生更加感性的認(rèn)識企業(yè)中的不同角色。在進(jìn)行小組人數(shù)的安排時(shí),為防止出現(xiàn)工作量過少的情況發(fā)生,限制每組人數(shù)不得超過5人,滿足軟件工程中7±2的原理。后來的實(shí)踐證明,這樣的分組,在項(xiàng)目中每個(gè)實(shí)訓(xùn)的學(xué)生都有明確的職責(zé)和任務(wù),工作量非常飽滿,通過項(xiàng)目組內(nèi)部協(xié)作,能夠降低項(xiàng)目實(shí)施的難度,又能確保項(xiàng)目能夠按期保質(zhì)保量完成。開發(fā)過程中,任何一個(gè)學(xué)生不努力或不配合,都可能導(dǎo)致最終提交的任務(wù)效果不理想。
項(xiàng)目進(jìn)度的控制通過實(shí)訓(xùn)管理平臺設(shè)定中期檢查及最終任務(wù)提交時(shí)間表實(shí)現(xiàn)。開發(fā)過程中,無論是中期檢查結(jié)果還是最終成果驗(yàn)收都通過平臺來提交,并以教師評語的形式實(shí)時(shí)有效地將結(jié)果給學(xué)生反饋,既可以提高學(xué)生繼續(xù)完善項(xiàng)目的動力,還可以有效地監(jiān)控各項(xiàng)目組的進(jìn)度,同時(shí),還可以及時(shí)對各項(xiàng)目組進(jìn)行溝通與指導(dǎo)。
項(xiàng)目進(jìn)行中(課程設(shè)計(jì)過程中),教師不再是傳統(tǒng)的講授者,更像是一位工程項(xiàng)目的經(jīng)理,負(fù)責(zé)提出項(xiàng)目的要求(即向?qū)W生明確項(xiàng)目應(yīng)用的背景、目的、期望看到的結(jié)果、具體的數(shù)據(jù)和指標(biāo)要求),檢查項(xiàng)目(學(xué)生)的開發(fā)進(jìn)度,監(jiān)督開發(fā)過程,評定軟件質(zhì)量。同時(shí)適當(dāng)點(diǎn)出課程設(shè)計(jì)中可能涉及到的知識,幫助學(xué)生自主學(xué)習(xí)、啟發(fā)學(xué)生創(chuàng)造性思維的觀念,然后由學(xué)生自己進(jìn)行理論分析,自己建立問題的模型,自己掌握開發(fā)進(jìn)度,自己完成課程設(shè)計(jì)的任務(wù),最終使學(xué)生具備獨(dú)立分析和解決問題的能力。
對項(xiàng)目成果的驗(yàn)收,采用全面有效的質(zhì)量評價(jià)指標(biāo),不僅考慮項(xiàng)目完成的質(zhì)量,包括需求、設(shè)計(jì)模型的合理性、準(zhǔn)確性,軟件代碼的完整度,還要考慮驗(yàn)收答辯時(shí)項(xiàng)目組成員不同任務(wù)承擔(dān)者的表現(xiàn),這種評價(jià)機(jī)制既能保證對學(xué)生工程能力的考核,又能鍛煉學(xué)生的協(xié)作能力和職業(yè)素養(yǎng)。
3.3 成果
該實(shí)踐教學(xué)模式應(yīng)用到了本校計(jì)算機(jī)2007級、2008級兩個(gè)年級中,在成果驗(yàn)收時(shí)與往屆比較有很大進(jìn)步,體現(xiàn)在以下幾方面:
1) 因采用企業(yè)真實(shí)項(xiàng)目案例,學(xué)生在課程設(shè)計(jì)過程中學(xué)習(xí)積極性有很大提高。
2) 以企業(yè)規(guī)范的需求及設(shè)計(jì)說明書作為指導(dǎo),開發(fā)過程中對項(xiàng)目需求的理解更加清晰,分析得更加充分。
3) 項(xiàng)目需求分析及設(shè)計(jì)階段模型建立更加準(zhǔn)確。
4) 因有實(shí)訓(xùn)平臺進(jìn)行角色任務(wù)管理,小組成員分工更加科學(xué)、合理。
5) 最終提交的課程設(shè)計(jì)文檔更加規(guī)范。
6) 學(xué)生的團(tuán)體協(xié)作能力得到很好的鍛煉,項(xiàng)目完成度有很大提高。
7) 學(xué)生對企業(yè)軟件開發(fā)全過程有了更深刻的認(rèn)識。
8) 在實(shí)訓(xùn)平臺的支持下,將傳統(tǒng)的“以教師為中心”的教學(xué)模式,轉(zhuǎn)變?yōu)椤耙詫W(xué)生為中心,在教師指導(dǎo)下的主動學(xué)習(xí)”模式,有效地達(dá)到了教學(xué)互動、教學(xué)相長的良好效果,同時(shí)老師對學(xué)生以及項(xiàng)目的管理更加高效。
另外,在期末進(jìn)行的評教中,該門課程的實(shí)踐教學(xué)更是得到了學(xué)生的認(rèn)可,評教優(yōu)良率達(dá)到了98%。
4 結(jié)語
讓工程化思想成為學(xué)生從事軟件開發(fā)工作的行動指南并不是一件容易的事情。在傳統(tǒng)的教學(xué)過程中,軟件工程往往是一門獨(dú)立的理論性課程,學(xué)生們認(rèn)為軟件工程就是一些條條框框。缺乏實(shí)踐經(jīng)驗(yàn),缺乏合作開發(fā)軟件的感性體會,使得學(xué)生在學(xué)習(xí)過程中難于理解軟件工程的精髓。
通過軟件工程課程設(shè)計(jì)教學(xué)的改革,使學(xué)生對企業(yè)軟件開發(fā)及軟件過程管理有了更加深刻的認(rèn)識。這種模式成功地將實(shí)訓(xùn)環(huán)節(jié)引入了課程設(shè)計(jì),在課程設(shè)計(jì)的實(shí)踐教學(xué)中培養(yǎng)學(xué)生的軟件工程意識,這是對高校計(jì)算機(jī)專業(yè)實(shí)訓(xùn)與實(shí)踐教學(xué)環(huán)節(jié)無縫結(jié)合模式的有益探索,可在計(jì)算機(jī)專業(yè)其他的實(shí)踐教學(xué)環(huán)節(jié)進(jìn)行推廣,如數(shù)據(jù)庫實(shí)踐教學(xué)、程序設(shè)計(jì)實(shí)踐教學(xué)等,還可以將這種模式推廣到兄弟院校的計(jì)算機(jī)專業(yè),這也是中國軟件行業(yè)協(xié)會一直大力支持和倡導(dǎo)的。
參考文獻(xiàn):
[1]