軟件工程講義課件_第1頁(yè)
軟件工程講義課件_第2頁(yè)
軟件工程講義課件_第3頁(yè)
軟件工程講義課件_第4頁(yè)
軟件工程講義課件_第5頁(yè)
已閱讀5頁(yè),還剩117頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

軟件工程(第二版)

齊治昌、譚慶平、寧洪編著

高等教育出版社

主講:陳明銳教授★省級(jí)精品課程★軟件工程(第二版)

齊治昌、譚慶平、寧洪編著

1老師聯(lián)系方式陳明銳,信息學(xué)院副院長(zhǎng)辦公室(309房)辦公電話:66279275,手機(jī)/p>

提交作業(yè)全部用附件,文件名為:學(xué)號(hào)+姓名+加章次例如文件名:20060724133陳好五.DOC表示陳好的第五章作業(yè)!課后有問(wèn)題最好用電子郵件。電子郵件:mrchen@

老師聯(lián)系方式陳明銳,信息學(xué)院副院長(zhǎng)辦公室(309房)課程進(jìn)度安排分析與設(shè)計(jì)課堂演講競(jìng)賽,請(qǐng)同學(xué)們?cè)诘?周前分好組并把分組名單發(fā)給老師。分組要求5~7人一組,能力強(qiáng)弱結(jié)合,分工合作,發(fā)揚(yáng)團(tuán)隊(duì)合作精神。最終形成課程設(shè)計(jì)提交!

周序日期講授主要內(nèi)容實(shí)踐教學(xué)內(nèi)容備注12.27第一章緒論:軟件與軟件危機(jī),軟件工程學(xué)的范疇;傳統(tǒng)軟件工程和面向?qū)ο筌浖こ?,軟件工程的?yīng)用23.05第二章軟件開發(fā)模型:軟件生存周期,傳統(tǒng)軟件開發(fā)模型,軟件演化模型3.06第二章軟件開發(fā)模型:面向?qū)ο箝_發(fā)模型,形式化方法模型,開發(fā)模型選用實(shí)例33.13第三章軟件需求分析:需求分析的任務(wù)與步驟,需求獲取的常用方法;分析建模,軟件需求說(shuō)明43.19第三章軟件需求分析:結(jié)構(gòu)化分析方法實(shí)驗(yàn)1:選題(1學(xué)時(shí))3.20第三章軟件需求分析:面向?qū)ο蠓治龇椒?3.27第四章軟件設(shè)計(jì)概述:軟件設(shè)計(jì)的任務(wù),軟件設(shè)計(jì)的基本概念;模塊化設(shè)計(jì),其他設(shè)計(jì)問(wèn)題的處理,設(shè)計(jì)文檔及其復(fù)審實(shí)驗(yàn)2:可行性分析64.02第五章傳統(tǒng)的設(shè)計(jì)方法:概述,結(jié)構(gòu)化設(shè)計(jì)方法、過(guò)程設(shè)計(jì)實(shí)驗(yàn)3:需求分析4.03第六章面向?qū)ο笤O(shè)計(jì)方法:面向?qū)ο笤O(shè)計(jì)概述,系統(tǒng)設(shè)計(jì)74.10第六章面向?qū)ο笤O(shè)計(jì)方法:對(duì)象設(shè)計(jì),領(lǐng)域?qū)ο笤O(shè)計(jì)實(shí)驗(yàn)4:需求分析第七章統(tǒng)一建模語(yǔ)言UML:UML的組成、特點(diǎn)與應(yīng)用,靜態(tài)建模84.16面向過(guò)程分析設(shè)計(jì)課堂演講競(jìng)賽面向過(guò)程分析設(shè)計(jì)演講競(jìng)賽,需要兩次課!或者根據(jù)學(xué)生情況往后推遲兩周4.17面向過(guò)程分析設(shè)計(jì)課堂演講競(jìng)賽課程進(jìn)度安排分析與設(shè)計(jì)課堂演講競(jìng)賽,請(qǐng)同學(xué)們?cè)诘?周前分好組課程進(jìn)度安排周序日期講授主要內(nèi)容實(shí)踐教學(xué)內(nèi)容備注94.24第七章統(tǒng)一建模語(yǔ)言UML:動(dòng)態(tài)建模,實(shí)驗(yàn)5:軟件設(shè)計(jì)

第七章物理架構(gòu)建模,基于UML的統(tǒng)一建模過(guò)程——RUP,第八章編碼和語(yǔ)言選擇

104.30第九章:軟件測(cè)試:測(cè)試的基本概念,黑盒測(cè)試備注:5.1放長(zhǎng)假

115.08第九章:軟件測(cè)試:白盒測(cè)試,測(cè)試用例設(shè)計(jì);軟件測(cè)試:軟件的糾錯(cuò)實(shí)驗(yàn)6:編碼與調(diào)試程序

125.14第九章:軟件測(cè)試:多模塊程序的測(cè)試策略實(shí)驗(yàn)7:編碼與調(diào)試程序

5.15第九章:軟件測(cè)試:面向?qū)ο笙到y(tǒng)的測(cè)試,第十章軟件復(fù)用135.22第十一章軟件維護(hù),第十二章軟件項(xiàng)目計(jì)劃實(shí)驗(yàn)8:編碼與調(diào)試

145.28面向?qū)ο蠓治鲈O(shè)計(jì)演講競(jìng)賽實(shí)驗(yàn)9:軟件測(cè)試

5.29面向?qū)ο蠓治鲈O(shè)計(jì)演講競(jìng)賽156.05第十三章軟件工程管理,第十四章軟件質(zhì)量管理:從質(zhì)量保證到質(zhì)量認(rèn)證,質(zhì)量保證,軟件可靠性

166.11第十四章軟件質(zhì)量管理:程序正確性證明,CMM軟件能力成熟度模型,ISO9000國(guó)際標(biāo)準(zhǔn),軟件度量

6.12第十五章:軟件工程環(huán)境176.19總復(fù)習(xí)、答疑

合計(jì)68學(xué)時(shí)隨堂與課外結(jié)合

課程進(jìn)度安排周序日期講授主要內(nèi)容實(shí)踐教學(xué)內(nèi)容備注94.24第課程簡(jiǎn)介及教學(xué)目標(biāo)

“軟件工程”是計(jì)算機(jī)科學(xué)與技術(shù)、計(jì)算機(jī)軟件與理論、信息與計(jì)算科學(xué)及其相關(guān)專業(yè)的一門專業(yè)基礎(chǔ)課,它是軟件設(shè)計(jì)與開發(fā)以及各種計(jì)算機(jī)應(yīng)用系統(tǒng)開發(fā)的重要基礎(chǔ)。是本科培養(yǎng)目標(biāo)——軟件系統(tǒng)設(shè)計(jì)師和軟件開發(fā)工程師的必備知識(shí)。主要內(nèi)容包括軟件工程概述、可行性分析、需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、面向?qū)ο蠓治雠c設(shè)計(jì)、編碼、軟件質(zhì)量與質(zhì)量保證、項(xiàng)目計(jì)劃與管理等。課程的學(xué)習(xí)對(duì)提升同學(xué)們的能力、素質(zhì)、道德修養(yǎng)、團(tuán)隊(duì)精神等都具有非常重要的意義。

課程簡(jiǎn)介及教學(xué)目標(biāo)“軟件工程”是課程簡(jiǎn)介及教學(xué)目標(biāo)

在課程的學(xué)習(xí)和實(shí)踐中,同學(xué)們應(yīng)理解和掌握軟件工程中的軟件生命周期各階段的任務(wù)、過(guò)程、結(jié)構(gòu)化方法和工具;面向?qū)ο蠓椒▽W(xué)、面向?qū)ο蠓治觥⒃O(shè)計(jì)和實(shí)現(xiàn);軟件工程應(yīng)用的管理技術(shù)等。本課程的目的與任務(wù)是使同學(xué)們通過(guò)本課程的學(xué)習(xí),了解軟件項(xiàng)目開發(fā)和維護(hù)的一般過(guò)程,掌握軟件開發(fā)的傳統(tǒng)方法和最新方法,為今后更深入地學(xué)習(xí)和從事有關(guān)軟件工程實(shí)踐工作打下良好的理論基礎(chǔ)。

課程簡(jiǎn)介及教學(xué)目標(biāo)軟件開發(fā)與人才需求未來(lái)軟件開發(fā)的生產(chǎn)模式及對(duì)人才的要求現(xiàn)有模式:小作坊的、一人身兼多職、英雄式的軟件開發(fā)生產(chǎn)模式:大規(guī)模的軟件生產(chǎn),專業(yè)化、分工越來(lái)越細(xì),團(tuán)隊(duì)合作開發(fā)對(duì)人才的要求:除精通開發(fā)技術(shù)外,更需要軟件工程意識(shí)和團(tuán)隊(duì)合作精神軟件開發(fā)與人才需求未來(lái)軟件開發(fā)的生產(chǎn)模式及對(duì)人才的要求中國(guó)軟件產(chǎn)業(yè)中國(guó)軟件產(chǎn)業(yè)的途徑之一(軟件外包)印度軟件產(chǎn)業(yè)發(fā)展與軟件外包

中國(guó)向印度學(xué)習(xí)——發(fā)展軟件外包業(yè)務(wù)中國(guó)目前外包業(yè)務(wù)與市場(chǎng)分析

中國(guó)目前80%的外包業(yè)務(wù)來(lái)自日、韓等亞洲國(guó)家印度的外包業(yè)務(wù)主要來(lái)自于美國(guó)中國(guó)和印度的不同(文化、語(yǔ)言、軟件工程意識(shí))中國(guó)軟件產(chǎn)業(yè)中國(guó)軟件產(chǎn)業(yè)的途徑之一(軟件外包)軟件工程教育的定位我國(guó)軟件工程的專業(yè)教育與軟件人才的鏈之間的關(guān)系可描述為如下圖:軟件開發(fā)工程師架構(gòu)設(shè)計(jì)師產(chǎn)品經(jīng)理項(xiàng)目管理者系統(tǒng)分析師系統(tǒng)設(shè)計(jì)師程序員研究生教育本科教育大專教育中專教育軟件工程教育的定位我國(guó)軟件工程的專業(yè)教育與軟件人才的鏈之間的軟件工程教育的定位

觀點(diǎn):

