摘要:本文根據(jù)國外軟件工程本科教學的現(xiàn)狀,指出我國軟件工程本科教育改革的必要性,同時提出了軟件工程教育改革的措施。
關(guān)鍵詞:軟件工程;本科教學;教育模式
中圖分類號:G642 文獻標識碼:A
隨著計算機在各行各業(yè)的廣泛普及,計算機軟件人才的需求不斷擴大。盡管每年都有大量的軟件方面的本科畢業(yè)生涌入社會,但真正掌握軟件技能、方法的人才卻是極度短缺。其主要原因是軟件工程概念如何在實際項目中應用并沒有在軟件工程本科教學過程中體現(xiàn)出來。這也是當前高校軟件工程教學亟待改革的一個重要方面。
1國外軟件工程本科教學
國外對軟件工程本科教學的研究是多方面的。有一些學校開展實驗室式教學,且整個教學過程是以面向?qū)ο蠓椒ǔ霭l(fā),使學生所獲得的經(jīng)驗迎合了社會的需求。通常,一個學生所具有的軟件開發(fā)項目經(jīng)驗是來自于在實際的軟件開發(fā)過程中的角色參與。為了使學生畢業(yè)后立刻帶入到公司的開發(fā)人員隊伍中,學生不僅僅要學會軟件研發(fā)的生命周期、軟件工程方法、還要參與到軟件項目組中進行實際的訓練?,F(xiàn)以華盛頓州的喬治敦大學計算機科學學院為例,來看看國外的軟件工程本科教學的改革是如何進行的。
1.1軟件工程本科教學改革概況
喬治敦大學的計算機科學學院將軟件工程本科教學分為兩個學期進行。第一學期的軟件工程教學內(nèi)容是軟件設(shè)計基礎(chǔ),這一階段的軟件工程教學被稱為軟件工程I(software engineering I)。第二學期的軟件工程教學內(nèi)容通過實際或虛擬項目讓學生以項目組的方式參與其開發(fā)過程,在該過程中理解并應用軟件工程概念。這一階段的軟件工程教學被稱為軟件工程II(software engineering II)。
1.2軟件工程教學的第一階段
在軟件工程的第一教學階段中,其主要講授的課程內(nèi)容是貼近軟件設(shè)計的。在課程的開始主要介紹了軟件工程的發(fā)展歷史及簡介,然后講解面向?qū)ο笤O(shè)計、需求分析、用例圖(use case)、對象模型技術(shù)、Rational統(tǒng)一過程、UML技術(shù)、面向?qū)ο笤O(shè)計模式等一系列內(nèi)容。在此期間,教師將下一階段學生所要完成的項目內(nèi)容介紹給學生,以便于學生有針對性的學習課程內(nèi)容。
從其教學內(nèi)容可以看出,國外的軟件工程教學內(nèi)容是緊跟社會需求的,是以面向?qū)ο蟮脑O(shè)計與實現(xiàn)為其主要教學內(nèi)容,而不是以面向過程的設(shè)計方法為主。此外如UML技術(shù),Rational統(tǒng)一過程等教學內(nèi)容都是學生在實踐過程中要用到的內(nèi)容,可見教學是充分為需求服務的。
1.3軟件工程教學的第二階段
該階段的教學主要是讓學生通過實際的發(fā)過程獲取真實的經(jīng)驗。這一階段的課程安排在16個教學周內(nèi)完成,每個教學周安排4學時該課程。前四周的教學內(nèi)容是當前軟件體系結(jié)構(gòu)的介紹及對軟件設(shè)計方法的回顧,這部分教學內(nèi)容是對軟件工程第一階段學習內(nèi)容的復習。接下來要將學生劃分為分析小組、軟件設(shè)計小組、軟件開發(fā)小組及數(shù)據(jù)庫小組。每一個小組都有一名組長,以負責該小組工作的安排,并要以甘特圖的方式向教師匯報小組的工作進度。小組中的每個成員也要有固定的角色,以完成相應的工作任務。教師在此期間主要扮演用戶,以便于及時向?qū)W生提供需求,讓學生建立正確的問題定義及需求分析,以便于進一步的分析與設(shè)計。
在基于關(guān)鍵路徑的軟件開發(fā)生命周期過程中,每個小組的行為都會影響到項目的開發(fā)進度,影響到里程碑的建立,因此要求學生一定要在規(guī)定的人員及時間內(nèi)完成階段性任務,要讓學生意識到關(guān)鍵路徑上每項任務的重要性。由于按軟件工程理論來設(shè)計軟件時,各個階段所需人員不同,而且每個角色的工作任務量在研發(fā)過程中也會發(fā)生變化。例如項目的需求確定后,即進入設(shè)計階段,需求分析角色的工作量立刻減少。為了使各角色的工作量平衡,對每個角色在其主要工作分階段從事其它輔助工作,以使學生在整個的軟件設(shè)計過程中一直處于工作狀態(tài),使學生了解各個階段的關(guān)聯(lián)及前一階段研究成果對后一階段工作的重要性。
2我國軟件工程教育
在我國,高校計算機本科教育的目標定位于培養(yǎng)綜合型、應用型人才,為社會提供訓練有素的專業(yè)工程師。軟件工程是計算機本科教育中惟一涉及工程化管理和技術(shù)的專業(yè)必修課。但許多院校對該課程的教學是重理論而輕實踐的。學生因缺乏切身的體驗而感到理論抽象,難以理解,且動手能力差,不知道如何將軟件工程技術(shù)應用于實際項目中,這與國外的軟件工程教學形成了鮮明的對比,也說明了我國軟件工程救生衣的問題所在。
那么如果提高學生的實踐能力呢?為此,有部分學校展開了實例化教學,小組式教學或是1:1教學模式的研究。其最終目的就是希望學生能真正理解并運用軟件工程的方法、技能,使學生動手實踐能力加強。這些教學方法的研討是非常有必要的。但與此同時,我們應清楚的意識到中國軟件工程課程教育理論課與實踐課比例失調(diào)的現(xiàn)狀。實踐課相對過少,要提高學生的應用能力,必須要對軟件工程的課程體制進行改革。我們可以結(jié)合國外軟件工程教育模式,結(jié)合中國學生特點,探索出具有中國特色的軟件工程教育模式。
筆者認為軟件公司與學校聯(lián)合進行軟件工程教育是提高學生實踐能力的較好方法。學??梢耘c國內(nèi)的一些軟件公司建立良好的合作關(guān)系,公司可將學生簽約后的實訓課程提前到學生學習軟件工程課程時進行。在具體實施時可從公司對人才的要求、學生的實際能力與就業(yè)意向雙方面考慮,盡可能使公司培訓出的優(yōu)秀學生愿意到公司工作,公司也愿意接收其培訓的對象。這過程中需要一定的合同約定以約束雙方的權(quán)利與責任。在培訓過程中,學生可實際參與到一些項目的設(shè)計與實現(xiàn)過程,將軟件工程理論應用到實踐操作過程中,做到學有所有。
此外,軟件工程課程的改革還要從任課教師這一方面著手。現(xiàn)在有很多軟件工程教師是“理論上的巨人,實踐中的矮子”。這些教師缺少實際項目的研發(fā)經(jīng)歷,所以在授課過程中造成理論脫離實踐的現(xiàn)象。為了使教師在授課過程中,講授的理論有實踐經(jīng)驗的支撐,應讓任課教師參與到實際項目的研發(fā)過程中,組織教師深入公司學習,或是請資深人事到學校給教師培訓,使教師的實踐能力過硬。國外的軟件這一點上做得就非常好。擔任軟件工程課程的教師往往都是大型軟件項目的管理者或是技術(shù)員,他們有著豐富的經(jīng)驗,而這些經(jīng)驗使課堂教學具有感染力與說明力。
3結(jié)束語
中國的軟件工程教育與國外的軟件工程教育相比,還有一定的差距,這使高校培養(yǎng)出來的軟件人才還要經(jīng)過一段集中的公司實訓鍛煉,才能真正進入工作角色,擔任起軟件設(shè)計工作。因此,可以考慮公司與學校聯(lián)合教育,使公司的培訓提前進入學校,使學生的學習內(nèi)容更貼近于實際的社會需求,以便于創(chuàng)造出中國式的兩階段軟件工程教育模式。
參考文獻
[1] 張效祥. 計算機科學技術(shù)百科全書[M]. 北京:清華大學出版社,1998.
[2] 張海藩. 軟件工程[M]. 北京:人民郵電出版社,2005.
[3] 駱斌等. 軟件工程專業(yè)的課程體系設(shè)計[J]. 中國大學教學,2005,(1).
[4] 沈備軍, 顧春華. 軟件工程教學模式的研究和實踐[J]. 計算機教育,2005,(1).
[5] 楊青, 劉洪星. 軟件工程學科的特征及其課程體系設(shè)計原則[J]. 武漢理工大學學報,2005,(2).