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