不同的人才培養(yǎng)或者不同軟件開發(fā)的崗位對(duì)軟件工程的知識(shí)要求是不一樣的。我們?cè)趯W(xué)習(xí)軟件工程知識(shí)與選用教材時(shí),充分地考慮到這一因素,采取因材取舍的原則。不同的軟件工程教材,適用于不同層次的人員學(xué)習(xí),所以不同層次的人才選用不同的教材?!汉D霞~康信息系統(tǒng)有限公司崗位能力規(guī)定軟件工程教育的定位觀點(diǎn):1.程序員崗位能力規(guī)定錄用員工條件年齡范圍:20-25學(xué)歷要求:大專以上或中專以上并有計(jì)算機(jī)相關(guān)證書專業(yè)要求:計(jì)算機(jī)及相關(guān)專業(yè)工作經(jīng)歷要求:1.有從事軟件編程的實(shí)習(xí)經(jīng)歷3-6個(gè)月以上。2.通過(guò)公司內(nèi)部實(shí)習(xí)期。日語(yǔ)水平:1.相當(dāng)三級(jí)2.或者有4級(jí)證書3.或者進(jìn)公司時(shí)能理解日語(yǔ)仕樣書,熟悉日語(yǔ)環(huán)境技術(shù)水平:1.熟悉和掌握基本的數(shù)據(jù)庫(kù)2.熟悉和掌握2門開發(fā)語(yǔ)言3.能勝任項(xiàng)目中編程能力要求:1.具備較強(qiáng)的學(xué)習(xí)能力2.工作積極主動(dòng),有責(zé)任心,有良好的品質(zhì)意識(shí)崗位工作描述1.能按時(shí)按質(zhì)完成軟件項(xiàng)目中的編碼工作2.能按時(shí)按質(zhì)完成單體測(cè)試工作3.能制作符合要求的測(cè)試報(bào)告4.能認(rèn)真的參加項(xiàng)目?jī)?nèi)或部門、公司安排的培訓(xùn),并且能達(dá)到培訓(xùn)要求。5.每年的技術(shù)水平和日語(yǔ)水平考核有進(jìn)步。1.程序員崗位能力規(guī)定錄年齡范圍:學(xué)歷要求:專業(yè)要求:工2.軟件工程師崗位能力規(guī)定錄用員工條件年齡范圍:20-27學(xué)歷要求:大專以上專業(yè)要求:計(jì)算機(jī)及相關(guān)專業(yè)工作經(jīng)歷要求:1.有從事軟件編程一年以上的相關(guān)工作經(jīng)歷2.通過(guò)公司內(nèi)部試用期日語(yǔ)水平:1.相當(dāng)三級(jí)2.或者有4級(jí)證書3.能理解日語(yǔ)仕樣書,熟悉日語(yǔ)開發(fā)環(huán)境達(dá)一年技術(shù)水平:1.熟悉運(yùn)用SQLserver、Oracle數(shù)據(jù)庫(kù)2.熟悉運(yùn)用VC、C++或Java編程3.能帶一個(gè)實(shí)習(xí)生能力要求:1.具備較強(qiáng)的學(xué)習(xí)能力2.工作積極主動(dòng),有責(zé)任心,有良好的品質(zhì)意識(shí)3.具有團(tuán)隊(duì)協(xié)作精神及溝通能力崗位工作描述1.能按時(shí)按質(zhì)完成軟件項(xiàng)目中的編碼工作2.能完成詳細(xì)設(shè)計(jì)的任務(wù)3.能完成綜合測(cè)試任務(wù)4.能協(xié)助公司獨(dú)立擔(dān)當(dāng)帶好新手的任務(wù)2.軟件工程師崗位能力規(guī)定錄年齡范圍:20-27學(xué)歷要求3.高級(jí)軟件工程師崗位能力規(guī)定錄用員工條件年齡范圍:25歲以上學(xué)歷要求:本科以上或?qū)?撇⒂杏?jì)算機(jī)相關(guān)技術(shù)證書專業(yè)要求:計(jì)算機(jī)及相關(guān)專業(yè)工作經(jīng)歷要求:1.從事日本軟件編程的工作經(jīng)歷超過(guò)三年2.有在項(xiàng)目中擔(dān)任技術(shù)骨干的經(jīng)驗(yàn)至少一年3.通過(guò)公司內(nèi)部試用期。日語(yǔ)水平:1.相當(dāng)三級(jí)2.能理解日語(yǔ)仕樣書技術(shù)水平:1.精通運(yùn)用SQLserver、Oracle數(shù)據(jù)庫(kù)2.精通VC、C++或Java,同類技術(shù)運(yùn)用時(shí)間在三年以上3.熟悉各種計(jì)算機(jī)開發(fā)語(yǔ)言。能力要求:1.具備較強(qiáng)的學(xué)習(xí)能力2.工作積極主動(dòng),有責(zé)任心,有良好的品質(zhì)意識(shí)3.具有團(tuán)隊(duì)協(xié)作精神及溝通能力4.在項(xiàng)目組中有解決技術(shù)難題的能力或能起到項(xiàng)目組協(xié)理作用崗位工作描述1.能配合項(xiàng)目主管按時(shí)按質(zhì)完成項(xiàng)目任務(wù)。2.在項(xiàng)目組內(nèi)擔(dān)當(dāng)技術(shù)骨干作用或擔(dān)當(dāng)部門協(xié)理作用。3.首先理解項(xiàng)目中客戶規(guī)定的“工具”,并能輔導(dǎo)組員掌握,并在整個(gè)項(xiàng)目中擔(dān)當(dāng)指導(dǎo)工作。4.擔(dān)當(dāng)事業(yè)部?jī)?nèi)或公司安排的技術(shù)培訓(xùn)任務(wù)。5.能擔(dān)任詳細(xì)設(shè)計(jì)工作。3.高級(jí)軟件工程師崗位能力規(guī)定錄年齡范圍:學(xué)歷要求:本科4.項(xiàng)目主管崗位能力規(guī)定錄用員工條件年齡范圍:28歲以上學(xué)歷要求:本科以上或?qū)?撇⒂杏?jì)算機(jī)相關(guān)技術(shù)證書專業(yè)要求:計(jì)算機(jī)及相關(guān)專業(yè)工作經(jīng)歷要求:1.從事日本軟件編程的工作經(jīng)歷超過(guò)三年2.有項(xiàng)目主管、組長(zhǎng)經(jīng)歷兩年以上3.通過(guò)公司內(nèi)部試用期日語(yǔ)水平:1.相當(dāng)一級(jí)2.二級(jí)以上證書技術(shù)水平:1.熟悉各類數(shù)據(jù)庫(kù)2.熟悉各種計(jì)算機(jī)開發(fā)語(yǔ)言3.熟悉特定的開發(fā)工具能力要求:1.具備較強(qiáng)的學(xué)習(xí)能力,具有進(jìn)取心2.工作積極主動(dòng),有責(zé)任心,有良好的品質(zhì)意識(shí)3.具有上下溝通的能力4.具有項(xiàng)目組與項(xiàng)目組之間的合作意識(shí)和整體意識(shí)。崗位工作描述1.項(xiàng)目開始前的準(zhǔn)備,培訓(xùn)計(jì)劃制定、環(huán)境構(gòu)成、體制及人員安排2.項(xiàng)目開發(fā)標(biāo)準(zhǔn)的實(shí)施3.整個(gè)項(xiàng)目過(guò)程的控制,進(jìn)度管理4.項(xiàng)目QA管理,負(fù)責(zé)項(xiàng)目總體測(cè)試工作5.項(xiàng)目后期的文檔整理,維護(hù)對(duì)應(yīng)計(jì)劃及安排,項(xiàng)目總結(jié),項(xiàng)目成員能力評(píng)價(jià)6.保密計(jì)劃和質(zhì)量計(jì)劃等(特殊要求的項(xiàng)目)的制定、實(shí)施7.組織解決技術(shù)方面重大問(wèn)題和及時(shí)應(yīng)對(duì)的處理。4.項(xiàng)目主管崗位能力規(guī)定錄年齡范圍:學(xué)歷要求:本科以上或5.項(xiàng)目經(jīng)理崗位能力規(guī)定錄用員工條件年齡范圍:

28歲以上學(xué)歷要求:本科以上或?qū)?撇⒂杏?jì)算機(jī)相關(guān)技術(shù)證書專業(yè)要求:計(jì)算機(jī)及相關(guān)專業(yè)工作經(jīng)歷要求:1.有項(xiàng)目經(jīng)理經(jīng)歷兩年以上2.同時(shí)有日本工作經(jīng)驗(yàn)一年以上3.通過(guò)公司內(nèi)部試用期日語(yǔ)水平:1.日語(yǔ)一級(jí)技術(shù)水平:1.熟悉各類數(shù)據(jù)庫(kù)2.熟悉各種計(jì)算機(jī)開發(fā)語(yǔ)言3.熟悉特定的開發(fā)工具能力要求:1.具備較強(qiáng)的學(xué)習(xí)能力,具有進(jìn)取心2.工作積極主動(dòng),有責(zé)任心,有良好的品質(zhì)意識(shí)3.具有上下溝通的能力4.具有項(xiàng)目組與項(xiàng)目組之間的合作意識(shí)和整體意識(shí)5.能靈活安排好項(xiàng)目與項(xiàng)目之間的銜接及人員調(diào)度崗位工作描述1.項(xiàng)目開始前的準(zhǔn)備,培訓(xùn)計(jì)劃制定、環(huán)境構(gòu)成、體制及人員安排2.項(xiàng)目開發(fā)標(biāo)準(zhǔn)的實(shí)施3.整個(gè)項(xiàng)目過(guò)程的控制,進(jìn)度管理4.維護(hù)對(duì)應(yīng)計(jì)劃幾安排,項(xiàng)目總結(jié),項(xiàng)目成員能力評(píng)價(jià)5.保密計(jì)劃和質(zhì)量計(jì)劃等(特殊要求的項(xiàng)目)的制定、實(shí)施6.組織解決技術(shù)方面重大問(wèn)題和及時(shí)應(yīng)對(duì)的處理7.能合理安排項(xiàng)目與項(xiàng)目之間的進(jìn)度5.項(xiàng)目經(jīng)理崗位能力規(guī)定錄年齡范圍:學(xué)歷要求:本科以上或課程學(xué)習(xí)的內(nèi)容與形式理論內(nèi)容:基本原理、方法和技術(shù)形式:講授、自學(xué)、討論實(shí)踐內(nèi)容:構(gòu)造一個(gè)應(yīng)用系統(tǒng)(包括分析、設(shè)計(jì)、編碼、測(cè)試)形式:分組合作、分階段形成文檔、編碼、集成課程學(xué)習(xí)的內(nèi)容與形式軟件工程的主要內(nèi)容軟件工程的基本概念軟件開發(fā)模型軟件開發(fā)各階段的任務(wù)、技術(shù)、方法傳統(tǒng)方法、面向?qū)ο蠓椒ㄜ浖こ坦芾碥浖|(zhì)量保證軟件工程環(huán)境軟件工程的主要內(nèi)容軟件工程的基本概念第一章緒論1.1軟件與軟件危機(jī)1.2軟件工程學(xué)的范疇1.3傳統(tǒng)軟件工程和面向?qū)ο筌浖こ?.4軟件工程的應(yīng)用第一章緒論1.1軟件與軟件危機(jī)軟件是信息化的核心,國(guó)民經(jīng)濟(jì)、國(guó)防建設(shè)、社會(huì)發(fā)展及人民生活都離不開軟件。軟件產(chǎn)業(yè)是增長(zhǎng)最快的朝陽(yáng)產(chǎn)業(yè),是高投入/高產(chǎn)出、無(wú)污染、低能耗的綠色產(chǎn)業(yè)。軟件產(chǎn)業(yè)關(guān)系到國(guó)家經(jīng)濟(jì)和文化安全,體現(xiàn)了國(guó)家綜合實(shí)力,是決定21世紀(jì)國(guó)際競(jìng)爭(zhēng)地位的戰(zhàn)略性產(chǎn)業(yè)。軟件工程(SoftwareEngineering)是在克服60年代末所出現(xiàn)“軟件危機(jī)”的過(guò)程中逐漸形成與發(fā)展的。軟件工程是一門指導(dǎo)計(jì)算機(jī)軟件系統(tǒng)開發(fā)和維護(hù)的工程學(xué)科,是一門新興的邊緣學(xué)科,主要研究如何應(yīng)用軟件開發(fā)的科學(xué)理論和工程技術(shù)來(lái)指導(dǎo)大型軟件系統(tǒng)的開發(fā)。1.1軟件與軟件危機(jī)軟件是信息1.1軟件與軟件危機(jī)

