摘要:軟件工程課程由于其較強(qiáng)的理論性和實(shí)踐性,歷來是教學(xué)的難點(diǎn)。根據(jù)軟件工程課程的特點(diǎn),人們提出了不少有效的教學(xué)方法。本文闡述國外學(xué)者提出的若干軟件工程教學(xué)方法,以期對(duì)我們的教學(xué)提供有益的借鑒和參考。最后談一點(diǎn)體會(huì)。
關(guān)鍵詞:軟件工程;教學(xué)方法;教學(xué)改革
軟件工程課程由于其較強(qiáng)的理論性與實(shí)踐性,歷來是教學(xué)的難點(diǎn)。掌握軟件工程原理和技術(shù)對(duì)軟件開發(fā)有著重要的指導(dǎo)作用。高校是承擔(dān)軟件人才培養(yǎng)的主要場(chǎng)所,但長期以來,一個(gè)不爭(zhēng)的事實(shí)是,IT用人單位常常對(duì)剛進(jìn)入工作崗位的畢業(yè)生不滿意,他們認(rèn)為學(xué)生在學(xué)校里并沒有為自己將來所從事的工作做好必要的準(zhǔn)備,而學(xué)術(shù)界也意識(shí)到存在的問題,采取措施進(jìn)行教學(xué)改革。軟件工程課程教學(xué)改革的一個(gè)主要方向是使軟件工程的實(shí)踐教學(xué)環(huán)節(jié)與現(xiàn)實(shí)軟件開發(fā)中的情形更加相符。Mehdi Jazayeri在第十九屆國際軟件工程會(huì)議上談到,現(xiàn)在課堂上所采用的實(shí)踐教學(xué)內(nèi)容,與實(shí)際的軟件開發(fā)環(huán)境相差甚遠(yuǎn),主要表現(xiàn)在:由教師指定用戶需求,預(yù)先定義好軟件架構(gòu),固定的處理流程,以及把項(xiàng)目限制在可控的范圍內(nèi),同時(shí)不會(huì)出現(xiàn)不兼容或不合法的用戶需求等[1]。顯然實(shí)踐教學(xué)內(nèi)容與現(xiàn)實(shí)軟件開發(fā)情形存在較大差距,為此,圍繞著如何使課堂教學(xué)以一種更貼近現(xiàn)實(shí)軟件開發(fā)環(huán)境的方式來進(jìn)行,使學(xué)生得到應(yīng)有的軟件工程實(shí)踐能力的培養(yǎng),人們提出了各種改進(jìn)軟件工程教學(xué)的方法。本文闡述一些國外學(xué)者提出的若干軟件工程教學(xué)法和教學(xué)手段,以期對(duì)我們的教學(xué)提供有益的借鑒和參考,最后提出我們的一些建議。
1面向?qū)嵺`的教學(xué)法
面向?qū)嵺`的軟件工程教學(xué)法旨在引進(jìn)實(shí)際軟件開發(fā)環(huán)境中的特定元素,使傳統(tǒng)的軟件工程課堂實(shí)踐教學(xué)與現(xiàn)實(shí)軟件開發(fā)更相符??梢酝ㄟ^以下一些方法和手段來達(dá)到某種程度的相似性。
1.1與行業(yè)人員合作的教學(xué)法
文獻(xiàn)[2]給出了一個(gè)與行業(yè)人員合作的教學(xué)法模型。與行業(yè)人員合作是使課堂教學(xué)內(nèi)容貼近現(xiàn)實(shí)的一種最常見的教學(xué)方法,邀請(qǐng)行業(yè)人員走進(jìn)課堂與學(xué)生互動(dòng)交流,在教學(xué)過程中,行業(yè)者可以扮演老師的角色,為學(xué)生設(shè)計(jì)課堂教學(xué)與實(shí)踐內(nèi)容;或定期舉辦技術(shù)專題講座,談從事軟件開發(fā)應(yīng)具備的技能以及個(gè)人從業(yè)的經(jīng)驗(yàn)和感想,通過技術(shù)專題講座,讓學(xué)生了解當(dāng)前軟件開發(fā),特別是大規(guī)模軟件開發(fā)面臨的挑戰(zhàn)及對(duì)策。行業(yè)人員也可以扮演客戶角色,向?qū)W生提出各種需求問題和回答學(xué)生提出的問題。在交流過程中,一方面,學(xué)生可以學(xué)到在課堂教學(xué)上很可能學(xué)不到的知識(shí)和技能。另一方面,通過課堂的互動(dòng)交流,有助于培養(yǎng)人際交往的能力,最重要的是,能夠從行業(yè)專家那里學(xué)到實(shí)際的經(jīng)驗(yàn),有些經(jīng)驗(yàn)在教科書上是找不到的。
1.2基于項(xiàng)目維護(hù)的教學(xué)法
軟件維護(hù)是軟件生命期中的一個(gè)重要階段?;陧?xiàng)目維護(hù)的教學(xué)法[3],是基于這樣一個(gè)認(rèn)識(shí),即目前大多數(shù)軟件的開發(fā)是在現(xiàn)有系統(tǒng)基礎(chǔ)上進(jìn)行,軟件開發(fā)通常不是從零開始。課堂教學(xué)可以采用兩種方式進(jìn)行教學(xué),一種方法是正在學(xué)習(xí)課程的班級(jí)負(fù)責(zé)對(duì)某個(gè)項(xiàng)目進(jìn)行維護(hù),而該項(xiàng)目是上一學(xué)年某個(gè)班級(jí)留下來的;第二種方法是可以把項(xiàng)目分解成多個(gè)模塊,正在學(xué)習(xí)的每個(gè)班固定維護(hù)其中的一個(gè)模塊。也可以把項(xiàng)目劃分給一個(gè)班的若干小組來實(shí)施,每個(gè)小組的工作嚴(yán)格按照軟件維護(hù)的要求來進(jìn)行,最后留一個(gè)小組負(fù)責(zé)檢查每個(gè)模塊實(shí)現(xiàn)的正確性。在對(duì)項(xiàng)目進(jìn)行維護(hù)時(shí),要求學(xué)生編寫相關(guān)的文檔,比如采用什么方法進(jìn)行軟件維護(hù),維護(hù)結(jié)果如何,還存在什么問題等等;也可以選擇一個(gè)來自業(yè)內(nèi)的正在開發(fā)的項(xiàng)目作為實(shí)踐項(xiàng)目,這有利于激發(fā)學(xué)生開發(fā)項(xiàng)目的興趣,通過對(duì)項(xiàng)目進(jìn)行維護(hù)達(dá)到獲得軟件工程知識(shí)和技能的目的。
1.3強(qiáng)調(diào)團(tuán)隊(duì)合作的教學(xué)法
軟件開發(fā)通常是在一個(gè)團(tuán)隊(duì)成員的合作下來完成。據(jù)此,有學(xué)者提出基于團(tuán)隊(duì)合作的教學(xué)方法[4]。采用該方法,學(xué)生在入學(xué)時(shí)就被分成若干個(gè)小組,在今后幾年的學(xué)習(xí)里,幾個(gè)小組共同合作開發(fā)軟件。在第一年的學(xué)習(xí)中,把實(shí)踐項(xiàng)目設(shè)計(jì)得比較簡(jiǎn)單,涉及的知識(shí)點(diǎn)比較少,學(xué)習(xí)相對(duì)比較容易,隨著學(xué)習(xí)過程的深入,逐年增加項(xiàng)目的內(nèi)容和復(fù)雜度,這種教學(xué)方法,是一種增量式的教學(xué)方法。對(duì)學(xué)生來說,比較容易接受。團(tuán)隊(duì)合作教學(xué)法,是以小組為單位,每個(gè)小組在幾年的學(xué)習(xí)中,人員相對(duì)固定,人員可以來自同一專業(yè)的,也可來自不同專業(yè),甚至可以來自不同學(xué)校,這是基于在現(xiàn)實(shí)軟件開發(fā)中,一個(gè)項(xiàng)目不僅僅涉及編程,還有大量的工作要做,而做這些工作是需要掌握其他方面的知識(shí)的。這種團(tuán)隊(duì)合作教學(xué)法,有利于培養(yǎng)良好的團(tuán)隊(duì)合作精神,并且采用增量式教學(xué)方法及安排在多個(gè)學(xué)期內(nèi)進(jìn)行,使得學(xué)生有充分的時(shí)間來學(xué)習(xí),如果只安排一個(gè)學(xué)期的課程,學(xué)生也許沒有太多的學(xué)習(xí)動(dòng)力,因?yàn)轫?xiàng)目一結(jié)束,團(tuán)隊(duì)馬上解散。
1.4增加非技術(shù)性技巧的教學(xué)內(nèi)容
在今天的軟件行業(yè)中,一方面要求軟件工程師不僅要掌握軟件設(shè)計(jì)與開發(fā)的專業(yè)技能,而且要能夠解決當(dāng)面臨不同軟件開發(fā)環(huán)境時(shí)所引起的非技術(shù)性問題。為使學(xué)生今后能夠應(yīng)對(duì)在工作中出現(xiàn)的各種問題,有些教師提倡在課堂實(shí)踐教學(xué)中增加一些非技術(shù)性技巧訓(xùn)練的內(nèi)容,這些技巧主要有問題域的定義、顧客需求分析、團(tuán)隊(duì)如何協(xié)調(diào)、如何決策、問題求解策略、面臨時(shí)間急迫情況下如何處理相關(guān)事宜[5]。教學(xué)過程不過分注重如何編寫代碼,設(shè)計(jì)算法,因?yàn)檫@些內(nèi)容可以安排在相關(guān)課程的學(xué)習(xí),如程序設(shè)計(jì)、算法設(shè)計(jì)與分析等課程。在學(xué)習(xí)過程中,始終強(qiáng)調(diào)人際交流、合作、問題求解和決策,而這些非技術(shù)性技巧正是傳統(tǒng)教學(xué)內(nèi)容所缺乏的。
1.5Open-Endedness教學(xué)法
軟件工程課程教學(xué)的目的不是讓學(xué)生熟記軟件工程概念和術(shù)語,而是通過課程學(xué)習(xí),讓學(xué)生今后能應(yīng)用所學(xué)知識(shí)解決軟件開發(fā)中面臨的各種問題。在現(xiàn)實(shí)當(dāng)中,軟件開發(fā)所遇到的問題往往難以事先預(yù)測(cè),解決這些問題通常沒有一個(gè)固定的程式,為了培養(yǎng)學(xué)生運(yùn)用所學(xué)知識(shí)靈活處理問題的能力,課堂實(shí)踐教學(xué)應(yīng)鼓勵(lì)學(xué)生獨(dú)立思考,大膽創(chuàng)新。文獻(xiàn)[6]給出一個(gè)所謂的Open-Endedness方式進(jìn)行的項(xiàng)目實(shí)踐教學(xué)方法,它是對(duì)傳統(tǒng)教學(xué)方法的一個(gè)補(bǔ)充,其主要思想是,設(shè)計(jì)一個(gè)軟件項(xiàng)目,預(yù)先沒有定義好各種要求和處理流程,讓學(xué)生自己去定義、設(shè)計(jì)、實(shí)現(xiàn)。或者教師把需求設(shè)計(jì)成不明確或者沒有完全定義好,讓學(xué)生自己去完成大部分的工作,這種教學(xué)法的目的是讓學(xué)生不能僅僅沿著別人設(shè)計(jì)好的方向去做,而是根據(jù)自己的設(shè)計(jì)去努力完成,這是一種開放式的教學(xué),提倡這種教學(xué)方法的學(xué)者認(rèn)為,這有利于激發(fā)學(xué)生參與的熱情,鼓勵(lì)學(xué)生不要按照別人已設(shè)計(jì)好的方向去做,而是著眼于自己去創(chuàng)造。
1.6項(xiàng)目驅(qū)動(dòng)教學(xué)法
項(xiàng)目驅(qū)動(dòng)的教學(xué)法認(rèn)為,學(xué)習(xí)理論知識(shí)應(yīng)該通過實(shí)踐來學(xué)習(xí),從錯(cuò)誤和失敗當(dāng)中來學(xué)習(xí),傳統(tǒng)的基于教案或報(bào)告只是一種輔助形式。文獻(xiàn)[7]提供一個(gè)軟件工程項(xiàng)目實(shí)踐課程,該項(xiàng)目的目標(biāo)是為學(xué)生提供一些實(shí)踐,以獲得類似于在行業(yè)中開發(fā)軟件得到的一些實(shí)踐經(jīng)驗(yàn)。一個(gè)典型的軟件開發(fā)過程會(huì)面臨諸多的挑戰(zhàn):如,怎樣定義問題域;需求前后可能不一致而必須和用戶一起來解決;一些成員可能對(duì)項(xiàng)目開發(fā)所采用的技術(shù)不是很熟悉,需要學(xué)習(xí),還要能夠處理不可預(yù)見的技術(shù)問題。此外,成員之間如何溝通,他們是否適應(yīng)對(duì)方的工作方式甚至生活習(xí)慣等,都是需要解決的問題。圍繞這些問題,只有通過實(shí)踐來學(xué)習(xí),才能深刻理解軟件工程過程。利用項(xiàng)目驅(qū)動(dòng)教學(xué)法,是給學(xué)生更多的實(shí)踐機(jī)會(huì),以便在學(xué)生走進(jìn)社會(huì)后可以更快地適應(yīng)工作的需要。利用做項(xiàng)目來進(jìn)行教學(xué),可以由學(xué)生對(duì)項(xiàng)目進(jìn)行問題定義,而不必由老師預(yù)先定義好。項(xiàng)目可以來自業(yè)內(nèi)的在研項(xiàng)目,如果是來自業(yè)內(nèi)的項(xiàng)目,在軟件開發(fā)各階段,可以邀請(qǐng)來自行業(yè)的人員來進(jìn)行指導(dǎo)。
2基于模擬的教學(xué)法
以教案結(jié)合案例的傳統(tǒng)的軟件工程教學(xué)法不能較好地向?qū)W生傳授與實(shí)際軟件開發(fā)中復(fù)雜、動(dòng)態(tài)過程相關(guān)的知識(shí),因?yàn)檫@些復(fù)雜、動(dòng)態(tài)的過程主要表現(xiàn)在項(xiàng)目實(shí)施的過程是非線性的;當(dāng)中,往往存在著多目標(biāo)沖突;或需要從多變量中擇優(yōu),等等;學(xué)生是以一種被動(dòng)的方式來學(xué)習(xí),在傳統(tǒng)的教學(xué)中,雖然學(xué)生也參與了課堂實(shí)踐的練習(xí),但由于受時(shí)間以及項(xiàng)目的各種條件限制,使得課程實(shí)踐難以在廣度和深度上反映軟件工程的復(fù)雜性和內(nèi)在本質(zhì)。鑒于此,有學(xué)者認(rèn)為,學(xué)生在校園環(huán)境里能夠接觸到與實(shí)際軟件開發(fā)環(huán)境相近的唯一可行的辦法是采用模擬的教學(xué)方法。采用模擬的教學(xué)方法使學(xué)生能在一個(gè)較大規(guī)模的層次上以一種更快捷的方式在學(xué)術(shù)環(huán)境里參與現(xiàn)實(shí)軟件工程實(shí)踐,而這種大規(guī)模的軟件開發(fā)環(huán)境只有在現(xiàn)實(shí)的軟件開發(fā)中才可能出現(xiàn)?;谀M的教學(xué)法是值得進(jìn)一步深入研究的方法。
2.1采用業(yè)內(nèi)使用或?qū)S玫哪M器
課堂教學(xué)用的模擬器可以使用業(yè)內(nèi)用的模擬器,這是一種比較簡(jiǎn)單快捷的方法。這些專業(yè)用的模擬器通常用于預(yù)測(cè)由于改變軟件處理流程而對(duì)軟件最終的輸出會(huì)產(chǎn)生什么樣的影響,文獻(xiàn)[8]給出了一個(gè)用于軟件項(xiàng)目管理訓(xùn)練用的模擬器。實(shí)際上,在軟件工程實(shí)踐中,采用模擬器可以對(duì)軟件成本計(jì)算、數(shù)據(jù)收集、需求分析、項(xiàng)目管理、風(fēng)險(xiǎn)管理、軟件過程改進(jìn)等方面進(jìn)行模擬,以減少在實(shí)際操作中可能出現(xiàn)的錯(cuò)誤,同時(shí)提供了一個(gè)在缺乏相應(yīng)條件下,如人力和物力,對(duì)軟件工程各階段進(jìn)行分析與評(píng)判的手段。模擬器是根據(jù)實(shí)際軟件開發(fā)積累的經(jīng)驗(yàn)數(shù)據(jù)來建立的,模擬器接受操作者的指令,可以輸入項(xiàng)目的規(guī)模,軟件處理流程以及輸出結(jié)果,在模擬器工作過程中,隨時(shí)可以調(diào)整各種參數(shù),最后還能夠顯示項(xiàng)目完成的正確率。也可以開發(fā)專門用于課堂教學(xué)的模擬器,這類模擬器通常從最簡(jiǎn)單的任務(wù)開始,隨著模擬過程的深入,學(xué)習(xí)任務(wù)也變得越來越復(fù)雜,而整個(gè)模擬過程覆蓋軟件生命期的各個(gè)階段。
2.2基于游戲形式的模擬器教學(xué)
用于教學(xué)用的模擬器通??梢阅M整個(gè)軟件生命期,使用業(yè)內(nèi)用的模擬器可能并不適合教學(xué)用,因?yàn)檫@類模擬器常常過于復(fù)雜,對(duì)學(xué)生的要求太高,操作起來有時(shí)也不是很直觀,這時(shí)可以采用另一種類型的模擬器,就是基于游戲形式的模擬教學(xué)法[9]。這類模擬器具有以下功能:1)能恰當(dāng)?shù)厥褂密浖こ碳夹g(shù)來引導(dǎo)學(xué)生完成模擬的軟件設(shè)計(jì)與開發(fā);2)能夠演示一般和專用的軟件過程技術(shù);3)能夠?qū)W(xué)生作出的決策提供反饋信息;4)操作容易并且響應(yīng)比較快;5)給學(xué)生在操作過程中提供交互功能。這類模擬器操作方便,操作界面比較生動(dòng)直觀,操作者可以一步一步地通過接口來驅(qū)動(dòng)模擬器完成特定的任務(wù)。模擬器配有圖形用戶接口界面來顯示被模擬的物理環(huán)境,設(shè)計(jì)者希望采用這種游戲的方式來學(xué)習(xí),效果會(huì)更好。
2.3支持群參與的模擬器教學(xué)
支持群參與的模擬器可以模擬在實(shí)際軟件開發(fā)中團(tuán)隊(duì)工作的基本情形,模擬器被設(shè)計(jì)成群體討論和群體交互過程[10]。在模擬的環(huán)境里,操作者和所有或部分的參與者通過模擬器討論問題,參與者是被模擬的。由軟件工程模擬器提供問題進(jìn)行討論,例如檢查代碼是否正確以及召開需求分析會(huì)等。文獻(xiàn)[11]描述一種交互方式VIDEO代碼檢查模擬器,該模擬器包括一個(gè)VIDEO和一個(gè)自然語言接口供使用者參與討論。該模擬器模型由4個(gè)角色組成:主持人或仲裁者(moderator)、閱讀者(reader)、記錄員(recorder)、生產(chǎn)者(producer),主持人的職責(zé)是安排會(huì)議、設(shè)置代碼檢查時(shí)間和進(jìn)度、負(fù)責(zé)成員溝通等;閱讀者負(fù)責(zé)檢查代碼是否正確,有錯(cuò)進(jìn)行改正,并把結(jié)果告訴記錄員;記錄員負(fù)責(zé)記錄代碼錯(cuò)誤之處,并報(bào)告給主持人;而生產(chǎn)者的職責(zé)是最后檢查代碼是否滿足各種評(píng)判標(biāo)準(zhǔn),并在需要的時(shí)候?qū)Ξa(chǎn)品進(jìn)行說明。此類模擬器通常也模擬物理環(huán)境,操作者可以從一個(gè)地方進(jìn)到另一個(gè)地方進(jìn)行討論,每一個(gè)地方都為特定的任務(wù)所設(shè)計(jì),操作者可以和其他角色進(jìn)行對(duì)話,操作者也可從一個(gè)角色轉(zhuǎn)換到另一個(gè)角色。支持群參與的模擬器可以運(yùn)用到基于團(tuán)隊(duì)合作、基于項(xiàng)目驅(qū)動(dòng)的教學(xué)法過程中。
3增加“缺失性”教學(xué)內(nèi)容的教學(xué)法
有學(xué)者認(rèn)為軟件工程教學(xué)之所以低效,主要是課堂教學(xué)缺失了一些重要內(nèi)容的講授,如果能夠很好地補(bǔ)上這些內(nèi)容,那么學(xué)生的軟件工程知識(shí)會(huì)更加全面。有人認(rèn)為由于軟件開發(fā)越來越復(fù)雜,所以應(yīng)該強(qiáng)調(diào)軟件開發(fā)的形式化方法[12],形式化的主要優(yōu)點(diǎn)在于它能夠用數(shù)學(xué)符號(hào)邏輯地描述問題和軟件實(shí)現(xiàn)過程,可以借助其他一些工具來輔助形式化方法,如用CASE工具支持形式化軟件開發(fā)。也有學(xué)者建議應(yīng)該講授傳統(tǒng)工程學(xué)方面的內(nèi)容,作為軟件工程內(nèi)容的一部分。學(xué)生不僅僅能夠沿著一個(gè)特定的軟件過程去完成給定的任務(wù),而應(yīng)該利用工程處理方法和項(xiàng)目管理技巧來創(chuàng)造軟件過程和使用改進(jìn)了的各種技術(shù)來改善軟件過程。有學(xué)者建議應(yīng)采用一種更為廣泛的教學(xué)方法,要求學(xué)生全面、系統(tǒng)地學(xué)習(xí)項(xiàng)目管理技術(shù)。還有學(xué)者強(qiáng)調(diào)應(yīng)關(guān)注特定的軟件工程,重視基于維護(hù)、進(jìn)化的軟件工程和實(shí)時(shí)的軟件工程原理和技術(shù)。此外,人際交流、群體協(xié)同處理、個(gè)人技巧、項(xiàng)目管理、超越技術(shù)能力之上的問題求解等,都應(yīng)成為軟件工程教學(xué)內(nèi)容的一部分。學(xué)生還應(yīng)該接受更多的課程以外的訓(xùn)練,如商業(yè)方面的內(nèi)容,例如產(chǎn)品的市場(chǎng)調(diào)研和項(xiàng)目投資方面的知識(shí)。
4結(jié)論
本文闡述了國外學(xué)者有關(guān)軟件工程課程教學(xué)法的一些見解,這些方法對(duì)于我們今后的教學(xué)和改革有著指導(dǎo)和借鑒的作用。軟件工程由于其理論性強(qiáng)、實(shí)踐要求高,對(duì)老師和學(xué)生都提出了很高的要求,所以歷來是教學(xué)的難點(diǎn)。我們認(rèn)為,軟件工程教學(xué)方法不應(yīng)是單一的,它們之間要相互融合,根據(jù)軟件生命期的不同階段的特點(diǎn),采用不同的教學(xué)方法,根據(jù)學(xué)生個(gè)人能力和學(xué)校條件,采用不同的教學(xué)方法。與行業(yè)專家合作是一個(gè)很好的教學(xué)方法,我們的老師往往缺乏的是實(shí)踐經(jīng)驗(yàn),因而照本宣科式的教學(xué)在軟件工程教學(xué)中并不少見。請(qǐng)業(yè)內(nèi)專家來授課,可以建立長期的合作關(guān)系,可以選派老師到公司企業(yè)學(xué)習(xí),積累一些實(shí)踐的經(jīng)驗(yàn),回來后再培訓(xùn)其他老師,要形成一個(gè)長效機(jī)制。
基于模擬的教學(xué)方法相對(duì)于國內(nèi)教學(xué)來說,是一個(gè)全新的方法。可以和行業(yè)合作或者聯(lián)合一些有研發(fā)條件的高校共同開發(fā)適應(yīng)國內(nèi)軟件工程教學(xué)需要的教學(xué)模擬器,充分利用各校的資源,探索一條適合國內(nèi)的軟件工程課程教學(xué)法。要改革軟件工程教學(xué)內(nèi)容,應(yīng)該讓學(xué)生掌握軟件工程的結(jié)構(gòu)化與非結(jié)構(gòu)化、邏輯性與社會(huì)性方面的知識(shí)。在一個(gè)學(xué)期學(xué)完軟件工程應(yīng)學(xué)內(nèi)容,或許有些困難,可以把軟件工程這門課分解為幾個(gè)大專題,或者幾門小課,分散到幾個(gè)學(xué)期來教學(xué),比如,可以分解成系統(tǒng)分析和需求、軟件設(shè)計(jì)和實(shí)現(xiàn)、軟件測(cè)試、軟件維護(hù)、軟件工程組織與管理、項(xiàng)目預(yù)算與實(shí)施等。講授軟件工程課程的老師要相對(duì)固定,不要過于頻繁變動(dòng),相對(duì)固定有利于積累教學(xué)經(jīng)驗(yàn)。要形成一個(gè)教學(xué)梯隊(duì),經(jīng)常研究和總結(jié)教學(xué)方法。
鑒于軟件工程課程在軟件人才培養(yǎng)方面的重要作用,計(jì)算機(jī)軟件類專業(yè)可以圍繞軟件工程實(shí)踐的要求設(shè)計(jì)培養(yǎng)目標(biāo)和各科教學(xué)內(nèi)容,結(jié)合本校實(shí)際情況開展教學(xué)工作,為培養(yǎng)高素質(zhì)的專業(yè)人才打好基礎(chǔ)。
參考文獻(xiàn):
[1] Jazayeri M. The Education of a Software Engineer[C]//Proceedings of the 19th International Conference on Automated Software Engineering. L