王麗芳
文章編號:1672-5913(2009)10-0026-02
摘要:本文結合實際教學的體會,對“軟件工程”教學過程中存在的教材內容更新慢、教學實踐薄弱、學生缺乏知識積累等問題進行了分析,提出了從更新教學內容、加強教學實踐、調整課程設置、激發學生學習興趣等方面進行改進的建議。
關鍵詞:軟件工程;教學實踐;教學改革
中圖分類號:G642
文獻標識碼:A
1引言
“軟件工程”是計算機專業的一門必修課,在計算機專業占據很重的分量。但基于軟件工程自身的抽象性與應用性都很強的特點,在教與學的雙向過程中存在不少問題,致使教學效果差強人意。如何提高“軟件工程”的教學水平和質量,是很多國內外學者廣泛探討的話題。本文從“軟件工程”教學中存在的問題出發,在教學內容的更新、教學方法與手段改進、加強實踐環節、激發學生的學習興趣等方面提出了一些具體的建議。
2 “軟件工程”在教學中存在的問題
(1) 教材內容更新慢
“軟件工程”作為一門迅速發展的新興學科,新的技術、方法和工具不斷涌現,而教材內容的更新卻遠遠跟不上這種發展,這是一個不爭的事實。如何保持教材內容的先進性與發展性是當前“軟件工程”課程亟待解決的問題。
(2) 流行技術與學生知識積累之間存在矛盾
現代軟件工程內容豐富,基于UML的面向對象建模技術、以新型技術支持的軟件度量方法、測試方法、Rational Rose工具、RSA等開發工具。在軟件管理方面,CMM、配件配置管理以及軟件過程管理等。這都是些實用性很強的知識,但學生接受起來比較困難。并且在實際教學過程當中,有足夠的課時全部講到。怎樣尋求一種行之有效的方法來解決學生的知識積累與目前計算機技術發展之間的矛盾一直是困擾教、學雙方的難題。
(3) 教學實踐環節存在難度
在教學中,如果只是單純的進行枯燥模糊的課堂教學,而學生沒有親身開發體驗,學生僅憑課堂和書本得來的知識理解軟件工程很難,以至于學完之后覺得用處不大。要讓學生相信和理解軟件工程對軟件開發的重要性,就是在學習期間完成一個中型左右的軟件開發。但這種方法又相對復雜耗時,加上這門課一般在大三下學期以后開設,時間上來不及,并不適合初次接觸軟件工程的學生的教學實踐。
(4) 教師的項目開發經驗不足
講好這門課對授課教師來說有一定的難度。它要求教師具備一定的軟件開發經驗,了解軟件項目的管理和工程背景,這樣才能在講授時靈活地將理論和實踐相結合,學生才能直觀地感覺到該門課程的重要性。但是,很多院校的教師由于時間和環境的限制,自身從事軟件項目開發經驗不足,從而在教學中很難做到游刃有余,這就對教師提出了更高的要求。
3 “軟件工程”教學改革的建議
3.1更新教學內容
“軟件工程”教學改革的首要任務是對課程內容設置的改革。軟件工程技術在高速發展,講授的內容同樣應該與時俱進,不要拘泥于教材的限制,主張在“軟件工程”課堂教學內容和實踐環節中強調面向對象方法,適當壓縮結構化開發方法的教學時間,以此留出時間來介紹包括面向對象方法在內的一些新技術和方法,使學生盡快熟悉和掌握集成化CASE環境、軟件重用及Java與網絡環境下的軟件開發技術等。對那些既無實用價值也無發展前景的傳統技術盡量少講。同時要保持教學內容對先進技術的跟進,介紹一些目前已經推出或較成熟的新方法,如基于組件的方法、面向Agent方法、敏捷軟件方法、凈室軟件方法等,以便開拓學生的視野和培養學生的創新意識與軟件開發能力。
3.2 “軟件工程”與項目相結合,加強實踐環節
對于“軟件工程”的教學,實踐環節顯得尤為重要。在教學中,盡量利用一切可利用的條件來加強實踐環節的實施。首先,軟件工程教學應加強學生的分析與設計能力。在講解軟件工程理論知識的同時,教師適當地找一個實際的小項目,要求每個學生從項目的可行性分析、需求分析、總體設計、詳細設計、數據庫設計等方面進行分析與設計,并作為一次作業打印上交。通過作業,加強學生對所學理論的掌握,并初步具有對真實系統的分析與設計能力;其次,將案例教學引用到軟件工程的課堂教學中。案例教學以史為鑒,吸取他人成功的經驗或失敗的教訓,讓學生置身于模擬的真實環境中,扮演不同的角色,身臨其境,從一個真正“工程師”的角度考慮問題,學習如何應用知識解決問題。從而培養了學生獨立思考和解決問題的能力。最后,要強化課程設計和畢業設計,并且要努力做到請進來,走出去。課程設計時將學生分成若干個小組,每組一個題目,小組成員按照軟件項目開發各階段進行分工合作,這樣來鍛煉他們的團隊協作精神和相互溝通能力;畢業設計時應結合教師課題或市場需要設置實用性的題目,要求一人一題并按工程化的方法進行實現,這樣可充分鍛煉學生工程設計和實施的能力。請進來可邀請有實際經驗的資深軟件工程師、專家或邀請本校畢業并從事軟件開發的學生回來以切身體驗作講座;走出去是鼓勵學生到社會上的軟件公司實習、兼職,這樣可使學生切實感受到該課程的重要性,盡早接觸軟件工程的實際問題,了解軟件開發的全過程,提高實踐能力,增強對軟件工程技術、方法和原理的理解。
3.3調整課程設置,重視學生知識的積累
解決流行技術與學生的知識積累之間的矛盾,可從調整課程設置入手, 要理清課程的背景及后延。“背景”即本課程的前驅課程,在該課程開設之前必須要學習的幾門基礎課,沒有這些課軟件工程的教學也就形同虛設。“軟件工程”的前驅課程有:面向過程的編程語言、初步的面向對象技術、略見規模的程序開發、UML建模語言等,通過對這些課程的學習,讓學生發現開發程序中潛在的一些問題,學生自己帶著問題找到了學習的切入點,再引入本門課程學習,效果就大不一樣。“軟件工程”開設一般設在大三下學期、大四上學期這個時間段,在學生了解了軟件工程的思路之后,開設一定的后繼課程也是必要的,比如,軟件設計模式、軟件項目管理、系統分析設計教程等交叉學科,這樣可以更好地擴充學生知識積累的程度,為學生畢業后從事實際的軟件開發工作,做很好的知識鋪墊。
3.4端正學生的學習態度,激發學生的學習興趣
經多次與學生交談發現,學生很容易進入了一個怪圈:學了不少專業課,就是不知道它到底有什么用,專業課之間有什么關聯,為什么開設這門課,一頭霧水。導致了一種學習的畸形狀態,覺得學的東西沒有用,自己也不知道該學什么才有用。畢業的時候,發現最無用的不是課,而是自己。所以,授課教師以及輔導員在學生的學習中要積極和他們交流,讓學生盡快地找到對本專業的興趣點,以點為面,展開大學的知識構建。學生一旦知道了自己想做什么,什么是自己的興趣,學習起來就有目的性,就會收到較好的學習效果。同時要引導學生發現問題,提高學生自學的能力。教師不可能是個百寶箱,什么都通,什么都會,這就要求學生能夠像軟件工程所倡導的理念一樣,階段性、漸近式地自我學習、自我培養。這樣,既提高了學生的學習能力,又把軟件工程真正地落到了實處。
3.5創造條件,提高教師的業務水平
在整個教學過程中,教師扮演很重要的角色。教師的素質對于教育這項工程至關重要。學校應在人力物力財力允許的情況下,多給教師外出充電的機會,接觸新型的技術與理念。特別對于計算機這個日新月異的專業,經常地選派教師到大公司去實踐是很好的學習方式。教師把充電掌握的新技術、新理念及時帶到課堂,能進一步體現課堂知識的實用性和先進性。
4實施效果
以上的諸多建議已在我校的計算機本科專業教學中進行了一系列的教學實踐,在教學過程中,自編教材,收集了二十多個完整的工程案例并將學生分成了若干個開發小組,與教師一起分別參與了軟件項目《教務管理系統》、《圖書管理系統》《學籍管理系統》等的開發;實驗期間,分批組織學生到軟件企業實習,了解企業的實際操作與人才需求。從2005年至今開展了15個班級600多名學生的軟件工程教學,學生的滿意率達到了91%。具體調查數據見下表1,調查對象為從2006年開始的計算機專業大四的學生。