軟件工程的發(fā)展已經(jīng)歷了三個(gè)重要階段:3、第三代軟件工程—構(gòu)件工程(軟件復(fù)用)2、第二代軟件工程—對(duì)象工程1、第一代軟件工程—傳統(tǒng)的軟件工程注:軟件工程發(fā)展階段論沒有統(tǒng)一定論60年代末到70年代為了克服“軟件危機(jī)”(Softwarecrisis)提出“軟件工程”的名詞,將軟件開發(fā)納入工程化的軌道,基本形成軟件工程的概念、框架、技術(shù)和方法。稱為傳統(tǒng)的軟件工程。1.1軟件與軟件危機(jī)軟件工程的發(fā)展已經(jīng)歷了三個(gè)重要階段1.1軟件與軟件危機(jī)軟件工程的發(fā)展已經(jīng)歷了三個(gè)重要階段:3、第三代軟件工程—構(gòu)件工程(軟件復(fù)用)2、第二代軟件工程—對(duì)象工程1、第一代軟件工程—傳統(tǒng)的軟件工程注:軟件工程發(fā)展階段論沒有統(tǒng)一定論80年代中到90年代,面向?qū)ο蟮姆椒ㄅc技術(shù)得到發(fā)展,研究的重點(diǎn)轉(zhuǎn)移到面向?qū)ο蟮姆治雠c設(shè)計(jì),演化為一種完整的軟件開發(fā)方法和系統(tǒng)的技術(shù)體系,稱為對(duì)象工程。1.1軟件與軟件危機(jī)軟件工程的發(fā)展已經(jīng)歷了三個(gè)重要階段:31.1軟件與軟件危機(jī)軟件工程的發(fā)展已經(jīng)歷了三個(gè)重要階段:3、第三代軟件工程—構(gòu)件工程(軟件復(fù)用)2、第二代軟件工程—對(duì)象工程1、第一代軟件工程—傳統(tǒng)的軟件工程注:軟件工程發(fā)展階段論沒有統(tǒng)一定論

90起年代,基于構(gòu)件(Component)的開發(fā)方法取得重要進(jìn)展,軟件系統(tǒng)的開發(fā)可通過(guò)使用現(xiàn)成的可復(fù)用構(gòu)件組裝完成,而無(wú)需從頭開始構(gòu)造,以此達(dá)到提高效率和質(zhì)量,降低成本的目的。稱為構(gòu)件工程。1.1軟件與軟件危機(jī)軟件工程的發(fā)展已經(jīng)歷了三個(gè)重要階段:3軟件軟件就是程序?×一定要糾正軟件就是程序,開發(fā)軟件就是編寫程序的錯(cuò)誤觀念!

軟件定義:軟件是能夠完成預(yù)定功能和性能的可執(zhí)行的計(jì)算機(jī)程序和使程序正常執(zhí)行所需要的數(shù)據(jù),加上描述軟件開發(fā)過(guò)程及其管理、程序的操作和使用的有關(guān)文檔。程序的構(gòu)成:面向過(guò)程的程序=算法+數(shù)據(jù)結(jié)構(gòu)面向?qū)ο蟮某绦?對(duì)象+消息面向構(gòu)件的程序=構(gòu)件+框架

軟件軟件就是程序?×一定要糾正軟件就是程序,開發(fā)軟件就是編寫軟件軟件的簡(jiǎn)要定義:

軟件=程序+數(shù)據(jù)+文檔程序:按事先設(shè)計(jì)的功能和性能需求執(zhí)行的指令序列數(shù)據(jù):是程序能正常操縱信息的數(shù)據(jù)結(jié)構(gòu)文檔:與程序開發(fā)及過(guò)程管理、維護(hù)和使用有關(guān)的圖文材料程序、軟件與軟件產(chǎn)品:獨(dú)唱—>>小合唱—>>合唱—>>萬(wàn)人大合唱|||簡(jiǎn)單程序較復(fù)雜程序軟件軟件軟件的簡(jiǎn)要定義:軟件=程序+數(shù)據(jù)+文檔程序、軟件與軟件軟件規(guī)模越來(lái)越大Windows95有1000萬(wàn)行代碼Windows2000有5000萬(wàn)行代碼Exchange2000和Windows2000開發(fā)人員結(jié)構(gòu)Exchange2000Windows2000項(xiàng)目經(jīng)理25人約250人開發(fā)人員140人約1700人測(cè)試人員350人約3200人軟件規(guī)模越來(lái)越大Windows95有1000萬(wàn)行軟件開發(fā)的發(fā)展過(guò)程計(jì)算機(jī)應(yīng)用發(fā)展軟件數(shù)量多規(guī)模大軟件成本高質(zhì)量低個(gè)體化軟件開發(fā)方法軟件維護(hù)困難軟件危機(jī)軟件工程軟件開發(fā)的發(fā)展過(guò)程計(jì)算機(jī)應(yīng)用發(fā)展軟件數(shù)量多規(guī)模大軟件成本高質(zhì)軟件的特征軟件是一種邏輯實(shí)體,不是物理實(shí)體,他具有抽象性軟件不會(huì)磨損和老化軟件主要是研制,生產(chǎn)是簡(jiǎn)單的拷貝軟件成本昂貴,其開發(fā)方式至今尚未擺脫手工方式軟件維護(hù)不同于硬件維修,易產(chǎn)生新的問(wèn)題軟件具有“復(fù)雜性”,其開發(fā)和運(yùn)行常受到計(jì)算機(jī)系統(tǒng)的限制,即受環(huán)境影響大軟件的特征軟件是一種邏輯實(shí)體,不是物理實(shí)體,他具有抽象性軟件的特征失效率時(shí)間硬件失效率曲線失效率時(shí)間實(shí)際曲線理想曲線軟件失效率曲線軟、硬件失效情況的對(duì)比

硬件失效率曲線,是一U型曲線(即浴盆曲線)。軟件失效率曲線,它沒有U型曲線的右半翼。因?yàn)檐浖淮嬖谀p和老化問(wèn)題,然而存在退化問(wèn)題。軟件的特征失效率時(shí)間硬件失效率曲線失效率時(shí)間軟件危機(jī)定義計(jì)算機(jī)軟件的開發(fā)和維護(hù)過(guò)程所遇到的一系列嚴(yán)重問(wèn)題表現(xiàn)對(duì)軟件開發(fā)成本和進(jìn)度的估算很不準(zhǔn)確用戶很不滿意質(zhì)量很不可靠沒有適當(dāng)?shù)奈臋n軟件成本比重上升供不應(yīng)求:軟件開發(fā)生產(chǎn)率跟不上計(jì)算機(jī)應(yīng)用迅速深入的趨勢(shì)軟件危機(jī)定義軟件危機(jī)例證

IBM公司的OS/360,共約100萬(wàn)條指令,花費(fèi)了5000個(gè)人年;經(jīng)費(fèi)達(dá)數(shù)億美圓,而結(jié)果卻令人沮喪,錯(cuò)誤多達(dá)2000個(gè)以上,系統(tǒng)根本無(wú)法正常運(yùn)行。OS/360系統(tǒng)的負(fù)責(zé)人Brooks這樣描述開發(fā)過(guò)程的困難和混亂:“…像巨獸在泥潭中作垂死掙扎,掙扎得越猛,泥漿就沾得越多,最后沒有一個(gè)野獸能夠逃脫淹沒在泥潭中的命運(yùn)?!?/p>

1963年美國(guó)飛往火星的火箭爆炸,造成1000萬(wàn)美元的損失。原因是FORTRAN程序:

DO5I=1,3

誤寫為:DO5I=1.

3

1967年蘇聯(lián)“聯(lián)盟一號(hào)”載人宇宙飛船在返航時(shí),由于軟件忽略一個(gè)小數(shù)點(diǎn),在進(jìn)入大氣層時(shí)因打不開降落傘而燒毀。軟件危機(jī)例證IBM公司的OS/360,共約100萬(wàn)條硬件/軟件成本變化趨勢(shì)

硬件

軟件

100%0%195519701985硬件/軟件成本變化趨勢(shì)100%0%1955197019軟件技術(shù)進(jìn)步落后于需求增長(zhǎng)軟件技術(shù)進(jìn)步落后于需求增長(zhǎng)軟件危機(jī)原因客觀:軟件本身特點(diǎn)邏輯部件規(guī)模龐大主觀:不正確的開發(fā)方法忽視需求分析錯(cuò)誤認(rèn)為:軟件開發(fā)=程序編寫輕視軟件維護(hù)軟件危機(jī)原因軟件危機(jī)解決途徑組織管理系統(tǒng)工程項(xiàng)目管理方法技術(shù)措施軟件開發(fā)技術(shù)與方法軟件工具軟件危機(jī)解決途徑1.2軟件工程學(xué)的范疇軟件工程學(xué)指導(dǎo)計(jì)算機(jī)軟件開發(fā)和維護(hù)的工程學(xué)科工程管理+開發(fā)技術(shù)1983年B.W.Boehm提出了軟件工程的七條基本原理:用分階段的是的生存周期計(jì)劃嚴(yán)格管理;堅(jiān)持進(jìn)行階段評(píng)審;嚴(yán)格實(shí)施的產(chǎn)品控制;采用現(xiàn)代程序技術(shù);結(jié)果應(yīng)能清楚地審查;開發(fā)小組的成員應(yīng)該少而精;承認(rèn)不斷改進(jìn)軟件工程的必要性。1.2軟件工程學(xué)的范疇軟件工程學(xué)1.2軟件工程學(xué)的范疇于1968年在聯(lián)邦德國(guó)召開的北大西洋公約軟件可靠性會(huì)議(NATO)上,首次提出“軟件工程”的概念,提出了在軟件生產(chǎn)中采用工程化的方法,采用一系列科學(xué)的、現(xiàn)代化的方法技術(shù)來(lái)開發(fā)軟件。這種工程化的思想貫穿到軟件開發(fā)和維護(hù)的全過(guò)程。了解有關(guān)軟件、軟件生存期及軟件工程過(guò)程等重要的概念,對(duì)掌握、學(xué)習(xí)和應(yīng)用軟件工程的方法、技術(shù)等對(duì)于計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)的學(xué)生都是非常必要的。1.2軟件工程學(xué)的范疇于1968年在聯(lián)邦德國(guó)召開的北大西洋1.2軟件工程學(xué)的范疇軟件工程學(xué)軟件開發(fā)技術(shù)軟件工程管理軟件開發(fā)方法學(xué)軟件工具軟件工程環(huán)境軟件管理學(xué)軟件經(jīng)濟(jì)學(xué)軟件度量學(xué)1.2軟件工程學(xué)的范疇軟件工程學(xué)軟件開發(fā)技術(shù)軟件工程管理軟軟件工程層次圖

該圖展現(xiàn)了軟件工程研究的內(nèi)容及關(guān)注的焦點(diǎn)。

軟件工程層次圖

