摘要:本文根據(jù)本科生和研究生兩個層次對軟件工程類課程的教學(xué)要求,介紹了軟件工程課程群的設(shè)計,包括課程定位、課程設(shè)置、主要課程的知識單元和知識點(diǎn)。
關(guān)鍵詞:軟件工程;課程群;課程設(shè)計
中圖分類號:G642文獻(xiàn)標(biāo)識碼:B
文章編號:1672-5913 (2007) 20-0005-03
軟件工程是計算機(jī)學(xué)科的重要學(xué)科分支,在本科計算機(jī)類各專業(yè)中都開設(shè)一些軟件工程的課程,在研究生教學(xué)中,無論是碩士還是博士,都設(shè)置軟件工程的研究方向,開設(shè)高一級的軟件工程課程。本文中,軟件工程課程群是指包括各層次的軟件工程類課程。另外,軟件工程又是一門發(fā)展非常迅速的學(xué)科,早年在研究生中講述的內(nèi)容現(xiàn)在放在本科中講。因此,這些課程存在定位不明確,課程間內(nèi)容交叉重復(fù)等問題。本文根據(jù)本科生和研究生兩個層次對軟件工程類課程的教學(xué)要求,闡述軟件工程課程群的定位、課程設(shè)置、主要課程的知識單元和知識點(diǎn)。
1定位
首先分析社會對各層次計算機(jī)專業(yè)學(xué)生在軟件工程方面的知識和能力要求。我們認(rèn)為計算機(jī)類本科學(xué)生畢業(yè)后,主要從事計算機(jī)軟件的開發(fā)工作,他們應(yīng)掌握軟件工程的基本概念、基本原理和基本方法,并能運(yùn)用這些概念、方法、原理,參與和/或從事軟件開發(fā)的某些活動(如分析、設(shè)計、編碼、測試等)。軟件工程方向的研究生主要著重研究能力的培養(yǎng),畢業(yè)后主要承擔(dān)系統(tǒng)分析員和/或系統(tǒng)設(shè)計員角色,甚至承擔(dān)項目經(jīng)理的角色,他們應(yīng)掌握軟件工程的研究動態(tài),了解軟件工程最新的研究成果,具備有關(guān)軟件的系統(tǒng)分析、構(gòu)架設(shè)計和軟件項目管理的知識和能力。
根據(jù)以上分析,我們認(rèn)為,本科生軟件工程課程群應(yīng)以軟件工程的基本概念、基本原理和基本方法為主線,使學(xué)生具備扎實(shí)的軟件工程基本理論知識、熟練的編程能力、較好的團(tuán)隊合作能力和實(shí)驗?zāi)芰?,同時具備一定的分析與解決問題能力和創(chuàng)新能力。研究生軟件工程課程群應(yīng)以研究課題為主線,使學(xué)生掌握軟件工程最新的研究動態(tài),對其中若干個研究方向有深入的了解,具備較強(qiáng)的分析與解決問題能力和創(chuàng)新能力,以及基本的軟件項目組
織和管理能力。
2課程設(shè)置
軟件工程課程群按學(xué)生的層次可分為本科生軟件工程課程群和研究生軟件工程課程群,按課程類別可分為必修課和選修課。
根據(jù)上述定位,本科生軟件工程課程群的必修課包括軟件工程和軟件實(shí)踐,有些學(xué)校在軟件工程課中包括足夠的實(shí)踐時間,可將它們合并成一門軟件工程課。選修課可根據(jù)各校的特點(diǎn)開設(shè)不同的課程,如面向?qū)ο蟮姆治雠c設(shè)計、軟件體系結(jié)構(gòu)、基于構(gòu)件的軟件開發(fā)、軟件測試等,也可將研究生的某些課程作為本科高年級學(xué)生的選修課。
研究生軟件工程課程群的必修課可包括高級軟件工程、軟件項目管理和專題討論,其中專題討論沒有固定的教材,它以若干專題(如軟件復(fù)用技術(shù)、模型驅(qū)動體系結(jié)構(gòu)、軟件產(chǎn)品線等)的最新論文為主,以報告和討論的形式進(jìn)行。選修課可根據(jù)導(dǎo)師的研究方向選擇合適的課程,如需求工程、軟件過程、形式方法等。
3教學(xué)內(nèi)容
本節(jié)參照國外相關(guān)的資料,結(jié)合我們多年的教學(xué)實(shí)踐,給出軟件工程課程群中各必修課的知識單元。
3.1軟件工程(本科生)
本科軟件工程課程的內(nèi)容應(yīng)覆蓋教育部計算機(jī)科學(xué)與技術(shù)教學(xué)指導(dǎo)委員會制訂的計算機(jī)科學(xué)與技術(shù)本科專業(yè)規(guī)范(計算機(jī)科學(xué)方向)中有關(guān)軟件工程的主要知識單元,該課程以軟件工程的基本概念、基本原理和基本方法為主,著重國內(nèi)比較流行的結(jié)構(gòu)化分析與設(shè)計方法、面向?qū)ο蠓治雠c設(shè)計方法和常規(guī)的軟件測試方法。同時對一些較新的軟件開發(fā)模型、方法和技術(shù)(如基于構(gòu)件的軟件開發(fā)模型和方法、敏捷開發(fā)方法、CMMCMMI、Web工程等)做簡單的介紹,以便學(xué)生今后自學(xué)。
3.2軟件實(shí)踐(本科生)
該課程是本科軟件工程課程的一門后繼實(shí)驗課,以某種軟件開發(fā)方法(如面向?qū)ο蠓椒?和軟件過程(如統(tǒng)一軟件過程RUP)為基礎(chǔ),引導(dǎo)學(xué)生完成一個完整的軟件項目開發(fā)全過程,包括需求獲取、需求分析、系統(tǒng)設(shè)計、實(shí)現(xiàn)以及測試等基本步驟。該課程主要培養(yǎng)學(xué)生的分析與解決問題能力、團(tuán)隊合作能力、實(shí)驗?zāi)芰蛣?chuàng)新能力
3.3高級軟件工程(研究生)
該課程選擇當(dāng)今軟件工程研究的熱點(diǎn)課題作為主要內(nèi)容,其知識單元可包括:基于構(gòu)件的軟件工程、軟件產(chǎn)品線、軟件體系結(jié)構(gòu)、模型驅(qū)動體系結(jié)構(gòu)(MDA)、面向方面程序設(shè)計(AOP)、需求工程、面向?qū)ο鬁y試技術(shù)、逆向工程和再工程、Agent技術(shù)、形式方法、高可信軟件,開源軟件等。值得注意的是,在一門高級軟件工程課程中很難詳細(xì)介紹上述所有的內(nèi)容,各校可根據(jù)自己的特點(diǎn)和研究方向,選擇幾個(以3~5個為宜)知識單元作重點(diǎn)介紹,對其他知識單元可只做簡單的介紹。
下面給出幾個知識單元所包含的知識點(diǎn)。
基于構(gòu)件的軟件工程(CBSE)主要包括:CBSE基本概念,軟件構(gòu)件規(guī)格說明,構(gòu)件模型,基于構(gòu)件的開發(fā)過程,基于構(gòu)件開發(fā)的語義完整性,構(gòu)件組裝和集成,預(yù)測系統(tǒng)的可信度,軟件產(chǎn)品線體系結(jié)構(gòu)中的構(gòu)件,商用第三方構(gòu)件(COTS)及構(gòu)件獲取技術(shù),基于構(gòu)件的軟件體系結(jié)構(gòu),基于構(gòu)件軟件的測試與質(zhì)量保證,構(gòu)件的可變性機(jī)制,軟件構(gòu)件庫,構(gòu)件交易,構(gòu)件描述與檢索等。
軟件產(chǎn)品線(SPL)主要包括:軟件產(chǎn)品線的基本概念,軟件產(chǎn)品線的基本活動(核心資產(chǎn)開發(fā),產(chǎn)品開發(fā),管理),領(lǐng)域工程與應(yīng)用系統(tǒng)工程,SPL經(jīng)濟(jì)學(xué),軟件產(chǎn)品線實(shí)踐域,軟件產(chǎn)品線實(shí)踐模式,產(chǎn)品線組裝,基于產(chǎn)品線的應(yīng)用系統(tǒng)開發(fā)技術(shù)等。
軟件體系結(jié)構(gòu)主要包括:軟件體系結(jié)構(gòu)的原則和實(shí)踐,體系結(jié)構(gòu)框架/方法,體系結(jié)構(gòu)模型與MDA,集成框架,軟件體系結(jié)構(gòu)設(shè)計與分析,體系結(jié)構(gòu)風(fēng)格,軟件體系結(jié)構(gòu)文檔,軟件體系結(jié)構(gòu)評估與確認(rèn),面向服務(wù)體系結(jié)構(gòu)(SOA),體系結(jié)構(gòu)模式,企業(yè)體系結(jié)構(gòu)等。
模型驅(qū)動體系結(jié)構(gòu)(MDA)主要包括:MDA基本概念,MDA規(guī)格說明,MDA模型(CIM,PIM,PSM),模型轉(zhuǎn)換,模型語言(如可執(zhí)行的UML,對象約束語言O(shè)CL等),元建模,MDA過程,領(lǐng)域建模,系統(tǒng)模型,平臺無關(guān)建模,平臺特定的實(shí)現(xiàn)等。
3.4軟件項目管理(研究生)
該課程的知識單元包括:綜合管理,范圍管理,時間管理,成本管理,質(zhì)量管理,人力資源管理,溝通管理,風(fēng)險管理,采購管理,敏捷項目管理,外包管理,軟技能等。下面給出其中若干個知識單元所包含的知識點(diǎn)。
綜合管理:項目憲章,項目范圍陳述,項目管理計劃(編制過程,內(nèi)容),項目執(zhí)行的管理,項目評價,項目的監(jiān)督和控制,集成的變更控制,實(shí)施報告,配置管理,關(guān)閉項目。
范圍管理:啟動過程,項目選擇方法,項目合同,范圍管理計劃(編制過程,范圍陳述,范圍定義),創(chuàng)建WBS,范圍驗證過程,范圍蔓延,范圍變更控制過程,目標(biāo)管理(MBO),影響曲線。
時間管理:活動定義過程,活動排序過程,圖示方法(優(yōu)先圖示方法(PDM),箭頭圖示方法(ADM),條件圖示方法,圖形評價和評審技術(shù)(GERT), 項目網(wǎng)絡(luò)圖,關(guān)鍵路徑方法(CPM),計劃評價和評審技術(shù)(PERT)等),PERT對CPM的估算,活動資源估算,活動持續(xù)時間估算,估算工具,進(jìn)度表開發(fā)過程,進(jìn)度控制過程,凈價值術(shù)語和公式。
成本管理:資源計劃編制過程,成本估算(術(shù)語,過程,COCOMO模型,工具),成本管理計劃,成本預(yù)算過程,成本基線,項目投資需求,成本控制過程,實(shí)施度量,預(yù)測完成,凈價值術(shù)語和公式。
質(zhì)量管理:質(zhì)量計劃編制過程,質(zhì)量保證計劃,過程改進(jìn)計劃,質(zhì)量保證過程,質(zhì)量控制過程,統(tǒng)計質(zhì)量控制(SQC),質(zhì)量改進(jìn)過程。
人力資源管理:人力資源計劃編制,組織計劃編制,項目管理中人的因素,責(zé)任委派矩陣,獲取項目組,員工獲取過程,項目管理者的角色和責(zé)任,項目組(建造過程),小組動力,管理項目組,角色與責(zé)任,領(lǐng)導(dǎo)風(fēng)格,能力類型,沖突管理,6動機(jī)理論,小組性能估算,管理知識員工。
溝通管理:溝通計劃編制,溝通管理計劃,信息分發(fā),溝通模型,溝通風(fēng)格,溝通方法,溝通鏈接規(guī)則,溝通障礙,溝通技巧,績效報告,管理涉眾,管理收尾。
風(fēng)險管理:風(fēng)險管理計劃編制,實(shí)用方法,風(fēng)險標(biāo)識,風(fēng)險分析(定性分析,可能性與風(fēng)險影響,定量分析,靈敏性分析,決策樹分析,預(yù)期貨幣價值,概率方法),風(fēng)險響應(yīng)(計劃編制,工具與技術(shù)),可保險風(fēng)險,風(fēng)險監(jiān)督與控制過程,影響曲線。
采購管理:采購計劃編制,購買和獲取計劃,合同計劃,成本補(bǔ)償合同,固定價格合同,工作陳述,申請計劃編制過程,請求供方響應(yīng),申請過程,供方選擇,源選擇過程,談判,合同,合同管理,合同變更控制,合同收尾。
敏捷項目管理:Agile宣言和原則,迭代與演化開發(fā),產(chǎn)品業(yè)主,敏捷管理需求,敏捷估算與計劃編制,敏捷設(shè)計,敏捷文檔,敏捷軟件構(gòu)造,敏捷編程,人員管理問題,敏捷質(zhì)量保證,敏捷項目管理,項目評審,敏捷度量。
外包管理:識別全球業(yè)務(wù)機(jī)遇,組織模型與商業(yè)策略,全球項目的特征和挑戰(zhàn),全球項目經(jīng)理的技能,國際及多種文化的交融,IP保護(hù)與其他法律方面,采購道德規(guī)范,道德規(guī)范法規(guī),試驗計劃,風(fēng)險管理,軟件過程與實(shí)踐的改進(jìn),建立團(tuán)隊,需求管理及客戶/供應(yīng)商關(guān)系,開發(fā)方法學(xué),全球軟件開發(fā)(GSD)與全球軟件工程(GSE),溝通、協(xié)調(diào)和協(xié)作,離岸項目的管理,克服距離和時間,文化交叉的處理,全球項目的安全問題,全球項目收尾,從業(yè)人員教育培訓(xùn)及知識管理。
軟技能:領(lǐng)導(dǎo)能力,批判性思考,職業(yè)道德規(guī)范,自我激勵,誠實(shí),小組工作,風(fēng)險捕獲,適應(yīng)性,人際關(guān)系,工作壓力承受、壓力管理,創(chuàng)造性,影響力,研究能力,問題解決能力,組織能力,多文化處理能力,學(xué)習(xí)能力,時間管理,口頭溝通,文字溝通,細(xì)心周到。
4小結(jié)
本文介紹了軟件工程課程群的設(shè)計,在具體實(shí)施時,可根據(jù)各校的特點(diǎn),對上述課程設(shè)置、知識單元、知識點(diǎn)進(jìn)行裁剪。下一步將繼續(xù)完善各課程的知識單元和知識點(diǎn),為軟件工程課程群建設(shè)打好基礎(chǔ)。
參考文獻(xiàn)
[1] 教育部高等學(xué)校計算機(jī)科學(xué)與技術(shù)教學(xué)指導(dǎo)委員會. 計算機(jī)科學(xué)與技術(shù)本科專業(yè)規(guī)范[M]. 北京:高等教育出版社,2006 .
作者簡介
錢樂秋(1942-),男,復(fù)旦大學(xué)計算機(jī)科學(xué)與工程系教授,博士生導(dǎo)師,主要研究方向為軟件工程。
彭鑫(1979-),男,博士、復(fù)旦大學(xué)計算機(jī)科學(xué)與工程系講師,主要研究方向為軟件構(gòu)件技術(shù)、軟件產(chǎn)品線、軟件維護(hù)與再工程。
趙文耘(1964-),男,復(fù)旦大學(xué)計算機(jī)科學(xué)與工程系教授,博士生導(dǎo)師,主要研究方向為軟件工程與電子商務(wù)。