摘 要:文章在分析了軟件工程課程現(xiàn)狀的基礎(chǔ)上,找出了傳統(tǒng)軟件工程實(shí)踐教學(xué)中時(shí)間不集中、實(shí)踐內(nèi)容不具備挑戰(zhàn)性等不足。針對這些不足,本文分別從實(shí)驗(yàn)內(nèi)容設(shè)計(jì)、組織方式和實(shí)施步驟三個(gè)方面,詳細(xì)闡述了在《軟件工程》實(shí)踐教學(xué)中采取的新模式和改革措施。通過實(shí)踐教學(xué)的改革,學(xué)生的主動學(xué)習(xí)能力、團(tuán)隊(duì)合作能力、溝通交流能力和獨(dú)立解決問題能力都得到了很大提高,教學(xué)效果明顯改善,真正起到實(shí)踐教學(xué)推動理論學(xué)習(xí)的作用。
關(guān)鍵詞:軟件工程;實(shí)踐教學(xué);改革;軟件開發(fā)
中圖分類號:TP311.5 文獻(xiàn)標(biāo)識碼:A
1 引言(Introduction)
自1968年北大西洋公約組織提出軟件工程[1]一詞以來,經(jīng)過將近50年的發(fā)展,現(xiàn)已成為集軟件工程原理、軟件工程方法、軟件工程模型、軟件工程環(huán)境、軟件工程管理等內(nèi)容于一身的一門綜合性較強(qiáng)的學(xué)科。通過對《軟件工程》課程的學(xué)習(xí),學(xué)生能夠了解軟件開發(fā)的各過程階段,選擇合適的過程模型和開發(fā)方法,熟悉使用項(xiàng)目管理中的相關(guān)技術(shù),編寫各階段的文檔資料,為日后學(xué)生在做畢業(yè)設(shè)計(jì)和踏上軟件開發(fā)的工作崗位時(shí)打下一定的基礎(chǔ)。
2 《軟件工程》實(shí)踐教學(xué)存在的問題(Problems
existing in the practice teaching of Software
Engineering)
《軟件工程》課程按軟件生命周期劃分成若干階段,如圖1所示。學(xué)習(xí)掌握軟件過程模型,選擇合適的開發(fā)方法和開發(fā)工具,并且還要將管理和工程化的思想融于其中,如進(jìn)度管理、人員管理、經(jīng)濟(jì)管理等。因此,《軟件工程》課程采用了理論和實(shí)驗(yàn)相結(jié)合的教學(xué)方式,通過理論課程學(xué)習(xí)軟件開發(fā)技術(shù),全面了解軟件系統(tǒng)的實(shí)際開發(fā)過程。但理論教學(xué)知識抽象,通篇都是文字,需記憶的內(nèi)容多,學(xué)生們感覺比較枯燥。怎樣讓學(xué)生更加容易理解軟件的生命周期各階段?怎樣將技術(shù)、方法和思想真正地融合于軟件開發(fā)當(dāng)中去?《軟件工程》課程的實(shí)踐教學(xué)就顯得尤其重要。一個(gè)好的實(shí)踐教學(xué),會使學(xué)生在理論學(xué)習(xí)中學(xué)到的知識點(diǎn)能夠得到更好地理解和掌握,對理論學(xué)習(xí)起到一個(gè)很好的推動作用;而且有時(shí)實(shí)踐教學(xué)過程中還會出現(xiàn)一些創(chuàng)新點(diǎn),這樣更能激發(fā)學(xué)生的學(xué)習(xí)興趣,也能豐富教師的理論知識,做到授課的時(shí)候?qū)嵗攀帜閬?,因此?shí)驗(yàn)與理論教學(xué)是相輔相成、必不可少的。
根據(jù)《軟件工程》課程的特點(diǎn)和培養(yǎng)計(jì)劃的安排,本學(xué)院安排該課程理論學(xué)時(shí)較多,實(shí)驗(yàn)學(xué)時(shí)很少,而且實(shí)驗(yàn)時(shí)間也很分散,即兩周上一次課。實(shí)驗(yàn)課內(nèi)容只能要求學(xué)生利用CASE工具,按照老師提供的系統(tǒng)進(jìn)行建模和編寫軟件開發(fā)各階段的文檔。由于缺乏挑戰(zhàn)性,導(dǎo)致學(xué)生對此不感興趣,照搬照抄的現(xiàn)象比較嚴(yán)重。這樣不僅學(xué)生的實(shí)踐能力沒有真正地得到鍛煉,而且也沒法推動理論教學(xué)。因此如何開展能夠取得良好教學(xué)效果的實(shí)踐教學(xué)就顯得尤其重要。
3 《軟件工程》實(shí)踐教學(xué)改革與實(shí)踐(Reform and
implementation of the practice teaching of
Software Engineering)
基于以上,在《軟件工程》實(shí)踐教學(xué)中出現(xiàn)的問題,該課程的實(shí)踐教學(xué)改革已迫在眉睫,希望通過實(shí)踐改革,能確實(shí)提高學(xué)生的分析、設(shè)計(jì)、溝通、管理等各方面能力,于是我們主要從實(shí)驗(yàn)內(nèi)容設(shè)計(jì)、組織方式和實(shí)施步驟這三個(gè)方面對《軟件工程》實(shí)踐教學(xué)進(jìn)行了改革與創(chuàng)新的嘗試[2,3]。
3.1 實(shí)驗(yàn)內(nèi)容設(shè)計(jì)
設(shè)計(jì)的題目受到時(shí)間、學(xué)生能力等因素的限制,不能太難,也不能過于簡單,因此需要嚴(yán)格把關(guān)。如果選擇諸如“圖書館管理系統(tǒng)”“成績管理系統(tǒng)”等題目[4],這些系統(tǒng)對于學(xué)生來說過于熟悉,易于掌握系統(tǒng)的需求,學(xué)生們就不會花費(fèi)太多的精力去進(jìn)行需求調(diào)研,而是直接進(jìn)行編程,從而就會產(chǎn)生“軟件開發(fā)=編程”的誤區(qū),總是認(rèn)為編程是最重要的;同時(shí)也喪失了鍛煉自己溝通、合作等方面能力的機(jī)會;此外,學(xué)生對此類題目缺乏興趣,只會應(yīng)付了事。由此可見,軟件工程實(shí)踐中應(yīng)采用具有一定的操作性(即可結(jié)合本校實(shí)際情況,就地取材,方便學(xué)生隨時(shí)隨地調(diào)查研究),而且還要具有適當(dāng)難度(日后可以進(jìn)一步擴(kuò)充完善)的題目,如學(xué)生宿舍管理系統(tǒng)。學(xué)校目前沒有類似的系統(tǒng),學(xué)生參與度高,這樣既能激發(fā)學(xué)生的開發(fā)熱情,還能培養(yǎng)他們的溝通、合作及各方面綜合能力,從而真正達(dá)到課程實(shí)踐的意義。
3.2 組織方式
軟件工程實(shí)踐課程意在培養(yǎng)學(xué)生的團(tuán)隊(duì)合作精神、交流溝通能力和軟件研發(fā)能力,讓他們獲得較真實(shí)的軟件開發(fā)經(jīng)驗(yàn),從而豐富他們在校期間無開發(fā)經(jīng)驗(yàn)的經(jīng)歷,為日后進(jìn)入軟件開發(fā)公司打下基礎(chǔ)。所以我們采用的是仿企業(yè)職責(zé)分配式的“項(xiàng)目小組”形式。先讓學(xué)生自由選組,然后再根據(jù)學(xué)生能力統(tǒng)一調(diào)配,最后確定每組人員5—6人,推選出一名項(xiàng)目負(fù)責(zé)人,由其召集小組成員選定開發(fā)題目。
企業(yè)中會按照職責(zé)分配設(shè)置為系統(tǒng)分析員、設(shè)計(jì)員、程序員和測試員等,但是就現(xiàn)在大三的學(xué)生來說,不能完全仿照這種方式來。從圖2來看[5-7],學(xué)生目前學(xué)習(xí)較多的是程序設(shè)計(jì)課程,而分析與設(shè)計(jì)工作才剛接觸。如果采用職責(zé)分配的方式,顯然不太合適,因此在此階段采用“共同合作,集思廣益”的方式,學(xué)生們共同分析要與之打交道的用戶,選擇合適的溝通方式,共同設(shè)計(jì)調(diào)查問卷等,幫助部分學(xué)生克服“不知道怎樣與陌生人打交道”的心理問題,提高了他們的溝通技巧,增強(qiáng)了分析能力,更便于學(xué)生的成長和進(jìn)步。而在編程時(shí),需要項(xiàng)目負(fù)責(zé)人進(jìn)行合理分工,責(zé)任明確。這樣的實(shí)踐組織模式,既能培養(yǎng)學(xué)生的團(tuán)隊(duì)合作精神,又能鍛煉他們的獨(dú)立解決問題的能力,能夠起到事半功倍的作用。
圖2 軟件工程實(shí)踐教學(xué)方案結(jié)構(gòu)
Fig.2 Software engineering practice teaching
scheme structure
3.3 實(shí)施步驟endprint
軟件的生命周期各階段被劃分成問題定義、可行性研究、需求分析、系統(tǒng)設(shè)計(jì)、編碼和單元測試、綜合測試和軟件維護(hù)階段,而在實(shí)驗(yàn)過程中,我們把部分階段進(jìn)行了簡化,具體詳見表1[8]。而且在整個(gè)生命周期中,并不是所有階段都適合在實(shí)驗(yàn)室進(jìn)行,有些任務(wù)工作不可避免地要在課后完成,如需求調(diào)研等。因此就將實(shí)踐上課時(shí)間進(jìn)行了調(diào)整,由原來的分散上課,調(diào)整成將16節(jié)實(shí)驗(yàn)課集中在一個(gè)月內(nèi)上。這樣既能保證前期學(xué)生們有足夠的時(shí)間進(jìn)行分析和設(shè)計(jì),也能促進(jìn)他們在后期進(jìn)行系統(tǒng)聯(lián)調(diào)。
4 《軟件工程》實(shí)踐教學(xué)改革效果(Reform effects
of the practice teaching of Software Engineering)
目前,《軟件工程》實(shí)踐教學(xué)改革已在山東英才學(xué)院信息工程學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)的學(xué)生中進(jìn)行了實(shí)施,教學(xué)效果有了明顯地改善。第一,學(xué)生的參與度很高,很有興趣。如開發(fā)“班主任管理系統(tǒng)”小組,在需求分析階段大家暢所欲言,積極踴躍,本來計(jì)劃只有一人進(jìn)行講解,結(jié)果該組有三人上臺表達(dá)了自己的意見。第二,實(shí)踐教學(xué)推動了理論知識的學(xué)習(xí)。在開發(fā)系統(tǒng)過程中,難免會遇到問題,學(xué)生通過各種途徑來獲取知識,如查找書籍,請教老師和同學(xué),從網(wǎng)絡(luò)中尋找答案,因此學(xué)生主動學(xué)習(xí)能力得到大大提高。第三,學(xué)生的綜合能力明顯增強(qiáng)。學(xué)生的管理能力(尤其是項(xiàng)目負(fù)責(zé)人)、團(tuán)隊(duì)合作能力、交流溝通能力和獨(dú)立解決問題能力都得到了明顯提高。雖然學(xué)生們所做的系統(tǒng)并不那么完善,但這并不影響他們的成長進(jìn)步,而且很重要的一點(diǎn)是學(xué)生們體驗(yàn)到了軟件開發(fā)的整個(gè)過程,感受到了來自團(tuán)隊(duì)合作的魅力,這才是軟件工程實(shí)踐教學(xué)的真正意義。
5 結(jié)論(Conclusion)
從《軟件工程》實(shí)踐教學(xué)改革的效果看,我們?nèi)〉昧艘欢ǖ某煽儯瑫r(shí)也得到了學(xué)生們的肯定。以后隨著軟件工程實(shí)踐教學(xué)模式的日趨完善,學(xué)生們的各項(xiàng)能力必將得到持續(xù)穩(wěn)定的提高。
參考文獻(xiàn)(References)
[1] 張海藩,牟永敏.軟件工程導(dǎo)論(第6版)[M].北京:清華大學(xué)出版社,2015:1-14.
[2] 張美娜,遲呈英.《軟件工程》實(shí)驗(yàn)教學(xué)改革與實(shí)踐研究[J].教育教學(xué)論壇,2013(37):25-27.
[3] 馬燕,張根耀,王文發(fā).軟件工程實(shí)驗(yàn)教學(xué)模式改革與實(shí)踐研究[J].教育與職業(yè),2006(532):149-150.
[4] 賈經(jīng)冬,林廣艷,譚火彬.面向市場需要的軟件工程實(shí)踐教學(xué)改革——以北航軟件學(xué)院為例[J].北京航空航天大學(xué)學(xué)報(bào)(社會科學(xué)版),2014, 27(2):108-112.
[5] 鄧曉軍,李長云,王志兵,等.基于項(xiàng)目驅(qū)動的軟件工程專業(yè)實(shí)踐教學(xué)改革[J].湖南工業(yè)大學(xué)學(xué)報(bào),2013,27(4):99-102.
[6] 陳昊,明仲,彭小剛.軟件工程課程群實(shí)驗(yàn)教學(xué)改革探討[J].實(shí)驗(yàn)科學(xué)與技術(shù),2011,9(4):94-96.
[7]王長波,董軍.教學(xué)科研實(shí)踐一體化,知識能力素質(zhì)齊增長——軟件工程專業(yè)實(shí)踐創(chuàng)新教學(xué)改革探索[J].計(jì)算機(jī)教育,2010,(7):9-11.
[8] 金孟霞.創(chuàng)建《軟件工程》實(shí)踐教學(xué)改革新模式[J].海南廣播電視大學(xué)學(xué)報(bào),2008(31):57-58.
作者簡介:
任小娟(1976-),女,碩士,副教授.研究領(lǐng)域:軟件工程,數(shù)據(jù)挖掘.endprint