1.3傳統(tǒng)軟件工程和面向?qū)ο筌浖こ逃捎谲浖_發(fā)方法可分為三大類:面向過(guò)程的開發(fā)方法(傳統(tǒng)的)面向?qū)ο蟮拈_發(fā)方法基于構(gòu)件的開發(fā)方法相應(yīng)地軟件工程方法也分為三大類:面向過(guò)程的軟件工程(傳統(tǒng)的)面向?qū)ο蟮能浖こ袒跇?gòu)件的軟件工程1.3傳統(tǒng)軟件工程和面向?qū)ο筌浖こ逃捎谲浖_發(fā)方法可分傳統(tǒng)軟件工程傳統(tǒng)的軟件工也稱為面向過(guò)程的軟件開發(fā)方法,這類開發(fā)方法都典型地包含了分析、設(shè)計(jì)、實(shí)現(xiàn)、確認(rèn)(測(cè)試)、演化(維護(hù))等活動(dòng)。典型的傳統(tǒng)軟件開發(fā)方法有:Jackson方法、結(jié)構(gòu)化開發(fā)方法、原型化方法、HIPO法、IDEF法等。傳統(tǒng)軟件工程傳統(tǒng)的軟件工也稱為面向過(guò)程的軟件開發(fā)方法,這傳統(tǒng)軟件工程一、結(jié)構(gòu)化開發(fā)方法(StructuredDevelopingMethod)是一種面向數(shù)據(jù)流的開發(fā)方法,是現(xiàn)有的軟件開發(fā)方法中最成熟,應(yīng)用最廣泛的方法,主要特點(diǎn)是快速,自然和方便。結(jié)構(gòu)化方法總的指導(dǎo)思想是自頂向下、逐步求精,以數(shù)據(jù)流,數(shù)據(jù)的封閉性準(zhǔn)則來(lái)逐層分解的,它的基本原則是功能的分解與抽象。

結(jié)構(gòu)化方法強(qiáng)調(diào)結(jié)構(gòu)的合理性。提出了一組提高軟件結(jié)構(gòu)質(zhì)量的準(zhǔn)則,如功能的分解與抽象、模塊獨(dú)立性、信息屏蔽等。傳統(tǒng)軟件工程一、結(jié)構(gòu)化開發(fā)方法(StructuredDev傳統(tǒng)軟件工程

JACKSON方法是一種面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法。強(qiáng)調(diào)程序結(jié)構(gòu)與問(wèn)題結(jié)構(gòu)相對(duì)應(yīng)。

JACKSON方法由兩部分構(gòu)成:1、JSP(JacksonstructuredProgramming)(杰克遜結(jié)構(gòu)程序設(shè)計(jì))2、JSD(JacksonSystemDevelopment)二、Jackson方法傳統(tǒng)軟件工程JACKSON方法是一種面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方

1.3傳統(tǒng)軟件工程和面向?qū)ο筌浖こ倘⒃突椒ǎ≒rototypingMethod)

原型是軟件開發(fā)過(guò)程中,軟件的一個(gè)早期可運(yùn)行的版本,它反映了最終系統(tǒng)的部分重要特性。

原型化方法的基本思想是花費(fèi)少量代價(jià)建立一個(gè)可運(yùn)行的系統(tǒng),使用戶及早獲得學(xué)習(xí)的機(jī)會(huì),原型化方法又稱速成原型法(RapidPrototyping)。強(qiáng)調(diào)的是軟件開發(fā)人員與用戶的不斷交互,通過(guò)原型的演進(jìn)不斷適應(yīng)用戶任務(wù)改變的需求。將維護(hù)和修改階段的工作盡早進(jìn)行,使用戶驗(yàn)收提前,從而使軟件產(chǎn)品更加適用。1.3傳統(tǒng)軟件工程和面向?qū)ο筌浖こ倘?、原型化方法(Pr傳統(tǒng)軟件工程四、HIPO法(HierarchyPlusInput—Process—Output)

HIPO法(HierarchyPlusInput—Process—Output),按功能層次結(jié)構(gòu)分析法,74年由IBM公司推出的軟件分析及設(shè)計(jì)方法,又稱HIPO圖。HIPO圖是以功能、功能完備性準(zhǔn)則逐層分解的。由直觀目錄表(H圖),概要HIPO圖,詳細(xì)IPO圖三部分組成。傳統(tǒng)軟件工程四、HIPO法(HierarchyPlusI面向?qū)ο筌浖こ蘋OSD(Object-OrientedSoftwareDevelopment)法這是80年代推出的一種全新的軟件開發(fā)方法。非常實(shí)用而強(qiáng)有力,被譽(yù)為90年代軟件的核心技術(shù)之一。

其基本思想是:對(duì)問(wèn)題領(lǐng)域進(jìn)行自然的分割,以更接近人類通常思維的方式建立問(wèn)題領(lǐng)域的模型,以便對(duì)客觀的信息實(shí)體進(jìn)行結(jié)構(gòu)和行為的模擬,從而使設(shè)計(jì)的軟件更直接地表現(xiàn)問(wèn)題的求解過(guò)程。面向?qū)ο蟮拈_發(fā)方法以對(duì)象作為最基本的元素,是分析和解決問(wèn)題的核心。面向?qū)ο筌浖こ蘋OSD(Object-Orient軟件復(fù)用技術(shù)(基于構(gòu)件的軟件工程)“軟件重用”或“軟件復(fù)用”(SoftwareReuse)是指將已有的軟件成分用于構(gòu)造新的軟件系統(tǒng)。該技術(shù)是提高軟件生產(chǎn)率和質(zhì)量,降低成本的有效方法。一、復(fù)用方式復(fù)用程序:包括目標(biāo)代碼和源代碼的復(fù)用,可通過(guò)連接(Link)、綁定(Binding)、包含(include)等功能支持及對(duì)象鏈接及嵌入(OLE)技術(shù)實(shí)現(xiàn)。復(fù)用分析

比設(shè)計(jì)復(fù)用級(jí)別更高,實(shí)現(xiàn)方式與設(shè)計(jì)復(fù)用類似。復(fù)用設(shè)計(jì):設(shè)計(jì)結(jié)果比源程序的抽象級(jí)別高,因此復(fù)用受環(huán)境影響小。可以通過(guò)從現(xiàn)有系統(tǒng)中提取全部或者不同粒度的設(shè)計(jì)構(gòu)件,或者獨(dú)立于具體應(yīng)用開發(fā)設(shè)計(jì)構(gòu)件。復(fù)用結(jié)構(gòu)

復(fù)用模塊結(jié)構(gòu)或者數(shù)據(jù)結(jié)構(gòu)。軟件復(fù)用技術(shù)(基于構(gòu)件的軟件工程)“軟件重用”或“軟件軟件復(fù)用技術(shù)(基于構(gòu)件的軟件工程)二、可復(fù)用的構(gòu)件

構(gòu)件是指可以被明確標(biāo)識(shí)的軟件制品,可以是軟件開發(fā)不同階段的產(chǎn)品。

可復(fù)用構(gòu)件是指可被其它系統(tǒng)復(fù)用,用于構(gòu)成新系統(tǒng)的構(gòu)件??蓮?fù)用構(gòu)件的特性:1.獨(dú)立性解決相對(duì)獨(dú)立的問(wèn)題,與外界聯(lián)系盡量少。2.完整性既要包括完整的解決方案,還定義相應(yīng)操作。3.通用性在同類應(yīng)用中具有一般性。4.可標(biāo)識(shí)性通過(guò)合適的命名,構(gòu)件所解決的問(wèn)題是可標(biāo)識(shí)的。5.可適應(yīng)性適應(yīng)環(huán)境變化。6.可靠性對(duì)各個(gè)使用它的系統(tǒng)都具有高的可靠性。軟件復(fù)用技術(shù)(基于構(gòu)件的軟件工程)二、可復(fù)用的構(gòu)件可復(fù)用構(gòu)件兩種程序設(shè)計(jì)方法程序設(shè)計(jì)的兩次飛躍程序設(shè)計(jì)從主要依賴于程序員個(gè)人的自由活動(dòng)變成有章可循的一門學(xué)科——結(jié)構(gòu)化程序設(shè)計(jì)面向過(guò)程的程序=算法+數(shù)據(jù)結(jié)構(gòu)結(jié)構(gòu)化程序設(shè)計(jì)到面向?qū)ο蟪绦蛟O(shè)計(jì),是程序設(shè)計(jì)方法的又一次飛躍面向?qū)ο蟮某绦?對(duì)象+消息兩種程序設(shè)計(jì)方法程序設(shè)計(jì)的兩次飛躍面向過(guò)程和面向?qū)ο蟮木幋a存款取款利息結(jié)算帳戶余額帳戶余額利息結(jié)算存款取款例:VB的對(duì)象Form1下…面向過(guò)程和面向?qū)ο蟮木幋a存款取款利息結(jié)算帳戶余額帳戶余額利息兩類軟件工程方法傳統(tǒng)軟件工程軟件分析→總體設(shè)計(jì)→詳細(xì)設(shè)計(jì)→面向過(guò)程的編碼→測(cè)試系統(tǒng)設(shè)計(jì)面向?qū)ο筌浖こ誊浖治雠c對(duì)象抽取→對(duì)象詳細(xì)設(shè)計(jì)→面向?qū)ο蟮木幋a→測(cè)試建立模型運(yùn)行與維護(hù)兩類軟件工程方法傳統(tǒng)軟件工程系統(tǒng)設(shè)計(jì)面向?qū)ο筌浖こ探⒛P兔嫦驅(qū)ο蟮南到y(tǒng)分析與設(shè)計(jì)方法面向?qū)ο蟮南到y(tǒng)分析與設(shè)計(jì)方法1.4軟件工程的應(yīng)用一、軟件的分類1、按照軟件功能劃分系統(tǒng)軟件—如操作系統(tǒng)、設(shè)備驅(qū)動(dòng)程序等。支撐軟件(實(shí)用軟件)—協(xié)助用戶開發(fā)的工具軟件,如編輯程序、程序庫(kù)、圖形軟件包等。應(yīng)用軟件—如工程與科學(xué)計(jì)算軟件、CAD/CAM軟件、CAI軟件、信息管理系統(tǒng)等。1.4軟件工程的應(yīng)用一、軟件的分類1、按照軟件功能劃分1.4軟件工程的應(yīng)用2、按照軟件規(guī)模劃分類別參加人數(shù)研制期限產(chǎn)品規(guī)模(源代碼行)微型11–4周0.5K小型11–6月1K–2K中型2-51–2年5–50K大型5-202–3年50–500K甚大型100-10004–5年1M極大型2000-50005–10年1M–10M3、按照軟件工作方式劃分實(shí)時(shí)處理軟件 交互式軟件 批處理軟件4、按照軟件服務(wù)對(duì)象的范圍劃分項(xiàng)目軟件—由客戶委托開發(fā)的軟件。產(chǎn)品軟件—由軟件開發(fā)機(jī)構(gòu)開發(fā),提供給市場(chǎng)的。此外,還可以按照軟件使用的頻度或軟件失效的影響進(jìn)行劃分。1.4軟件工程的應(yīng)用2、按照軟件規(guī)模劃分類別參加人數(shù)研1.4軟件工程的應(yīng)用軟件工程指導(dǎo)中小型軟件軟件工程指導(dǎo)大型軟件軟件工程的成就軟件工程的局限1.4軟件工程的應(yīng)用軟件工程指導(dǎo)中小型軟件軟件工程的最新發(fā)展動(dòng)向軟件工程研究的最新動(dòng)向軟件形式語(yǔ)言的研究構(gòu)件技術(shù)質(zhì)量管理提高工作效率計(jì)算機(jī)輔助軟件工程環(huán)境工具箱軟件工具模型軟件工程的最新發(fā)展動(dòng)向軟件工程研究的最新動(dòng)向提高工作效率計(jì)算1.5應(yīng)正確認(rèn)識(shí)和處理好的幾個(gè)關(guān)系1.傳統(tǒng)軟件工程與現(xiàn)代軟件工程的關(guān)系雖然兩類工程規(guī)范存在很大的差異,但他們還有不少共同點(diǎn),許多在傳統(tǒng)軟件工程中總結(jié)的指導(dǎo)思想在面向?qū)ο筌浖こ讨腥跃哂兄笇?dǎo)意義。有些在傳統(tǒng)軟件工程中行之有效的分析和設(shè)計(jì)方法(如模塊化設(shè)計(jì)、抽象與細(xì)化等)在面向?qū)ο笾欣^續(xù)適用,有些方法(如分析與設(shè)計(jì)建模)在面向?qū)ο笾羞€有發(fā)展。并且,面向?qū)ο筌浖こ踢€有所發(fā)展,在面向?qū)ο筌浖こ腾呌诔墒斓耐瑫r(shí),新一代軟件工程——“構(gòu)件工程”正在逐步擴(kuò)大其應(yīng)用范圍。1.5應(yīng)正確認(rèn)識(shí)和處理好的幾個(gè)關(guān)系1.傳1.5應(yīng)正確認(rèn)識(shí)和處理好的幾個(gè)關(guān)系2.軟件工程原理與軟件工程方法的關(guān)系軟件工程總結(jié)了大量的精辟原理(清晰第一,效率第二;設(shè)計(jì)優(yōu)先編碼;使程序結(jié)構(gòu)適合問(wèn)題結(jié)構(gòu);開發(fā)伴隨復(fù)用,開發(fā)伴隨復(fù)用等)和科學(xué)方法(結(jié)構(gòu)化分析;結(jié)構(gòu)化設(shè)計(jì);OO分析;OO設(shè)計(jì);UML語(yǔ)言;白盒測(cè)試和黑盒測(cè)試等)。要注意原理(指導(dǎo))和方法(應(yīng)用)的結(jié)合。1.5應(yīng)正確認(rèn)識(shí)和處理好的幾個(gè)關(guān)系2.軟件工程原1.5應(yīng)正確認(rèn)識(shí)和處理好的幾個(gè)關(guān)系3.軟件工程技術(shù)與軟件工程管理的關(guān)系軟件工程技術(shù)與管理是軟件開發(fā)的兩個(gè)方面,沒有管理,再好的技術(shù)都不能充分發(fā)揮作用。管理離不開度量,“靠度量來(lái)管理”已經(jīng)成為現(xiàn)代管理的一條重要原則。軟件度量學(xué)和軟件經(jīng)濟(jì)學(xué)是該原則在軟件工程中的具體體現(xiàn)。1.5應(yīng)正確認(rèn)識(shí)和處理好的幾個(gè)關(guān)系3.軟件1.5應(yīng)正確認(rèn)識(shí)和處理好的幾個(gè)關(guān)系4.形式化方法與非形式化方法的關(guān)系形式化方法是軟件工程的高級(jí)研究課題之一,是一種基于數(shù)學(xué)的開發(fā)方法,它采用數(shù)學(xué)方法來(lái)描述系統(tǒng)的性質(zhì)。非形式化方法主要用圖、表、文本、符號(hào)等來(lái)描述系統(tǒng)模型。1.5應(yīng)正確認(rèn)識(shí)和處理好的幾個(gè)關(guān)系4.形1.5應(yīng)正確認(rèn)識(shí)和處理好的幾個(gè)關(guān)系5.小程序設(shè)計(jì)與大程序設(shè)計(jì)的關(guān)系不論大小軟件,都應(yīng)使用軟件工程的原理方法來(lái)指導(dǎo)開發(fā),只有學(xué)會(huì)有效地編寫小程序,才可能有效地編寫大程序。1.5應(yīng)正確認(rèn)識(shí)和處理好的幾個(gè)關(guān)系5.小程序作業(yè)習(xí)題P13~.5.1.軟件危機(jī)的表現(xiàn):軟件復(fù)雜性的增長(zhǎng)比軟件規(guī)模的增長(zhǎng)要快得多,成非線性增長(zhǎng)。使得開發(fā)費(fèi)用超出預(yù)算,完成時(shí)間嚴(yán)重超期,可靠性下降,質(zhì)量保證越來(lái)越困難;計(jì)算機(jī)系統(tǒng)軟件成本占整個(gè)系統(tǒng)的絕大部分。質(zhì)量的下降對(duì)計(jì)算機(jī)應(yīng)用的繼續(xù)擴(kuò)大構(gòu)成巨大的威脅。

