一、目前教學存在的問題
1、教學內容與軟件行業發展之間存在矛盾
軟件工程作為一門迅速發展的新興學科,新的技術、方法和工具不斷涌現,涉及的眾多的領域與學科,而目前市場上的教材內容的更新普遍跟不上這種發展,所以存在如何保持教材內容的先進性與發展性的問題。現代軟件工程內容豐富,基于UML的面向對象建模技術、面向服務、面向方向編程方法、測試方法、RationalRose工具、RSA等開發工具、CMM、配件配置管理以及軟件過程管理等。這些不斷發展的知識理論性與實踐性都很強,但受到學生知識結構和實踐經驗的限制并不容易被接受,同時也不可能在軟件工程這一門課中完全講授,從而影響教學效果,以致軟件行業用人單位普遍反映計算機專業畢業生的軟件工程素質與工作預期相差較遠。
2、教學安排方面存在的問題
軟件工程與其他計算機課程,如高級程序設計語言、數據結構、數據庫、計算機網絡以及操作系統等課程都是相互作用和影響的。目前軟件工程課程與其他課程銜接普遍不是很理想。軟件工程的學習應有一些先修課程如高級程序設計語言、數據結構;還應具備操作系統、數據庫、計算機網絡的一些知識。哪些課程應先修,哪些課程可以并行,如何與軟件工程課程銜接等,都是課程安排時需要考慮的問題。在教學時間與跨度上,學生接觸這門課的時間普遍不夠,軟件工程課時一般不多,大都只設置一個學期,而且沒有后繼課程的進一步加強,不容易滿足軟件工程對實踐的長期要求。
3、學生對軟件工程的學習興趣普遍較低
軟件工程不像程序設計課程那樣容易帶給學生的成就感,激發學生的興趣和熱情。同時由于積累的知識所限,學生很難將軟件工程的抽象理論和實際應用聯系起來,因此較難對這門課程產生興趣,容易產生枯燥乏味的感覺,從而失去對這門課程的學習興趣。
4、實踐環節比較薄弱
在課程的教學中,普遍較少給學生提供實驗尤其是項目實踐的體驗,主要原因是課程的總課時不充足,缺乏相應的軟件工程實驗軟件,學生上機實驗比較困難;有些實踐內容顯得太復雜太耗時,由于實驗條件受限,大部分老師僅給出項目各階段文檔模板,要求學生按規格編寫相應文檔,但往往沒有企業項目開發中的嚴格評審機制,學生很難建立標準化、規范化思想。學生在實驗教學中開發的系統僅僅作為作業提交給教師,教師大概的檢查代碼,而沒有嚴格的代碼走讀過程,也未交付用戶使用,沒有真正意義上的驗收測試,維護。學生無法發現各階段中存在的問題。無法使學生達到真正項目實踐鍛煉的效果。
5、教師的業務素質有待提高
這門課對授課教師的業務有較高的要求。首先教師對軟件工程本身要有深刻的理解,有一定的軟件開發經驗,最好有一定的項目和工程背景,這樣教師能從自己的開發實踐中理解軟件工程的基本原理與方法,才能在講授時靈活地將理論和實踐相結合,學生才能直觀地感覺到該門課程的重要性。但是,很多教師由于時間和環境的限制,自身從事軟件項目開發經驗不足,從而在教學中很難做到游刃有余。
二、軟件工程課程教學模式探討和創新
1、以就業為導向,利用校企合作,加強軟件工程課程的實用性
學校、企業、學生三方如同三個同步的、契合的齒輪,圍繞著職業素養的提升這一共同目標,良性運轉、螺旋式上升。通過校企合作,學生可以逐步適應崗位群、終身發展,實現從學生到職業人的轉換;對于企業而言,校企合作不僅幫助企業實現了培訓企業員工、滿足企業用人需求等淺層目標,也傳播了企業文化、深層次地挖掘了企業的發展潛力。我們學院積極與本地的軟件企業聯合,整合資源,根據企業與專業的特點制定相應的教學計劃進行人才培養,配合實踐平臺使學生積累一定的工作經驗,緊隨市場動向,提高就業率。實踐中,我們根據合作企業的具體軟件工程要求,把企業的實際項目引入到課程實踐中,讓學生參與企業項目組,部分學生畢業后直接進入合作企業工作。另外,結合師范院校女生比例較高的情況,側重加強界面設計開發、軟件測試、配置管理方面內容的教學,有效的提高了軟件工程課程的實用性。
2、調整課程安排與教學內容安排
根據軟件工程的特點,我們在課程體系安排上做了一些調整,如加強一些前驅的課程教學,引入一些新技術的專業選修課,根據實際情況安排課程設計、專業實踐做為軟件工程的后繼課程。同時,我們還與合作企業進行課程體系設計,如引入系統集成與測試、手機開發基礎等前驅實用課程,使學生積累了基礎知識,便參與到企業的實際項目組。在教材選擇上,軟件工程學科發展快,包含內容多,選擇教材既要保證教材內容的新穎、全面,還要考慮到內容是否能與實際工作緊密結合,對實踐能否起到重要的指導作用。因此,我們選擇機械工業出版社出版的《軟件工程原書第9版》(Ian Sommerville)。它多次再版的事實說明了該書受歡迎的程度。其內容豐富詳實,涵蓋了軟件開發過程各個階段的內容,而且包含了一些軟件工程的新技術。我們在授課過程中結合課程的實際課時,對教材內容進行適當節選,如軟件過程、項目管理、軟件需求、系統設計、分布式系統體系結構設計、快速軟件開發、軟件測試、配置管理、面向服務、面向方面、面向安全方法等,這樣可以給學生本學科一個概貌,對于感興趣的學生也可以得到更多進一步學習的機會。
3、激發學生學習興趣和熱情
培養學生對軟件工程的學習興趣與熱情是軟件工程教學需要解決的一個難題。與學生的交流發現,師范類院校的學生普遍對軟件興趣不大,也不知道學了課程后有什么用。因此,我們以就業結合個人興趣為導向,積極培養學生興趣,讓他們感覺到學好這門課程與就業關系密切,是自己從業的基礎,這樣學生學習起來就有目的性,收到較好的學習效果。此外,在課堂氣氛方面,鼓勵學生多參與,在講解時應盡量營造探究氣氛,增強交流互動,適當使用案例教學法,以激勵學生主動參與學習活動。
4、加強實踐環節
課程初期,采用項目驅動法,采取小組開發形式進行實踐教學。學生按教師要求組成6~8人的項目小組,選擇來源于企業的實際項目題目,然后每位學生擔當實際項目開發過程中的不同角色,進行分工協作,參與項目管理和開發,從不同角度全面把握和體會整個軟件工程項目開發和管理的基本思想,在一個學期內共同完成實驗項目。同時教師加強在實驗過程中的指導作用,要求各項目小組分階段提交討論記錄和項目工程要求的里程碑成果。鼓勵學生積極建設校園創新創業基地。校園創新創業基地模擬軟件公司開發管理模式,是學生課外科技、課外實踐、開發訓練、社會服務活動的基地,為學生在校期間提供了良好的就業實戰平臺。學生通過基地實際的項目,將所學的理論知識應用到其中,做到學以致用。充分發揮校外實習基地作用。我校與本地的軟件企業聯合,開展校外實習基地,在課程結束后進入軟件工程校外實習環節,讓學生融入到真實的開發環境中去。經過一個學期的軟件工程理論基礎和校內創新實驗室的經驗,我們根據實際情況,有選擇地讓學生進入企業,跟隨項目組一起,參與到真實的項目中去。校外實習過程中,要求學生認真記錄項目過程開展的各項工作,并積極參與到各階段的工作中去。根據實踐情況,我們還將項目實習與畢業論文的設計結合起來,讓參加企業實際項目的學生可以用參加的項目做為畢業論文的主要工作,解決了學生畢業設計與實習的矛盾,學生積極性高,也取得了較好實踐效果。
5、加強師資力量
為了提高軟件工程教學效果,我們在計算機軟件工程教學的教師隊伍建設中,積極引進在企業具有軟件開發和工程實踐經驗的高學歷工程師作為骨干教師,選派年青教師到大型軟件公司去實踐與進修,這些教師把掌握的新技術、新理念及時帶到課堂,進一步體現課堂知識的實用性和先進性。
三、結語
筆者探討以就業為導向、項目驅動、創新實習相結合的“軟件工程”教學模式,并在近兩年教學中進行了實踐,取得了一定的教學效果,提高了學生對本門課程的學習興趣,學生的計算機應用水平與實踐能力取得了長足的進步,鍛煉和培養了系統分析能力、設計能力、編程能力、測試和維護能力、團隊協作能力和文檔書寫能力,提高了學生的實踐動手能力和綜合素質,學生適應市場能力顯著增強,就業率得到提升。如何結合軟件行業的現狀、特點,采取相應的教學手法,提高軟件工程的學生學習體驗,提高教學質量,值得我們不斷探討和研究。
作者:藍貞雄 單位:廣西師范學院計算機與信息工程學院