舒新峰 陳莉君
摘要:本文針對社會對軟件開人員的知識結(jié)構(gòu)需求,給出了軟件工程教學內(nèi)容的設(shè)置原則,并提出了基于項目驅(qū)動的理論教學和實踐教學模式,最后給出了課程考核指標與依據(jù)。實踐結(jié)果表明新的教學體系可明顯提高學生的學習興趣與軟件開發(fā)能力,教學效果顯著。
關(guān)鍵詞:軟件工程;教學改革;教學實踐;項目驅(qū)動
中圖分類號:G642文獻標識碼:B文章編號:1672-5913(2009)04-0059-02
1引言
軟件工程作為計算機科學各專業(yè)的核心專業(yè)課,旨在培養(yǎng)學生綜合應用所學的各種基礎(chǔ)知識來解決實際問題,使學生具備一定的軟件開發(fā)、維護與項目管理的能力。軟件工程的教學成效對學生畢業(yè)后從事軟件開發(fā)和管理有著十分重要影響,然而我國軟件工程教學普遍存在以下問題:(1)教學計劃陳舊,課程內(nèi)容和社會需求脫節(jié),導致學生的知識結(jié)構(gòu)無法滿足軟件企業(yè)的需要;(2)教學偏重于理論講解,脫離了具體實例的授課模式使得軟件工程的基本原理、思想、方法和項目經(jīng)驗,成為空洞、枯燥、乏味的概念和教條,不容易學習和掌握,無法調(diào)動學生的學習興趣。(3)缺乏足夠的軟件工程實踐。學生對軟件工程原則和方法的理解只能局限于書本,難以深入體會和把握知識的精髓和本質(zhì),無法達到預期的教學目標。
傳統(tǒng)教學模式已不能適應軟件開發(fā)人才培養(yǎng)的需要。針對這種情況,我們對軟件工程課程進行了系統(tǒng)的教學改革,在緊跟社會需求安排教學內(nèi)容的同時,探索了基于項目驅(qū)動的理論教學與實踐教學模式。
2教學內(nèi)容設(shè)置
在軟件工程教學內(nèi)容設(shè)置上強調(diào)“新”。傳授軟件企業(yè)目前主流使用的開發(fā)技術(shù)、管理技術(shù)以及相關(guān)的CASE工具,使學生掌握的知識結(jié)構(gòu)與社會需求一致:
(1)緊跟軟件企業(yè)所使用的主流技術(shù),不斷更新授課內(nèi)容。面向?qū)ο筌浖_發(fā)方法已經(jīng)成為當前業(yè)界的主流,在介紹傳統(tǒng)的面向過程的開發(fā)技術(shù)的同時,重點對使用UML(統(tǒng)一建模語言)和UP(統(tǒng)一過程)進行面向?qū)ο蠓治觥⒃O(shè)計及開發(fā)做深入分析和講解。此外,還對面向構(gòu)件軟件工程、凈室軟件工程、形式化軟件工程、敏捷開發(fā)等新技術(shù)進行介紹。
(2)重視項目管理技術(shù)。中大型軟件開發(fā)是一項復雜的系統(tǒng)工程,離開了良好的組織與管理往往會導致開發(fā)的失敗。在授課中給學生傳輸軟件開發(fā)企業(yè)的管理流程和先進的管理方法和理念,實現(xiàn)學生從一個程序員上升到項目管理者的轉(zhuǎn)變。
(3)注重文檔編寫能力的培養(yǎng)。軟件工程一個重要的特點是規(guī)范化與文檔化。在軟件開發(fā)過程中需要撰寫大量的分析設(shè)計文檔來對軟件的開發(fā)過程與質(zhì)量進行有效的控制與管理。對于理工科學生來說,往往文檔編寫能力較差,因此在教學中應要求學生高質(zhì)量的完成相應開發(fā)文檔的編寫,以提高其文檔撰寫能力和水平。
(4)傳授優(yōu)秀的CASE工具。計算機輔助軟件工程(CASE)工具為軟件開發(fā)提供了自動化或半自動化的支持,極大的提高了軟件開發(fā)、維護、管理的效率和質(zhì)量。學生應熟練掌握常用優(yōu)秀CASE工具的使用,如項目管理工具Project、UML分析建模工具Rational Rose、數(shù)據(jù)庫建模工具Power Designer、版本控制工具VSS、CVS,測試工具WinRurmer、LoadRunner、TestDirector、JUnit等。
3教學過程組織
在教學過程的組織上,強調(diào)理論與實踐相結(jié)合。采用基于項目驅(qū)動的教學模式,以一個典型的軟件項目開發(fā)實例作為授課主線,在軟件工程理論指導下,一步步完成系統(tǒng)的分析、設(shè)計、開發(fā)、測試及維護,并將各開發(fā)階段用到的軟件工程原理、技術(shù)、方法和CASE工具等知識融合到項目開發(fā)中,極大降低了課程內(nèi)容的抽象性和難度,提高了學生的學習興趣。在開發(fā)案例的選擇上,應在學生比較熟悉的領(lǐng)域里選擇一個合適的項目,如飯卡管理系統(tǒng)、網(wǎng)絡(luò)自動售貨機系統(tǒng)、門禁系統(tǒng)等。此類軟件業(yè)務功能相對簡單,卻具備了信息管理系統(tǒng)、實時監(jiān)控系統(tǒng)及分布式系統(tǒng)等常用軟件的特點,一方面便于學生整體把握待開發(fā)系統(tǒng),另一方面通過案例學習可以掌握常見軟件分析設(shè)計方法。另外要求學生在課程的學習中,選擇一個合適的軟件項目進行同步開發(fā),將學習到的軟件工程知識應用到實際項目開發(fā)中,以提高學生分析、設(shè)計和開發(fā)能力。
在授課方式上,充分利用各種現(xiàn)代化的教學手段:(1)使用多媒體教學課件,利用多媒體教學圖文并茂、信息量大的優(yōu)點,增強了教學的質(zhì)量和效果;(2)利用多媒體教學平臺直接給學生展示開發(fā)工具和CASE工具使用方法,以及教學案例的分析、設(shè)計和開發(fā)過程;(3)建立“軟件工程教學網(wǎng)站”,提供教學大綱、電子教案、業(yè)界動態(tài)、新技術(shù)介紹和課程實驗所需要的各種資源,并為廣大師生提供了方便快捷的網(wǎng)上交互式學習平臺,最大限度滿足學生自我學習、主動學習的需要。
4實驗環(huán)節(jié)安排
為了進一步提高軟件工程的教學效果,在實驗環(huán)節(jié)的安排上和組織上,盡可能的給學生提供一個近似于軟件開發(fā)公司的開發(fā)環(huán)境,將通常學生只有在畢業(yè)后參與實際項目開發(fā)中才能體驗到的軟件開發(fā)過程與軟件工程管理知識提前到在校期間的軟件工程課程實踐中。
在實驗環(huán)境的搭建上,安裝了當前軟件開發(fā)企業(yè)所使用的主流軟件開發(fā)平臺和CASE工具。在實驗環(huán)節(jié)的安排和組織上,強調(diào)模擬公司化管理。要求4~6名同學成立一個開發(fā)小組來模擬軟件公司(可以有自己個性化的公司名稱),并選擇一個合適的應用項目,按照軟件企業(yè)的正規(guī)開發(fā)流程組織實施,以開發(fā)實際可使用的軟件作為目標,結(jié)合課程的學習進行同步開發(fā)。在整個項目的開發(fā)中,授課教師擔任項目總監(jiān),以控制項目的進度和質(zhì)量;小組成員可根據(jù)個人的能力特長扮演項目經(jīng)理、配置管理員、數(shù)據(jù)庫管理員、軟件工程師、測試工程師等,以熟悉和掌握軟件項目開發(fā)團隊中的各角色的任務、作用、軟件開發(fā)過程、規(guī)范和執(zhí)行方法。在鍛煉軟件設(shè)計和開發(fā)技能的同時,讓學生親身體驗到軟件開發(fā)企業(yè)的開發(fā)氛圍,并且培養(yǎng)學生多人之間的溝通能力和團隊協(xié)作精神。
授課教師參考國家標準制定詳細可行的《軟件開發(fā)規(guī)范》,規(guī)定項目開發(fā)流程,各開發(fā)階段的任務及標志性成果,遵循的規(guī)范和質(zhì)量標準等。學生嚴格按照規(guī)范的要求,完成整個項目的分析、設(shè)計、實現(xiàn)及測試,并撰寫相應的文檔。指導教師對學生的開發(fā)工作進行必要的指導,并對學生提交的文檔、報告及程序進行質(zhì)量審核與交流,對檢查中發(fā)現(xiàn)的問題和不足,要求進行改進和完善后方可進入下一個階段。項目完成后組織答辯,讓組長對他們的項目作概要陳述,并讓每個小組成員說明在整個項目開發(fā)過程中所完成的工作,教師和其他同學可針對其負責的部分進行提問,這樣可以幫助同學發(fā)現(xiàn)工作上的不足和潛在的問題,有助于提高對知識的理解與掌握。
5成績考核
軟件工程作為實踐性很強的工程學科,考查的重點不應是純粹的理論,而是學生能否真正具備運用所學知識進行軟件開發(fā)的能力,因此必須加大實踐能力考核的力度。我們的評定方案是平時與卷面考試各占總成績的50%。平時成績的以課內(nèi)實驗的成績?yōu)橹?,評定依據(jù)是各軟件開發(fā)小組提交的文檔和最終的開發(fā)好的軟件,并參考每個小組成員在項目中的貢獻。在卷面考試里,除了考查一些軟件工程的重要原理和概念外,重點檢測學生的軟件分析與設(shè)計能力,綜合設(shè)計題目占到試卷分值的50%以上。目的是以考核手段為導向,促進學生對軟件工程知識的學習和軟件開發(fā)能力的提升。
6結(jié)束語
全新的軟件工程教學體系不僅極大的激發(fā)了學生學習的積極性、主動性和創(chuàng)新性,同時提前為學生進行了系統(tǒng)的軟件開發(fā)培訓,使他們的知識結(jié)構(gòu)能夠適應軟件行業(yè)發(fā)展的需要,實現(xiàn)與社會的無縫連接。從近幾年的畢業(yè)生反饋信息看,經(jīng)過軟件工程系統(tǒng)的學習與訓練后,他們的軟件開發(fā)能力與素質(zhì)有了明顯的提高,增強了就業(yè)競爭力,特別是參加工作后能夠很快勝任企業(yè)分配的開發(fā)工作,為日后的事業(yè)發(fā)展打下了良好的基礎(chǔ)。