軟件危機(jī)的原因:軟件維護(hù)費(fèi)用的急劇上升,直接威脅計(jì)算機(jī)應(yīng)用的擴(kuò)大;軟件生產(chǎn)技術(shù)進(jìn)步緩慢,加劇了軟件危機(jī)。2.采用工程化的原理和方法對(duì)軟件進(jìn)行計(jì)劃、開發(fā)和維護(hù)。這樣做的目的是按預(yù)期的進(jìn)度和經(jīng)費(fèi)完成軟件生產(chǎn)計(jì)劃,同時(shí)提高軟件的生產(chǎn)率和可靠性。早期的程序設(shè)計(jì)基于個(gè)人活動(dòng)形式,各行其是,無(wú)統(tǒng)一的方法可言。4…..5.方法與工具相結(jié)合,再加上配套的軟硬件支持就形成環(huán)境。….作業(yè)習(xí)軟件工程(第二版)

齊治昌、譚慶平、寧洪編著

高等教育出版社

主講:陳明銳教授★省級(jí)精品課程★軟件工程(第二版)

齊治昌、譚慶平、寧洪編著

62老師聯(lián)系方式陳明銳,信息學(xué)院副院長(zhǎng)辦公室(309房)辦公電話:66279275,手機(jī)/p>

提交作業(yè)全部用附件,文件名為:學(xué)號(hào)+姓名+加章次例如文件名:20060724133陳好五.DOC表示陳好的第五章作業(yè)!課后有問(wèn)題最好用電子郵件。電子郵件:mrchen@

老師聯(lián)系方式陳明銳,信息學(xué)院副院長(zhǎng)辦公室(309房)課程進(jìn)度安排分析與設(shè)計(jì)課堂演講競(jìng)賽,請(qǐng)同學(xué)們?cè)诘?周前分好組并把分組名單發(fā)給老師。分組要求5~7人一組,能力強(qiáng)弱結(jié)合,分工合作,發(fā)揚(yáng)團(tuán)隊(duì)合作精神。最終形成課程設(shè)計(jì)提交!

周序日期講授主要內(nèi)容實(shí)踐教學(xué)內(nèi)容備注12.27第一章緒論:軟件與軟件危機(jī),軟件工程學(xué)的范疇;傳統(tǒng)軟件工程和面向?qū)ο筌浖こ?,軟件工程的?yīng)用23.05第二章軟件開發(fā)模型:軟件生存周期,傳統(tǒng)軟件開發(fā)模型,軟件演化模型3.06第二章軟件開發(fā)模型:面向?qū)ο箝_發(fā)模型,形式化方法模型,開發(fā)模型選用實(shí)例33.13第三章軟件需求分析:需求分析的任務(wù)與步驟,需求獲取的常用方法;分析建模,軟件需求說(shuō)明43.19第三章軟件需求分析:結(jié)構(gòu)化分析方法實(shí)驗(yàn)1:選題(1學(xué)時(shí))3.20第三章軟件需求分析:面向?qū)ο蠓治龇椒?3.27第四章軟件設(shè)計(jì)概述:軟件設(shè)計(jì)的任務(wù),軟件設(shè)計(jì)的基本概念;模塊化設(shè)計(jì),其他設(shè)計(jì)問(wèn)題的處理,設(shè)計(jì)文檔及其復(fù)審實(shí)驗(yàn)2:可行性分析64.02第五章傳統(tǒng)的設(shè)計(jì)方法:概述,結(jié)構(gòu)化設(shè)計(jì)方法、過(guò)程設(shè)計(jì)實(shí)驗(yàn)3:需求分析4.03第六章面向?qū)ο笤O(shè)計(jì)方法:面向?qū)ο笤O(shè)計(jì)概述,系統(tǒng)設(shè)計(jì)74.10第六章面向?qū)ο笤O(shè)計(jì)方法:對(duì)象設(shè)計(jì),領(lǐng)域?qū)ο笤O(shè)計(jì)實(shí)驗(yàn)4:需求分析第七章統(tǒng)一建模語(yǔ)言UML:UML的組成、特點(diǎn)與應(yīng)用,靜態(tài)建模84.16面向過(guò)程分析設(shè)計(jì)課堂演講競(jìng)賽面向過(guò)程分析設(shè)計(jì)演講競(jìng)賽,需要兩次課!或者根據(jù)學(xué)生情況往后推遲兩周4.17面向過(guò)程分析設(shè)計(jì)課堂演講競(jìng)賽課程進(jìn)度安排分析與設(shè)計(jì)課堂演講競(jìng)賽,請(qǐng)同學(xué)們?cè)诘?周前分好組課程進(jìn)度安排周序日期講授主要內(nèi)容實(shí)踐教學(xué)內(nèi)容備注94.24第七章統(tǒng)一建模語(yǔ)言UML:動(dòng)態(tài)建模,實(shí)驗(yàn)5:軟件設(shè)計(jì)

第七章物理架構(gòu)建模,基于UML的統(tǒng)一建模過(guò)程——RUP,第八章編碼和語(yǔ)言選擇

104.30第九章:軟件測(cè)試:測(cè)試的基本概念,黑盒測(cè)試備注:5.1放長(zhǎng)假

115.08第九章:軟件測(cè)試:白盒測(cè)試,測(cè)試用例設(shè)計(jì);軟件測(cè)試:軟件的糾錯(cuò)實(shí)驗(yàn)6:編碼與調(diào)試程序

125.14第九章:軟件測(cè)試:多模塊程序的測(cè)試策略實(shí)驗(yàn)7:編碼與調(diào)試程序

5.15第九章:軟件測(cè)試:面向?qū)ο笙到y(tǒng)的測(cè)試,第十章軟件復(fù)用135.22第十一章軟件維護(hù),第十二章軟件項(xiàng)目計(jì)劃實(shí)驗(yàn)8:編碼與調(diào)試

145.28面向?qū)ο蠓治鲈O(shè)計(jì)演講競(jìng)賽實(shí)驗(yàn)9:軟件測(cè)試

5.29面向?qū)ο蠓治鲈O(shè)計(jì)演講競(jìng)賽156.05第十三章軟件工程管理,第十四章軟件質(zhì)量管理:從質(zhì)量保證到質(zhì)量認(rèn)證,質(zhì)量保證,軟件可靠性

166.11第十四章軟件質(zhì)量管理:程序正確性證明,CMM軟件能力成熟度模型,ISO9000國(guó)際標(biāo)準(zhǔn),軟件度量

