[摘要]《軟件工程》是計算機專業的一門重要的專業必修課,是指導軟件開發與維護的一門綜合性課程。結合實際教學的體會,根據軟件工程教學的現狀,分析教學中存在的問題,對教學方法的改進和教學實踐等方面進行論述,并提出一些建議。
[關鍵詞]軟件工程 教學 改革
中圖分類號:G64文獻標識碼:A文章編號:1671-7597(2009)0910177-01
一、引言
軟件工程是一門理論性和實踐性非常強的課程,是指導軟件開發和維護的一門綜合性課程。通過本課程的學習,使學生了解如何將工程方法運用于軟件開發和維護中,為從事軟件開發和維護提供方法上的指導。對該課程的掌握程度將直接影響學生畢業后的軟件開發能力,所以高等院校對軟件工程的教學非常重視。然而在實際教學中,這門課程的教學效果并不令人滿意。理論講授太多,實際的軟件系統示例不足,學生覺得課程枯燥乏味,很難達到教學目的。本文首先分析了教學中存在的問題,然后提出了一些改進的措施。
二、軟件工程教學中存在的問題
(一)教材內容老化。軟件工程發展迅速,新的技術、方法和工具不斷涌現,而教材內容的更新卻遠遠跟不上這種發展。目前高等院校使用教材有的還停留在對面向過程的結構化方法的詳細論述上,有的連項目組織、軟件成熟度、軟件構架、項目風險等十分重要的內容都未給予足夠的論述。這些很大程度上制約了課程的教學效果。因此,教材內容如何保持與先進技術的同步更新,這是有待解決的問題。
(二)教學方法單一,難以激發學生興趣。軟件工程中基本概念、原理、方法較多,理論性較強,當前課程的教學主要采取將學生集中起來,以課堂講授為主,教學內容一般是重理論而輕實踐,學生缺乏感性認識。學生在接受抽象的理論和原則時,難以將抽象的理論和現實生活聯系起來,容易產生枯燥乏味的感覺,難以激發學生的學習興趣。
(三)缺乏實踐經驗。該課程要求老師在教學中要將理論與實踐相結合。很多高校的軟件工程課程在教學中雖然設置有實踐環節,但受到時間以及教學環境的限制,無法真正完成一個完整的項目。學生由于缺乏實踐的驗證,無法體會課堂上所學理論的實際意義,難以做到學以致用。
(四)教師隊伍自身水平有限。該課程要求授課教師必須具備一定的軟件開發經驗,在講授時靈活地將理論和實踐相結合,使學生直觀地感覺到課程的實際意義。但是,在很多高等院校中,教師的核心任務是教學,承擔的科學研究相對較少。教師自身從事軟件項目開發經驗不足,對于軟件工程理論、技術、方法的理解不足,因此很難將理論講的淺顯易懂。這就要求教師要不斷加強學習,提高自身的水平和能力。
三、教改方案
(一)選擇合適的教材。教材是教學內容的載體。軟件開發技術的發展日新月異,教材難免存在一定的滯后性。因此在選擇教材時,不僅要注重介紹經典的軟件工程原理方法,還應該考慮到當前流行的軟件工程特點、方法及發展方向,把目前實用的一些原理技術作為重點。目前國內適合軟件工程課程的教材不多,軟件工程書籍或者純粹闡述軟件工程理論方法,或者僅僅介紹具體的開發技術、開發語言、開發環境。根據國內軟件工程教材現狀,授課老師一方面在學校經濟條件允許基礎上引進國外優秀的原版軟件工程教材,采取英文教學。另一方面,可以收集一些軟件公司的成功案例和自身的科研成果自編教材。
(二)激發學生的興趣。提高學生的學習興趣,對教學效果的保障具有重要的意義。軟件工程包含了較多的理論內容,是一門理論聯系實際的綜合性課程。初學者往往感到學習內容雜、知識點多,重點內容不好把握。學生沒有實際開發軟件的經驗,看到軟件設計的題目往往有畏難情緒。因此,提高學生的學習興趣,消除畏難情緒,進而提高學生的學習積極性就顯得尤為重要。在具體教學過程中,可以在相應的理論部分引入軟件項目實例,例如在講述信息管理系統時,可以演示目前學生正在使用的選課系統;講述C2C系統原理時,可以列舉網絡淘寶系統等等。通過案例可以激發學生學習興趣,調動課堂氣氛。
(三)加強實踐環節。軟件工程是一門實踐性很強的課程,因此在教學中加強實踐環節,對提高教學效果非常重要。我們應該從如下幾個方面加強學生的實踐能力:
首先,應加強學生的分析與設計能力。在講解理論知識的同時,適當地找一個實際的小項目,要求學生以獨立或者合作的方式完成一個中型軟件項目的研發和測試工作,使學生經歷軟件工程開發全過程,掌握軟件開發中使用到的各種工具,初步具有對真實系統的分析與設計能力。其次,在實踐性教學環節中,可以采取循序漸進的方式向學生講授軟件開發的過程。在課前將選擇的項目案例劃分為幾個模塊,教師使用成熟的開發工具向學生演示其中幾個模塊的開發過程,接著讓學生自己動手實現類似的簡單模塊,讓學生置身于模擬的真實環境中,學習如何解決問題。從而培養了學生分析和解決問題的能力。最后,加強學校和企業的合作。邀請企業中有實際經驗的資深軟件工程師、專家以切身體驗作講座。通過企業和院校聯合培養的方式,鼓勵學生以實習的方式參與企業軟件的研發工作,這樣可使學生切實感受到該課程的重要性,盡早接觸軟件工程的實際問題,了解軟件開發的全過程,提高實踐能力,增強對軟件工程技術、方法和原理的理解。
(四)提高教師隊伍的素質。師資隊伍整體水平,決定了教學質量的高低。軟件工程的思想、方法、技術更新速度快,要求任課教師必須具有較高的獲取新知識的能力。學校應在條件允許的情況下,多給教師外出充電的機會,接觸新型的技術與理念。軟件工程本身是一門實踐性很強的課程,要求教師具有有大型系統分析能力以及實踐開發經驗。學校可以選派相關授課教師進入大型知名軟件公司參與軟件系統的研發,積累軟件設計和開發實際經驗,為日后的教學工作打下基礎和鋪墊。也可以邀請軟件研發領域的優秀軟件工程師、系統分析員擔任兼職教師。讓軟件工程師、系統分析員給學生講述他們的經驗和教訓,以此來拓展學生視野,開闊學生的知識面。
四、結束語
本文結合目前軟件工程教學的現狀,分析高等院校軟件工程課程中存在的不足。同時筆者結合教學的經驗和體會,提出了一些關于課程教學改革建議。教學中的問題是客觀存在的,課程改革本身就是一項復雜的工程,要做的事情還有很多。相信隨著各教學部門對軟件工程教學的關注和重視,隨著教學改革的深入開展,課程教學會越來越合理,培養的人才也能更好的滿足社會需求。
參考文獻:
[1]IEEE Computer Society.SWEBOK[S].Angela Burgess,2007.
[2]沈備軍、李超,反思和抽象在“軟件工程中人的因素”課程學習中的應用[J].計算機教育,2006(1):52-56.
[3]王竹云,軟件工程與課程實踐[J].計算機時代,2006.12.
[4]潘婭,軟件工程教學方法探討[M].西南科技大學高教研究,2006,02.
[5]張艷蘇,學院“軟件工程”教學改革探討[M].科技信息,2007,27.
作者簡介:
李建卓(1982-),男,助教,就職于寶雞文理學院計算機系。