

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