6.12第十五章:軟件工程環(huán)境176.19總復(fù)習(xí)、答疑

合計(jì)68學(xué)時(shí)隨堂與課外結(jié)合

課程進(jìn)度安排周序日期講授主要內(nèi)容實(shí)踐教學(xué)內(nèi)容備注94.24第課程簡(jiǎn)介及教學(xué)目標(biāo)

“軟件工程”是計(jì)算機(jī)科學(xué)與技術(shù)、計(jì)算機(jī)軟件與理論、信息與計(jì)算科學(xué)及其相關(guān)專業(yè)的一門專業(yè)基礎(chǔ)課,它是軟件設(shè)計(jì)與開發(fā)以及各種計(jì)算機(jī)應(yīng)用系統(tǒng)開發(fā)的重要基礎(chǔ)。是本科培養(yǎng)目標(biāo)——軟件系統(tǒng)設(shè)計(jì)師和軟件開發(fā)工程師的必備知識(shí)。主要內(nèi)容包括軟件工程概述、可行性分析、需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、面向?qū)ο蠓治雠c設(shè)計(jì)、編碼、軟件質(zhì)量與質(zhì)量保證、項(xiàng)目計(jì)劃與管理等。課程的學(xué)習(xí)對(duì)提升同學(xué)們的能力、素質(zhì)、道德修養(yǎng)、團(tuán)隊(duì)精神等都具有非常重要的意義。

課程簡(jiǎn)介及教學(xué)目標(biāo)“軟件工程”是課程簡(jiǎn)介及教學(xué)目標(biāo)

在課程的學(xué)習(xí)和實(shí)踐中,同學(xué)們應(yīng)理解和掌握軟件工程中的軟件生命周期各階段的任務(wù)、過(guò)程、結(jié)構(gòu)化方法和工具;面向?qū)ο蠓椒▽W(xué)、面向?qū)ο蠓治?、設(shè)計(jì)和實(shí)現(xiàn);軟件工程應(yīng)用的管理技術(shù)等。本課程的目的與任務(wù)是使同學(xué)們通過(guò)本課程的學(xué)習(xí),了解軟件項(xiàng)目開發(fā)和維護(hù)的一般過(guò)程,掌握軟件開發(fā)的傳統(tǒng)方法和最新方法,為今后更深入地學(xué)習(xí)和從事有關(guān)軟件工程實(shí)踐工作打下良好的理論基礎(chǔ)。

課程簡(jiǎn)介及教學(xué)目標(biāo)軟件開發(fā)與人才需求未來(lái)軟件開發(fā)的生產(chǎn)模式及對(duì)人才的要求現(xiàn)有模式:小作坊的、一人身兼多職、英雄式的軟件開發(fā)生產(chǎn)模式:大規(guī)模的軟件生產(chǎn),專業(yè)化、分工越來(lái)越細(xì),團(tuán)隊(duì)合作開發(fā)對(duì)人才的要求:除精通開發(fā)技術(shù)外,更需要軟件工程意識(shí)和團(tuán)隊(duì)合作精神軟件開發(fā)與人才需求未來(lái)軟件開發(fā)的生產(chǎn)模式及對(duì)人才的要求中國(guó)軟件產(chǎn)業(yè)中國(guó)軟件產(chǎn)業(yè)的途徑之一(軟件外包)印度軟件產(chǎn)業(yè)發(fā)展與軟件外包

中國(guó)向印度學(xué)習(xí)——發(fā)展軟件外包業(yè)務(wù)中國(guó)目前外包業(yè)務(wù)與市場(chǎng)分析

中國(guó)目前80%的外包業(yè)務(wù)來(lái)自日、韓等亞洲國(guó)家印度的外包業(yè)務(wù)主要來(lái)自于美國(guó)中國(guó)和印度的不同(文化、語(yǔ)言、軟件工程意識(shí))中國(guó)軟件產(chǎn)業(yè)中國(guó)軟件產(chǎn)業(yè)的途徑之一(軟件外包)軟件工程教育的定位我國(guó)軟件工程的專業(yè)教育與軟件人才的鏈之間的關(guān)系可描述為如下圖:軟件開發(fā)工程師架構(gòu)設(shè)計(jì)師產(chǎn)品經(jīng)理項(xiàng)目管理者系統(tǒng)分析師系統(tǒng)設(shè)計(jì)師程序員研究生教育本科教育大專教育中專教育軟件工程教育的定位我國(guó)軟件工程的專業(yè)教育與軟件人才的鏈之間的軟件工程教育的定位

觀點(diǎn):

不同的人才培養(yǎng)或者不同軟件開發(fā)的崗位對(duì)軟件工程的知識(shí)要求是不一樣的。我們?cè)趯W(xué)習(xí)軟件工程知識(shí)與選用教材時(shí),充分地考慮到這一因素,采取因材取舍的原則。不同的軟件工程教材,適用于不同層次的人員學(xué)習(xí),所以不同層次的人才選用不同的教材?!汉D霞~康信息系統(tǒng)有限公司崗位能力規(guī)定軟件工程教育的定位觀點(diǎn):1.程序員崗位能力規(guī)定錄用員工條件年齡范圍:20-25學(xué)歷要求:大專以上或中專以上并有計(jì)算機(jī)相關(guān)證書專業(yè)要求:計(jì)算機(jī)及相關(guān)專業(yè)工作經(jīng)歷要求:1.有從事軟件編程的實(shí)習(xí)經(jīng)歷3-6個(gè)月以上。2.通過(guò)公司內(nèi)部實(shí)習(xí)期。日語(yǔ)水平:1.相當(dāng)三級(jí)2.或者有4級(jí)證書3.或者進(jìn)公司時(shí)能理解日語(yǔ)仕樣書,熟悉日語(yǔ)環(huán)境技術(shù)水平:1.熟悉和掌握基本的數(shù)據(jù)庫(kù)2.熟悉和掌握2門開發(fā)語(yǔ)言3.能勝任項(xiàng)目中編程能力要求:1.具備較強(qiáng)的學(xué)習(xí)能力2.工作積極主動(dòng),有責(zé)任心,有良好的品質(zhì)意識(shí)崗位工作描述1.能按時(shí)按質(zhì)完成軟件項(xiàng)目中的編碼工作2.能按時(shí)按質(zhì)完成單體測(cè)試工作3.能制作符合要求的測(cè)試報(bào)告4.能認(rèn)真的參加項(xiàng)目?jī)?nèi)或部門、公司安排的培訓(xùn),并且能達(dá)到培訓(xùn)要求。5.每年的技術(shù)水平和日語(yǔ)水平考核有進(jìn)步。1.程序員崗位能力規(guī)定錄年齡范圍:學(xué)歷要求:專業(yè)要求:工2.軟件工程師崗位能力規(guī)定錄用員工條件年齡范圍:20-27學(xué)歷要求:大專以上專業(yè)要求:計(jì)算機(jī)及相關(guān)專業(yè)工作經(jīng)歷要求:1.有從事軟件編程一年以上的相關(guān)工作經(jīng)歷2.通過(guò)公司內(nèi)部試用期日語(yǔ)水平:1.相當(dāng)三級(jí)2.或者有4級(jí)證書3.能理解日語(yǔ)仕樣書,熟悉日語(yǔ)開發(fā)環(huán)境達(dá)一年技術(shù)水平:1.熟悉運(yùn)用SQLserver、Oracle數(shù)據(jù)庫(kù)2.熟悉運(yùn)用VC、C++或Java編程3.能帶一個(gè)實(shí)習(xí)生能力要求:1.具備較強(qiáng)的學(xué)習(xí)能力2.工作積極主動(dòng),有責(zé)任心,有良好的品質(zhì)意識(shí)3.具有團(tuán)隊(duì)協(xié)作精神及溝通能力崗位工作描述1.能按時(shí)按質(zhì)完成軟件項(xiàng)目中的編碼工作2.能完成詳細(xì)設(shè)計(jì)的任務(wù)3.能完成綜合測(cè)試任務(wù)4.能協(xié)助公司獨(dú)立擔(dān)當(dāng)帶好新手的任務(wù)2.軟件工程師崗位能力規(guī)定錄年齡范圍:20-27學(xué)歷要求3.高級(jí)軟件工程師崗位能力規(guī)定錄用員工條件年齡范圍:25歲以上學(xué)歷要求:本科以上或?qū)?撇⒂杏?jì)算機(jī)相關(guān)技術(shù)證書專業(yè)要求:計(jì)算機(jī)及相關(guān)專業(yè)工作經(jīng)歷要求:1.從事日本軟件編程的工作經(jīng)歷超過(guò)三年2.有在項(xiàng)目中擔(dān)任技術(shù)骨干的經(jīng)驗(yàn)至少一年3.通過(guò)公司內(nèi)部試用期。日語(yǔ)水平:1.相當(dāng)三級(jí)2.能理解日語(yǔ)仕樣書技術(shù)水平:1.精通運(yùn)用SQLserver、Oracle數(shù)據(jù)庫(kù)2.精通VC、C++或Java,同類技術(shù)運(yùn)用時(shí)間在三年以上3.熟悉各種計(jì)算機(jī)開發(fā)語(yǔ)言。能力要求:1.具備較強(qiáng)的學(xué)習(xí)能力2.工作積極主動(dòng),有責(zé)任心,有良好的品質(zhì)意識(shí)3.具有團(tuán)隊(duì)協(xié)作精神及溝通能力4.在項(xiàng)目組中有解決技術(shù)難題的能力或能起到項(xiàng)目組協(xié)理作用崗位工作描述1.能配合項(xiàng)目主管按時(shí)按質(zhì)完成項(xiàng)目任務(wù)。2.在項(xiàng)目組內(nèi)擔(dān)當(dāng)技術(shù)骨干作用或擔(dān)當(dāng)部門協(xié)理作用。3.首先理解項(xiàng)目中客戶規(guī)定的“工具”,并能輔導(dǎo)組員掌握,并在整個(gè)項(xiàng)目中擔(dān)當(dāng)指導(dǎo)工作。4.擔(dān)當(dāng)事業(yè)部?jī)?nèi)或公司安排的技術(shù)培訓(xùn)任務(wù)。5.能擔(dān)任詳細(xì)設(shè)計(jì)工作。3.高級(jí)軟件工程師崗位能力規(guī)定錄年齡范圍:學(xué)歷要求:本科4.項(xiàng)目主管崗位能力規(guī)定錄用員工條件年齡范圍:28歲以上學(xué)歷要求:本科以上或?qū)?撇⒂杏?jì)算機(jī)相關(guān)技術(shù)證書專業(yè)要求:計(jì)算機(jī)及相關(guān)專業(yè)工作經(jīng)歷要求:1.從事日本軟件編程的工作經(jīng)歷超過(guò)三年2.有項(xiàng)目主管、組長(zhǎng)經(jīng)歷兩年以上3.通過(guò)公司內(nèi)部試用期日語(yǔ)水平:1.相當(dāng)一級(jí)2.二級(jí)以上證書技術(shù)水平:1.熟悉各類數(shù)據(jù)庫(kù)2.熟悉各種計(jì)算機(jī)開發(fā)語(yǔ)言3.熟悉特定的開發(fā)工具能力要求:1.具備較強(qiáng)的學(xué)習(xí)能力,具有進(jìn)取心2.工作積極主動(dòng),有責(zé)任心,有良好的品質(zhì)意識(shí)3.具有上下溝通的能力4.具有項(xiàng)目組與項(xiàng)目組之間的合作意識(shí)和整體意識(shí)。崗位工作描述1.項(xiàng)目開始前的準(zhǔn)備,培訓(xùn)計(jì)劃制定、環(huán)境構(gòu)成、體制及人員安排2.項(xiàng)目開發(fā)標(biāo)準(zhǔn)的實(shí)施3.整個(gè)項(xiàng)目過(guò)程的控制,進(jìn)度管理4.項(xiàng)目QA管理,負(fù)責(zé)項(xiàng)目總體測(cè)試工作5.項(xiàng)目后期的文檔整理,維護(hù)對(duì)應(yīng)計(jì)劃及安排,項(xiàng)目總結(jié),項(xiàng)目成員能力評(píng)價(jià)6.保密計(jì)劃和質(zhì)量計(jì)劃等(特殊要求的項(xiàng)目)的制定、實(shí)施7.組織解決技術(shù)方面重大問(wèn)題和及時(shí)應(yīng)對(duì)的處理。4.項(xiàng)目主管崗位能力規(guī)定錄年齡范圍:學(xué)歷要求:本科以上或5.項(xiàng)目經(jīng)理崗位能力規(guī)定錄用員工條件年齡范圍:

28歲以上學(xué)歷要求:本科以上或?qū)?撇⒂杏?jì)算機(jī)相關(guān)技術(shù)證書專業(yè)要求:計(jì)算機(jī)及相關(guān)專業(yè)工作經(jīng)歷要求:1.有項(xiàng)目經(jīng)理經(jīng)歷兩年以上2.同時(shí)有日本工作經(jīng)驗(yàn)一年以上3.通過(guò)公司內(nèi)部試用期日語(yǔ)水平:1.日語(yǔ)一級(jí)技術(shù)水平:1.熟悉各類數(shù)據(jù)庫(kù)2.熟悉各種計(jì)算機(jī)開發(fā)語(yǔ)言3.熟悉特定的開發(fā)工具能力要求:1.具備較強(qiáng)的學(xué)習(xí)能力,具有進(jìn)取心2.工作積極主動(dòng),有責(zé)任心,有良好的品質(zhì)意識(shí)3.具有上下溝通的能力4.具有項(xiàng)目組與項(xiàng)目組之間的合作意識(shí)和整體意識(shí)5.能靈活安排好項(xiàng)目與項(xiàng)目之間的銜接及人員調(diào)度崗位工作描述1.項(xiàng)目開始前的準(zhǔn)備,培訓(xùn)計(jì)劃制定、環(huán)境構(gòu)成、體制及人員安排2.項(xiàng)目開發(fā)標(biāo)準(zhǔn)的實(shí)施3.整個(gè)項(xiàng)目過(guò)程的控制,進(jìn)度管理4.維護(hù)對(duì)應(yīng)計(jì)劃幾安排,項(xiàng)目總結(jié),項(xiàng)目成員能力評(píng)價(jià)5.保密計(jì)劃和質(zhì)量計(jì)劃等(特殊要求的項(xiàng)目)的制定、實(shí)施6.組織解決技術(shù)方面重大問(wèn)題和及時(shí)應(yīng)對(duì)的處理7.能合理安排項(xiàng)目與項(xiàng)目之間的進(jìn)度5.項(xiàng)目經(jīng)理崗位能力規(guī)定錄年齡范圍:學(xué)歷要求:本科以上或課程學(xué)習(xí)的內(nèi)容與形式理論內(nèi)容:基本原理、方法和技術(shù)形式:講授、自學(xué)、討論實(shí)踐內(nèi)容:構(gòu)造一個(gè)應(yīng)用系統(tǒng)(包括分析、設(shè)計(jì)、編碼、測(cè)試)形式:分組合作、分階段形成文檔、編碼、集成課程學(xué)習(xí)的內(nèi)容與形式軟件工程的主要內(nèi)容軟件工程的基本概念軟件開發(fā)模型軟件開發(fā)各階段的任務(wù)、技術(shù)、方法傳統(tǒng)方法、面向?qū)ο蠓椒ㄜ浖こ坦芾碥浖|(zhì)量保證軟件工程環(huán)境軟件工程的主要內(nèi)容軟件工程的基本概念第一章緒論1.1軟件與軟件危機(jī)1.2軟件工程學(xué)的范疇1.3傳統(tǒng)軟件工程和面向?qū)ο筌浖こ?.4軟件工程的應(yīng)用第一章緒論1.1軟件與軟件危機(jī)軟件是信息化的核心,國(guó)民經(jīng)濟(jì)、國(guó)防建設(shè)、社會(huì)發(fā)展及人民生活都離不開軟件。軟件產(chǎn)業(yè)是增長(zhǎng)最快的朝陽(yáng)產(chǎn)業(yè),是高投入/高產(chǎn)出、無(wú)污染、低能耗的綠色產(chǎn)業(yè)。軟件產(chǎn)業(yè)關(guān)系到國(guó)家經(jīng)濟(jì)和文化安全,體現(xiàn)了國(guó)家綜合實(shí)力,是決定21世紀(jì)國(guó)際競(jìng)爭(zhēng)地位的戰(zhàn)略性產(chǎn)業(yè)。軟件工程(SoftwareEngineering)是在克服60年代末所出現(xiàn)“軟件危機(jī)”的過(guò)程中逐漸形成與發(fā)展的。軟件工程是一門指導(dǎo)計(jì)算機(jī)軟件系統(tǒng)開發(fā)和維護(hù)的工程學(xué)科,是一門新興的邊緣學(xué)科,主要研究如何應(yīng)用軟件開發(fā)的科學(xué)理論和工程技術(shù)來(lái)指導(dǎo)大型軟件系統(tǒng)的開發(fā)。1.1軟件與軟件危機(jī)軟件是信息1.1軟件與軟件危機(jī)

軟件工程的發(fā)展已經(jīng)歷了三個(gè)重要階段:3、第三代軟件工程—構(gòu)件工程(軟件復(fù)用)2、第二代軟件工程—對(duì)象工程1、第一代軟件工程—傳統(tǒng)的軟件工程注:軟件工程發(fā)展階段論沒有統(tǒng)一定論60年代末到70年代為了克服“軟件危機(jī)”(Softwarecrisis)提出“軟件工程”的名詞,將軟件開發(fā)納入工程化的軌道,基本形成軟件工程的概念、框架、技術(shù)和方法。稱為傳統(tǒng)的軟件工程。1.1軟件與軟件危機(jī)軟件工程的發(fā)展已經(jīng)歷了三個(gè)重要階段1.1軟件與軟件危機(jī)軟件工程的發(fā)展已經(jīng)歷了三個(gè)重要階段:3、第三代軟件工程—構(gòu)件工程(軟件復(fù)用)2、第二代軟件工程—對(duì)象工程1、第一代軟件工程—傳統(tǒng)的軟件工程注:軟件工程發(fā)展階段論沒有統(tǒng)一定論80年代中到90年代,面向?qū)ο蟮姆椒ㄅc技術(shù)得到發(fā)展,研究的重點(diǎn)轉(zhuǎn)移到面向?qū)ο蟮姆治雠c設(shè)計(jì),演化為一種完整的軟件開發(fā)方法和系統(tǒng)的技術(shù)體系,稱為對(duì)象工程。1.1軟件與軟件危機(jī)軟件工程的發(fā)展已經(jīng)歷了三個(gè)重要階段:31.1軟件與軟件危機(jī)軟件工程的發(fā)展已經(jīng)歷了三個(gè)重要階段:3、第三代軟件工程—構(gòu)件工程(軟件復(fù)用)2、第二代軟件工程—對(duì)象工程1、第一代軟件工程—傳統(tǒng)的軟件工程注:軟件工程發(fā)展階段論沒有統(tǒng)一定論

90起年代,基于構(gòu)件(Component)的開發(fā)方法取得重要進(jìn)展,軟件系統(tǒng)的開發(fā)可通過(guò)使用現(xiàn)成的可復(fù)用構(gòu)件組裝完成,而無(wú)需從頭開始構(gòu)造,以此達(dá)到提高效率和質(zhì)量,降低成本的目的。稱為構(gòu)件工程。1.1軟件與軟件危機(jī)軟件工程的發(fā)展已經(jīng)歷了三個(gè)重要階段:3軟件軟件就是程序?×一定要糾正軟件就是程序,開發(fā)軟件就是編寫程序的錯(cuò)誤觀念!

軟件定義:軟件是能夠完成預(yù)定功能和性能的可執(zhí)行的計(jì)算機(jī)程序和使程序正常執(zhí)行所需要的數(shù)據(jù),加上描述軟件開發(fā)過(guò)程及其管理、程序的操作和使用的有關(guān)文檔。程序的構(gòu)成:面向過(guò)程的程序=算法+數(shù)據(jù)結(jié)構(gòu)面向?qū)ο蟮某绦?對(duì)象+消息面向構(gòu)件的程序=構(gòu)件+框架

軟件軟件就是程序?×一定要糾正軟件就是程序,開發(fā)軟件就是編寫軟件軟件的簡(jiǎn)要定義:

軟件=程序+數(shù)據(jù)+文檔程序:按事先設(shè)計(jì)的功能和性能需求執(zhí)行的指令序列數(shù)據(jù):是程序能正常操縱信息的數(shù)據(jù)結(jié)構(gòu)文檔:與程序開發(fā)及過(guò)程管理、維護(hù)和使用有關(guān)的圖文材料程序、軟件與軟件產(chǎn)品:獨(dú)唱—>>小合唱—>>合唱—>>萬(wàn)人大合唱|||簡(jiǎn)單程序較復(fù)雜程序軟件軟件軟件的簡(jiǎn)要定義:軟件=程序+數(shù)據(jù)+文檔程序、軟件與軟件軟件規(guī)模越來(lái)越大Windows95有1000萬(wàn)行代碼Windows2000有5000萬(wàn)行代碼Exchange2000和Windows2000開發(fā)人員結(jié)構(gòu)Exchange2000Windows2000項(xiàng)目經(jīng)理25人約250人開發(fā)人員140人約1700人測(cè)試人員350人約3200人軟件規(guī)模越來(lái)越大Windows95有1000萬(wàn)行軟件開發(fā)的發(fā)展過(guò)程計(jì)算機(jī)應(yīng)用發(fā)展軟件數(shù)量多規(guī)模大軟件成本高質(zhì)量低個(gè)體化軟件開發(fā)方法軟件維護(hù)困難軟件危機(jī)軟件工程軟件開發(fā)的發(fā)展過(guò)程計(jì)算機(jī)應(yīng)用發(fā)展軟件數(shù)量多規(guī)模大軟件成本高質(zhì)軟件的特征軟件是一種邏輯實(shí)體,不是物理實(shí)體,他具有抽象性軟件不會(huì)磨損和老化軟件主要是研制,生產(chǎn)是簡(jiǎn)單的拷貝軟件成本昂貴,其開發(fā)方式至今尚未擺脫手工方式軟件維護(hù)不同于硬件維修,易產(chǎn)生新的問(wèn)題軟件具有“復(fù)雜性”,其開發(fā)和運(yùn)行常受到計(jì)算機(jī)系統(tǒng)的限制,即受環(huán)境影響大軟件的特征軟件是一種邏輯實(shí)體,不是物理實(shí)體,他具有抽象性軟件的特征失效率時(shí)間硬件失效率曲線失效率時(shí)間實(shí)際曲線理想曲線軟件失效率曲線軟、硬件失效情況的對(duì)比