從調查的數據來看,教學改革在剛實施階段,滿意度較后期要低,隨著改革的進展,各方面措施的逐步改進,教學效果逐年提高。但部分學生對實習滿意度不高,主要是教師與企業協調方面存在一些問題,需在以后的工作中進一步加強。
5結論
通過近三年多的努力,采用自編教材的形式,使本課程在內容上緊跟時代的最新技術;課堂教學與工程案例相結合,提高了學生的學習興趣;通過參與實際項目的開發,產學結合,使學生的編程能力、分析解決問題的能力、知識的綜合運用能力,團隊合作溝通能力得到了很大的提高。已畢業的學生受到了用人單位的一致好評,普遍認為學生的綜合素質高、工程能力強,所具備的知識結構基本適合業界需求。
參考文獻:
[1]Roger S. Software Engineering: A practitioners Approach[M]. 5th ed. 梅宏,譯. 北京:機械工業出版社,2002.
[2]A project of the IEEE Computer Society Professional Practices Committee. Guide to the Software Engineering Body of Knowledge[EB/OL]. http://www. computer. org/certification/Swebok 2008.pdf.
[3]IEEE Computer Society. SWEBOK[S]. Angela Burgess,2007.
[4] 沈備軍,李超.反思和抽象在“軟件工程中人的因素”課程學習中的應用[J]. 計算機教育,2006(1):52-56.
Research on Teaching Reformation of Software Engineering
WANG Li-fang
(Institute of Electronic and Computer Science Technology, North University of CHINA, Taiyuan 030051, China)
Abstract:Based on many years teaching practice and experience of the author, this paper analyses the existing problems in teaching such as out-of-day updating textbooks, weak teaching practices, students lack knowledge accumulation and gives some ideas about teaching reformation on software engineering: renewing teaching contents, strengthening teaching practices, adjusting curriculum arrangements, stimulating students interests in learning, etc.
Key words: software engineering; teaching practice; teaching reform