硬件失效率曲線,是一U型曲線(即浴盆曲線)。軟件失效率曲線,它沒有U型曲線的右半翼。因?yàn)檐浖淮嬖谀p和老化問(wèn)題,然而存在退化問(wèn)題。軟件的特征失效率時(shí)間硬件失效率曲線失效率時(shí)間軟件危機(jī)定義計(jì)算機(jī)軟件的開發(fā)和維護(hù)過(guò)程所遇到的一系列嚴(yán)重問(wèn)題表現(xiàn)對(duì)軟件開發(fā)成本和進(jìn)度的估算很不準(zhǔn)確用戶很不滿意質(zhì)量很不可靠沒有適當(dāng)?shù)奈臋n軟件成本比重上升供不應(yīng)求:軟件開發(fā)生產(chǎn)率跟不上計(jì)算機(jī)應(yīng)用迅速深入的趨勢(shì)軟件危機(jī)定義軟件危機(jī)例證

IBM公司的OS/360,共約100萬(wàn)條指令,花費(fèi)了5000個(gè)人年;經(jīng)費(fèi)達(dá)數(shù)億美圓,而結(jié)果卻令人沮喪,錯(cuò)誤多達(dá)2000個(gè)以上,系統(tǒng)根本無(wú)法正常運(yùn)行。OS/360系統(tǒng)的負(fù)責(zé)人Brooks這樣描述開發(fā)過(guò)程的困難和混亂:“…像巨獸在泥潭中作垂死掙扎,掙扎得越猛,泥漿就沾得越多,最后沒有一個(gè)野獸能夠逃脫淹沒在泥潭中的命運(yùn)?!?/p>

1963年美國(guó)飛往火星的火箭爆炸,造成1000萬(wàn)美元的損失。原因是FORTRAN程序:

DO5I=1,3

誤寫為:DO5I=1.

3

1967年蘇聯(lián)“聯(lián)盟一號(hào)”載人宇宙飛船在返航時(shí),由于軟件忽略一個(gè)小數(shù)點(diǎn),在進(jìn)入大氣層時(shí)因打不開降落傘而燒毀。軟件危機(jī)例證IBM公司的OS/360,共約100萬(wàn)條硬件/軟件成本變化趨勢(shì)

硬件

軟件

100%0%195519701985硬件/軟件成本變化趨勢(shì)100%0%1955197019軟件技術(shù)進(jìn)步落后于需求增長(zhǎng)軟件技術(shù)進(jìn)步落后于需求增長(zhǎng)軟件危機(jī)原因客觀:軟件本身特點(diǎn)邏輯部件規(guī)模龐大主觀:不正確的開發(fā)方法忽視需求分析錯(cuò)誤認(rèn)為:軟件開發(fā)=程序編寫輕視軟件維護(hù)軟件危機(jī)原因軟件危機(jī)解決途徑組織管理系統(tǒng)工程項(xiàng)目管理方法技術(shù)措施軟件開發(fā)技術(shù)與方法軟件工具軟件危機(jī)解決途徑1.2軟件工程學(xué)的范疇軟件工程學(xué)指導(dǎo)計(jì)算機(jī)軟件開發(fā)和維護(hù)的工程學(xué)科工程管理+開發(fā)技術(shù)1983年B.W.Boehm提出了軟件工程的七條基本原理:用分階段的是的生存周期計(jì)劃嚴(yán)格管理;堅(jiān)持進(jìn)行階段評(píng)審;嚴(yán)格實(shí)施的產(chǎn)品控制;采用現(xiàn)代程序技術(shù);結(jié)果應(yīng)能清楚地審查;開發(fā)小組的成員應(yīng)該少而精;承認(rèn)不斷改進(jìn)軟件工程的必要性。1.2軟件工程學(xué)的范疇軟件工程學(xué)1.2軟件工程學(xué)的范疇于1968年在聯(lián)邦德國(guó)召開的北大西洋公約軟件可靠性會(huì)議(NATO)上,首次提出“軟件工程”的概念,提出了在軟件生產(chǎn)中采用工程化的方法,采用一系列科學(xué)的、現(xiàn)代化的方法技術(shù)來(lái)開發(fā)軟件。這種工程化的思想貫穿到軟件開發(fā)和維護(hù)的全過(guò)程。了解有關(guān)軟件、軟件生存期及軟件工程過(guò)程等重要的概念,對(duì)掌握、學(xué)習(xí)和應(yīng)用軟件工程的方法、技術(shù)等對(duì)于計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)的學(xué)生都是非常必要的。1.2軟件工程學(xué)的范疇于1968年在聯(lián)邦德國(guó)召開的北大西洋1.2軟件工程學(xué)的范疇軟件工程學(xué)軟件開發(fā)技術(shù)軟件工程管理軟件開發(fā)方法學(xué)軟件工具軟件工程環(huán)境軟件管理學(xué)軟件經(jīng)濟(jì)學(xué)軟件度量學(xué)1.2軟件工程學(xué)的范疇軟件工程學(xué)軟件開發(fā)技術(shù)軟件工程管理軟軟件工程層次圖

該圖展現(xiàn)了軟件工程研究的內(nèi)容及關(guān)注的焦點(diǎn)。

軟件工程層次圖

1.3傳統(tǒng)軟件工程和面向?qū)ο筌浖こ逃捎谲浖_發(fā)方法可分為三大類:面向過(guò)程的開發(fā)方法(傳統(tǒng)的)面向?qū)ο蟮拈_發(fā)方法基于構(gòu)件的開發(fā)方法相應(yīng)地軟件工程方法也分為三大類:面向過(guò)程的軟件工程(傳統(tǒng)的)面向?qū)ο蟮能浖こ袒跇?gòu)件的軟件工程1.3傳統(tǒng)軟件工程和面向?qū)ο筌浖こ逃捎谲浖_發(fā)方法可分傳統(tǒng)軟件工程傳統(tǒng)的軟件工也稱為面向過(guò)程的軟件開發(fā)方法,這類開發(fā)方法都典型地包含了分析、設(shè)計(jì)、實(shí)現(xiàn)、確認(rèn)(測(cè)試)、演化(維護(hù))等活動(dòng)。典型的傳統(tǒng)軟件開發(fā)方法有:Jackson方法、結(jié)構(gòu)化開發(fā)方法、原型化方法、HIPO法、IDEF法等。傳統(tǒng)軟件工程傳統(tǒng)的軟件工也稱為面向過(guò)程的軟件開發(fā)方法,這傳統(tǒng)軟件工程一、結(jié)構(gòu)化開發(fā)方法(StructuredDevelopingMethod)是一種面向數(shù)據(jù)流的開發(fā)方法,是現(xiàn)有的軟件開發(fā)方法中最成熟,應(yīng)用最廣泛的方法,主要特點(diǎn)是快速,自然和方便。結(jié)構(gòu)化方法總的指導(dǎo)思想是自頂向下、逐步求精,以數(shù)據(jù)流,數(shù)據(jù)的封閉性準(zhǔn)則來(lái)逐層分解的,它的基本原則是功能的分解與抽象。

結(jié)構(gòu)化方法強(qiáng)調(diào)結(jié)構(gòu)的合理性。提出了一組提高軟件結(jié)構(gòu)質(zhì)量的準(zhǔn)則,如功能的分解與抽象、模塊獨(dú)立性、信息屏蔽等。傳統(tǒng)軟件工程一、結(jié)構(gòu)化開發(fā)方法(StructuredDev傳統(tǒng)軟件工程

JACKSON方法是一種面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法。強(qiáng)調(diào)程序結(jié)構(gòu)與問(wèn)題結(jié)構(gòu)相對(duì)應(yīng)。

JACKSON方法由兩部分構(gòu)成:1、JSP(JacksonstructuredProgramming)(杰克遜結(jié)構(gòu)程序設(shè)計(jì))2、JSD(JacksonSystemDevelopment)二、Jackson方法傳統(tǒng)軟件工程JACKSON方法是一種面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方

1.3傳統(tǒng)軟件工程和面向?qū)ο筌浖こ倘?、原型化方法(PrototypingMethod)

原型是軟件開發(fā)過(guò)程中,軟件的一個(gè)早期可運(yùn)行的版本,它反映了最終系統(tǒng)的部分重要特性。

原型化方法的基本思想是花費(fèi)少量代價(jià)建立一個(gè)可運(yùn)行的系統(tǒng),使用戶及早獲得學(xué)習(xí)的機(jī)會(huì),原型化方法又稱速成原型法(RapidPrototyping)。強(qiáng)調(diào)的是軟件開發(fā)人員與用戶的不斷交互,通過(guò)原型的演進(jìn)不斷適應(yīng)用戶任務(wù)改變的需求。將維護(hù)和修改階段的工作盡早進(jìn)行,使用戶驗(yàn)收提前,從而使軟件產(chǎn)品更加適用。1.3傳統(tǒng)軟件工程和面向?qū)ο筌浖こ倘⒃突椒ǎ≒r傳統(tǒng)軟件工程四、HIPO法(HierarchyPlusInput—Process—Output)

HIPO法(HierarchyPlusInput—Process—Output),按功能層次結(jié)構(gòu)分析法,74年由IBM公司推出的軟件分析及設(shè)計(jì)方法,又稱HIPO圖。HIPO圖是以功能、功能完備性準(zhǔn)則逐層分解的。由直觀目錄表(H圖),概要HIPO圖,詳細(xì)IPO圖三部分組成。傳統(tǒng)軟件工程四、HIPO法(HierarchyPlusI面向?qū)ο筌浖こ蘋OSD(Object-OrientedSoftwareDevelopment)法這是80年代推出的一種全新的軟件開發(fā)方法。非常實(shí)用而強(qiáng)有力,被譽(yù)為90年代軟件的核心技術(shù)之一。

其基本思想是:對(duì)問(wèn)題領(lǐng)域進(jìn)行自然的分割,以更接近人類通常思維的方式建立問(wèn)題領(lǐng)域的模型,以便對(duì)客觀的信息實(shí)體進(jìn)行結(jié)構(gòu)和行為的模擬,從而使設(shè)計(jì)的軟件更直接地表現(xiàn)問(wèn)題的求解過(guò)程。面向?qū)ο蟮拈_發(fā)方法以對(duì)象作為最基本的元素,是分析和解決問(wèn)題的核心。面向?qū)ο筌浖こ蘋OSD(Object-Orient軟件復(fù)用技術(shù)(基于構(gòu)件的軟件工程)“軟件重用”或“軟件復(fù)用”(SoftwareReuse)是指將已有的軟件成分用于構(gòu)造新的軟件系統(tǒng)。該技術(shù)是提高軟件生產(chǎn)率和質(zhì)量,降低成本的有效方法。一、復(fù)用方式復(fù)用程序:包括目標(biāo)代碼和源代碼的復(fù)用,可通過(guò)連接(Link)、綁定(Binding)、包含(include)等功能支持及對(duì)象鏈接及嵌入(OLE)技術(shù)實(shí)現(xiàn)。復(fù)用分析

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論