軟件工程學(xué)概述(共104張)_第1頁(yè)
軟件工程學(xué)概述(共104張)_第2頁(yè)
軟件工程學(xué)概述(共104張)_第3頁(yè)
軟件工程學(xué)概述(共104張)_第4頁(yè)
軟件工程學(xué)概述(共104張)_第5頁(yè)
已閱讀5頁(yè),還剩98頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

軟件工程學(xué)概述第一頁(yè),共104頁(yè)。課程概述一、軟件工程學(xué)科介紹二、學(xué)習(xí)目標(biāo)三、部分參考資料四、課程特點(diǎn)和學(xué)習(xí)的注意事項(xiàng)五、教材簡(jiǎn)介六、課程考核方式2

第二頁(yè),共104頁(yè)。一、軟件工程學(xué)科介紹軟件程學(xué)科發(fā)展歷史三個(gè)階段:概念提出、學(xué)科雛形、學(xué)科確立第一階段:概念提出1968年NATO會(huì)議(北大西洋公約組織的計(jì)算機(jī)科學(xué)家的國(guó)際會(huì)議)提出“軟件工程”概念。當(dāng)時(shí)對(duì)“軟件工程”代表性定義:為了經(jīng)濟(jì)地獲得在真實(shí)機(jī)器上可靠工作的軟件而制定和使用的合理工程原則和方法。1972年IEEE學(xué)會(huì)的計(jì)算機(jī)分會(huì)IEEE一CS第一次出版了“軟件工程學(xué)報(bào)”3

第三頁(yè),共104頁(yè)。第二階段:學(xué)科雛形上世紀(jì)70年代末,美國(guó)將軟件工程教程列入研究生教育計(jì)劃。1980年代末和1990年代初,軟件工程教育得到卡內(nèi)基一梅隆大學(xué)軟件工程研究所(CMU/SEI)的支持。1991年,“軟件工程”被ACM(美國(guó)計(jì)算機(jī)協(xié)會(huì))和IEEE/CS列為計(jì)算學(xué)科的九個(gè)知識(shí)領(lǐng)域之一。

1993年,IEEE一CS和ACM為了把軟件工程建設(shè)成為一個(gè)專(zhuān)業(yè),建立了IEEE一CS/ACM聯(lián)合指導(dǎo)委員會(huì)。4

第四頁(yè),共104頁(yè)。第三階段:學(xué)科確立2004年8月,IEEE一CS和ACM給出:軟件工程知識(shí)體(SWEBOK,SoftwareEngineeringBodyofKnowledge)軟件工程教育知識(shí)體(SEEK)最終版,標(biāo)志著軟件工程學(xué)科在世界范圍正式確立。軟件工程、計(jì)算機(jī)科學(xué)、計(jì)算機(jī)工程、信息系統(tǒng)、信息技術(shù)并列成為計(jì)算學(xué)科下的獨(dú)立學(xué)科。軟件工程知識(shí)體(SWEBOK):全面描述了軟件工程實(shí)踐所需的知識(shí)。5

第五頁(yè),共104頁(yè)。SWEBOK(軟件工程知識(shí)體》10個(gè)領(lǐng)域軟件需求軟件設(shè)計(jì)軟件構(gòu)造軟件測(cè)試軟件維護(hù)軟件配置管理軟件工程管理軟件工程過(guò)程軟件工程工具和方法軟件質(zhì)量6

參考資料:[1]白征.SWEBOK:軟件工程知識(shí)體,計(jì)算機(jī)科學(xué),2001年07期[2萬(wàn)江平.軟件工程知識(shí)體系指南綜述,計(jì)算機(jī)應(yīng)用研究,2006年10期第六頁(yè),共104頁(yè)。SWEBOK詳細(xì)結(jié)構(gòu)(1)7

第七頁(yè),共104頁(yè)。8

第八頁(yè),共104頁(yè)。軟件工程與其他學(xué)科的關(guān)系1、軟件工程是計(jì)算學(xué)科9個(gè)領(lǐng)域之一.算法和數(shù)據(jù)結(jié)構(gòu)計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)人工智能和機(jī)器人學(xué)數(shù)據(jù)庫(kù)和信息檢索人一機(jī)交互操作系統(tǒng)程序設(shè)計(jì)語(yǔ)言軟件方法學(xué)和軟件工程數(shù)字和符號(hào)計(jì)算9

第九頁(yè),共104頁(yè)。計(jì)算學(xué)科中12個(gè)重復(fù)出現(xiàn)的基本概念綁定.概念和形式模型效率抽象層次按時(shí)間排序安全性大問(wèn)題的復(fù)雜性一致性和完備性演化按空間排序重用折衷與決策10

軟件工程是計(jì)算學(xué)科的分支,這12個(gè)概念同樣將貫穿軟件工程學(xué)科,是學(xué)科的精髓。第十頁(yè),共104頁(yè)。2、8個(gè)相關(guān)學(xué)科知識(shí)域計(jì)算機(jī)工程計(jì)算機(jī)科學(xué)數(shù)學(xué)管理學(xué)項(xiàng)目管理質(zhì)量管理系統(tǒng)工程學(xué)軟件人類(lèi)工程學(xué)其中:計(jì)算機(jī)科學(xué)、數(shù)學(xué)是基礎(chǔ)工程學(xué)科、管理學(xué)科也非常重要11

第十一頁(yè),共104頁(yè)。軟件程是一門(mén)什么樣的學(xué)科?

是指導(dǎo)計(jì)算機(jī)軟件開(kāi)發(fā)與維護(hù)的一門(mén)工程學(xué)科。工程:將科學(xué)及數(shù)學(xué)原理運(yùn)用于實(shí)際用途的應(yīng)用手段,如:設(shè)計(jì)、制造、機(jī)器操縱、構(gòu)架等。典型的傳統(tǒng)工程:建筑工程、機(jī)械工程、電力工程等。概括的說(shuō),軟件工程即用工程、科學(xué)和數(shù)學(xué)的原則和方法研制、維護(hù)計(jì)算機(jī)軟件的有關(guān)技術(shù)及方法,其優(yōu)點(diǎn)是以較小的代價(jià)開(kāi)發(fā)高質(zhì)量的軟件并有效地維護(hù)它。12

第十二頁(yè),共104頁(yè)。軟件維護(hù)人員:軟件維護(hù)的依據(jù)第七十八頁(yè),共104頁(yè)。根據(jù)需求分析,設(shè)計(jì)軟件的體系結(jié)構(gòu);5)結(jié)果應(yīng)能清楚地審查用正式文檔準(zhǔn)確地記錄對(duì)目標(biāo)系統(tǒng)的需求,這份文檔通常稱(chēng)為規(guī)格說(shuō)明書(shū)(specification)。開(kāi)發(fā)成本逐年上升,軟件開(kāi)發(fā)生產(chǎn)率提高的速度,遠(yuǎn)遠(yuǎn)跟不上計(jì)算機(jī)應(yīng)用迅速普及深入的趨勢(shì)。根據(jù)歷史數(shù)據(jù)可以進(jìn)行如下的假設(shè)。軟件是用來(lái)解決現(xiàn)實(shí)問(wèn)題的,現(xiàn)實(shí)問(wèn)題的特殊性對(duì)規(guī)范提出了挑戰(zhàn)(要進(jìn)行適應(yīng))。第三十一頁(yè),共104頁(yè)。難以根據(jù)用戶(hù)的需要在原有程序中增加一些新的功能。需要開(kāi)發(fā)人員具有相當(dāng)豐富的風(fēng)險(xiǎn)評(píng)估經(jīng)驗(yàn)和專(zhuān)門(mén)知識(shí);第五十二頁(yè),共104頁(yè)。回答“為了解決這個(gè)問(wèn)題,目標(biāo)系統(tǒng)必須做什么?嚴(yán)格地規(guī)定了每個(gè)階段必須提交的文檔;第九十八頁(yè),共104頁(yè)。第4章形式化說(shuō)明技術(shù)二、學(xué)習(xí)目標(biāo)(1)

掌握軟件工程的基礎(chǔ)知識(shí)和理論,對(duì)軟件工程學(xué)有一個(gè)全貌的了解;熟悉軟件項(xiàng)目開(kāi)發(fā)和維護(hù)的一般過(guò)程;熟練掌握軟件需求分析、設(shè)計(jì)、編碼和測(cè)試等階段的主要思想和技術(shù)方法;13

第十三頁(yè),共104頁(yè)。二、學(xué)習(xí)目標(biāo)(2)

通過(guò)學(xué)習(xí),特別是通過(guò)課程設(shè)計(jì),真正運(yùn)用和深刻體會(huì)軟件工程的思想方法,轉(zhuǎn)變對(duì)軟件開(kāi)發(fā)的認(rèn)識(shí):從個(gè)人的單純編程活動(dòng)轉(zhuǎn)移到進(jìn)行系統(tǒng)分析與設(shè)計(jì)方面上來(lái)轉(zhuǎn)變思維定式:程序員―系統(tǒng)工程師(系統(tǒng)分析員)14

第十四頁(yè),共104頁(yè)。三、部分參考資料《軟件工程理論與實(shí)踐》許家冶等編著,高等教育出版社,2005年《軟件工程》(第二版),齊治昌等,高等教育出版社,2004年《面向?qū)ο蟮南到y(tǒng)分析》,楊芙清等編著,清華大學(xué)出版社,2001年《UML用戶(hù)指南》GBooch等著,邵維忠等譯,機(jī)械工業(yè)出版社2002年15

第十五頁(yè),共104頁(yè)。四、課程特點(diǎn)和學(xué)習(xí)的注肯事項(xiàng)1、知易行難要將理論知識(shí)與實(shí)踐運(yùn)用結(jié)合,進(jìn)行對(duì)照,以加深理解和掌握。2、內(nèi)容紛雜軟件工程涉及計(jì)算機(jī)科學(xué)、數(shù)學(xué)、工程科學(xué)和管理科學(xué)等多個(gè)領(lǐng)域。其中:計(jì)算機(jī)科學(xué)和數(shù)學(xué)用于構(gòu)造模型與算法;工程科學(xué)用于制定規(guī)范、設(shè)計(jì)范型、評(píng)估成本及確定權(quán)衡管理科學(xué)用于計(jì)劃、資源、質(zhì)量和成本的管理。16

第十六頁(yè),共104頁(yè)。五、教材總目錄第1章軟件工程學(xué)概述第2章可行性研究第3章需求分析第4章形式化說(shuō)明技術(shù)第5章總體設(shè)計(jì)第6章詳細(xì)設(shè)計(jì)第7章實(shí)現(xiàn)第8章維護(hù)第9章面向?qū)ο蠓椒▽W(xué)引論第10章面向?qū)ο蠓治龅?1章面向?qū)ο笤O(shè)計(jì)第12章面向?qū)ο髮?shí)現(xiàn)第13章軟件項(xiàng)目管理附錄AC++類(lèi)庫(kù)管理系統(tǒng)分析與設(shè)計(jì)附錄B漢字行編輯程序設(shè)計(jì)17

第十七頁(yè),共104頁(yè)。課程內(nèi)容學(xué)時(shí)安排章節(jié)課程內(nèi)容學(xué)時(shí)l

軟件工程學(xué)概述42

可行性研究43

需求分析45

總體設(shè)計(jì)66

詳細(xì)設(shè)計(jì)47

實(shí)現(xiàn)8章節(jié)課程內(nèi)容學(xué)時(shí)8

軟件維護(hù)29面向?qū)ο蠓椒▽W(xué)引論410

面向?qū)ο蠓治?11

面向?qū)ο笤O(shè)計(jì)212

面向?qū)ο髮?shí)現(xiàn)213

軟件項(xiàng)目管理614

總結(jié)218

第十八頁(yè),共104頁(yè)。六、課程考核方式分?jǐn)?shù)組成:平時(shí)成績(jī)(書(shū)面作業(yè)、課堂測(cè)試、考勤和態(tài)度):10%

期中考試:30%期末考試:60%19

第十九頁(yè),共104頁(yè)。第1章軟件工程學(xué)概述1.1軟件危機(jī)1.2軟件工程1.3軟件生命周期1.4軟件過(guò)程

1.5小結(jié)習(xí)題20

第二十頁(yè),共104頁(yè)。學(xué)習(xí)重點(diǎn)1、軟件危機(jī)、軟件工程產(chǎn)生的原因2、軟件工程過(guò)程和軟件生命周期3、軟件生命周期模型掌握幾個(gè)基本概念軟件危機(jī)軟件工程軟件過(guò)程軟件生命周期軟件生命周期模型21

第二十一頁(yè),共104頁(yè)。軟件危機(jī)與軟件工程學(xué)軟件工程學(xué)的產(chǎn)生要從“軟件危機(jī)”說(shuō)起1968年,第一屆NAT0(北大西洋公約組織的計(jì)算機(jī)科學(xué)家的國(guó)際會(huì)議)會(huì)議,“軟件工程”的慨念作為一種有效解決“軟件危機(jī)”的途徑被正式提出。什么是軟件危機(jī)?軟件危機(jī)有什么典型表現(xiàn)?為什么會(huì)產(chǎn)生軟件危機(jī)?怎么解決軟件危機(jī)?22

第二十二頁(yè),共104頁(yè)。§1軟件危機(jī)§1.1.1軟件危機(jī)介紹什么是軟件危機(jī)?軟件危機(jī)指在計(jì)算機(jī)軟件的開(kāi)發(fā)和維護(hù)過(guò)程中,所遇到的一系列嚴(yán)重問(wèn)題。軟件危機(jī)主要包括的問(wèn)題(兩方面):

①如何開(kāi)發(fā)軟件②如何維護(hù)軟件23

第二十三頁(yè),共104頁(yè)。軟件危機(jī)有什么典型表現(xiàn)?(1)開(kāi)發(fā)費(fèi)用和進(jìn)度難以估算和控制,大大超過(guò)預(yù)期的資金和規(guī)定日期;軟件需求分析不夠充分,用戶(hù)不滿(mǎn)意“已經(jīng)完成”的軟件系統(tǒng)。軟件質(zhì)量難于保證;軟件維護(hù)困難;難以改正程序中的錯(cuò)誤;難以根據(jù)用戶(hù)的需要在原有程序中增加一些新的功能。24

第二十四頁(yè),共104頁(yè)。軟件危機(jī)有什么典型表現(xiàn)?通常沒(méi)有保留適當(dāng)?shù)奈臋n資料。文檔的作用:軟件開(kāi)發(fā)管理人員:用于管理和評(píng)價(jià)軟件開(kāi)發(fā)工程的進(jìn)展?fàn)顩r軟件開(kāi)發(fā)人員:用于開(kāi)發(fā)人員對(duì)各個(gè)階段的工作都進(jìn)行周密思考、全盤(pán)權(quán)衡、從而減少返工。并且可在開(kāi)發(fā)早期發(fā)現(xiàn)錯(cuò)誤和不一致性,便于及時(shí)加以糾正軟件維護(hù)人員:軟件維護(hù)的依據(jù)開(kāi)發(fā)成本逐年上升,軟件開(kāi)發(fā)生產(chǎn)率提高的速度,遠(yuǎn)遠(yuǎn)跟不上計(jì)算機(jī)應(yīng)用迅速普及深入的趨勢(shì)。25

第二十五頁(yè),共104頁(yè)。26

第二十六頁(yè),共104頁(yè)。幾個(gè)軟件危機(jī)的著名案例①1966年,IBM360機(jī)的操作系統(tǒng)。花費(fèi)5000人一年的工作量,寫(xiě)了近1萬(wàn)行代碼。錯(cuò)誤百出,每次的新版本就是從前一版本中找1000個(gè)程序錯(cuò)誤而修正的結(jié)果。②1963年,美國(guó)用于控制火星探測(cè)器的計(jì)算機(jī)軟件中的一個(gè)“

,”號(hào)被誤寫(xiě)為“.”,而致使飛往火星的探測(cè)器發(fā)生爆炸,造成高達(dá)數(shù)億美元的損失。③美國(guó)丹佛新國(guó)際機(jī)場(chǎng)自動(dòng)化行李系統(tǒng)軟件。投資1.93億美元,計(jì)劃1993年萬(wàn)圣節(jié)啟用。但開(kāi)發(fā)人員一直為系統(tǒng)錯(cuò)誤困擾,屢次推后啟用時(shí)間,直到1994年6月,機(jī)場(chǎng)計(jì)劃者承認(rèn)無(wú)法預(yù)測(cè)何時(shí)能啟用。④1996年,歐洲阿里亞納5型運(yùn)載火箭墜毀,造成5億美元損失。原因是控制軟件中的一個(gè)錯(cuò)誤。27

第二十七頁(yè),共104頁(yè)。§1.1.2產(chǎn)生軟件危機(jī)的原因主要兩個(gè)原因:

1、與軟件本身的特點(diǎn)有關(guān)2、與軟件開(kāi)發(fā)與維護(hù)的方法不正確有關(guān)。28

第二十八頁(yè),共104頁(yè)。一、軟件本身的特點(diǎn)(1)軟件與硬件、一般程序存在很多不同之處。

1、軟件與硬件不同抽象性。軟件生產(chǎn)沒(méi)有明顯的制造過(guò)程,難以衡量開(kāi)發(fā)進(jìn)展,也難以控制軟件質(zhì)量。問(wèn)題的隱蔽性。沒(méi)有硬件的磨損、老化問(wèn)題,但存在開(kāi)發(fā)早期在分析、設(shè)計(jì)階段的錯(cuò)誤,修改難度較大。29

第二十九頁(yè),共104頁(yè)。失效率蜘線30

第三十頁(yè),共104頁(yè)。改正一個(gè)問(wèn)題需付出的代價(jià)31

第三十一頁(yè),共104頁(yè)。2、軟件與一般程序不同(1)①軟件遠(yuǎn)比一般程序規(guī)模龐大,復(fù)雜性高軟件所反映的實(shí)際問(wèn)題的復(fù)雜性程序邏輯結(jié)構(gòu)的復(fù)雜性。例1:Windows95,1000萬(wàn)行代碼;

Windows2000,5000萬(wàn)行代碼例2:Exchange2000和windows2000開(kāi)發(fā)人員32

第三十二頁(yè),共104頁(yè)。軟件的規(guī)模33

軟件產(chǎn)品的特殊性和人類(lèi)智力的局限性,導(dǎo)致人們無(wú)力處理“復(fù)雜問(wèn)題”。第三十三頁(yè),共104頁(yè)。2、軟件與一般程序不同(2)②大型軟件開(kāi)發(fā)既有技術(shù)問(wèn)題,還有社會(huì)問(wèn)題。社會(huì)因素:組織機(jī)構(gòu)、體制、管理方式、觀念、人的心理素等。開(kāi)發(fā)團(tuán)隊(duì)成員分工合作技術(shù)與管理的矛盾軟件開(kāi)發(fā)人員對(duì)軟件應(yīng)用的領(lǐng)域知識(shí)的了解34

第三十四頁(yè),共104頁(yè)。二、軟件開(kāi)發(fā)維護(hù)方法中存在的問(wèn)題(1)①對(duì)用戶(hù)需求的獲取不正確用戶(hù)的原因分析人員的原因?qū)?/p>

分析人員的要求:溝通能力、歸納總結(jié)能力、經(jīng)驗(yàn)越是早期產(chǎn)生的錯(cuò)誤,付出的代價(jià)越大。圖:不同時(shí)期引入同一變動(dòng)的代價(jià)35

第三十五頁(yè),共104頁(yè)。二、軟件開(kāi)發(fā)維護(hù)方法中存在的問(wèn)題(2)②軟件開(kāi)發(fā)就是編寫(xiě)程序。一個(gè)完整的軟件產(chǎn)品由一整套完整的配置組成,程序只是其中的一個(gè)組成部分。軟件開(kāi)發(fā)過(guò)程包括多個(gè)階段,每個(gè)階段的產(chǎn)品都是最終的完整的軟件產(chǎn)品的一部分。③軟件開(kāi)發(fā)只要依靠個(gè)別編程高手就能完成。④輕視軟件維護(hù)軟件維護(hù)約占軟件費(fèi)用55一75%,包括修改軟件運(yùn)行的錯(cuò)誤;對(duì)軟件進(jìn)行改進(jìn)和功能擴(kuò)充。36

第三十六頁(yè),共104頁(yè)。37

軟件維護(hù)在軟件費(fèi)用的比例第三十七頁(yè),共104頁(yè)。三、其他產(chǎn)生軟件危機(jī)的原因①軟件開(kāi)發(fā)尚未完全擺脫手工藝的開(kāi)發(fā)方式。②軟件成本相當(dāng)昂貴,主要依靠大量復(fù)雜的、高強(qiáng)度的腦力勞動(dòng)③軟件的開(kāi)發(fā)和運(yùn)行常常受到計(jì)算機(jī)系統(tǒng)的限制,對(duì)計(jì)算機(jī)系統(tǒng)有著不同程度的依賴(lài)性。軟件的“可移植性”就是指的軟件對(duì)硬件的依賴(lài)程度。好的可移植性依賴(lài)少。38

第三十八頁(yè),共104頁(yè)。§1.1.3消除軟件危機(jī)的途徑1、徹底消除“軟件就是程序”的錯(cuò)誤觀念。2、充分認(rèn)識(shí)到軟件開(kāi)發(fā)是一種組織良好、管理嚴(yán)密、各類(lèi)人員協(xié)同配合、共同完成的工程項(xiàng)目,不是個(gè)人獨(dú)立的勞動(dòng)。

3、推廣和使用在實(shí)踐中總結(jié)出來(lái)的軟件開(kāi)發(fā)的成功技術(shù)和方法。

4、開(kāi)發(fā)和使用更好的軟件工具39

第三十九頁(yè),共104頁(yè)。總結(jié):“軟件工程”的方法理論是擺脫軟件危機(jī)的一個(gè)主要出路。計(jì)算機(jī)和軟件科學(xué)家為解決軟件危機(jī)問(wèn)題,嘗試將在其它領(lǐng)域中行之有效的工程學(xué)知識(shí)運(yùn)用到軟件開(kāi)發(fā)工作中來(lái),經(jīng)過(guò)不斷實(shí)踐和總結(jié),最后得出一個(gè)結(jié)論;按工程化的原則和方法組織軟件開(kāi)發(fā)工作是有效的,是擺脫軟件危機(jī)的一個(gè)主要出路。40

第四十頁(yè),共104頁(yè)。思考題(1)1)只要是編程高手,即使是不懂軟件工程,也能編出很好的軟件。軟件是服務(wù)于大眾,卻是由個(gè)性化的開(kāi)發(fā)人員完成的。如果個(gè)性化太強(qiáng),程序就無(wú)法閱讀,其他人員也就無(wú)法維護(hù)。例:國(guó)內(nèi)80年代涌現(xiàn)出來(lái)的眾多漢字操作系統(tǒng)均是由編程高手完成的。41

第四十一頁(yè),共104頁(yè)。思考題(2)2)只要擁有一套講述如何開(kāi)發(fā)軟件的書(shū)籍,并了解了書(shū)中的標(biāo)準(zhǔn)與示例,就可以解決軟件開(kāi)發(fā)中遇到的任何問(wèn)題。軟件是用來(lái)解決現(xiàn)實(shí)問(wèn)題的,現(xiàn)實(shí)問(wèn)題的特殊性對(duì)規(guī)范提出了挑戰(zhàn)(要進(jìn)行適應(yīng))。軟件技術(shù)是發(fā)展的,沒(méi)有祖?zhèn)髅胤健>拖駬碛惺匙V并不能成為名廚一樣,軟件開(kāi)發(fā)需要實(shí)踐。42

第四十二頁(yè),共104頁(yè)。思考題(3)3)只要擁有最好的開(kāi)發(fā)工具、最好的計(jì)算機(jī),一定能做出優(yōu)秀的軟件。硬件環(huán)境只是必要條件,人才是充分條件,軟件是人在一定的約束條件下創(chuàng)造出來(lái)的。因人因事而異。43

第四十三頁(yè),共104頁(yè)。思考題(4)4)軟件開(kāi)發(fā)時(shí),如果進(jìn)度慢,落后于計(jì)劃,可以增加更多的程序員來(lái)解決。增加人力可以減少開(kāi)發(fā)時(shí)間嗎?新手!任務(wù)的重新劃分!溝通更加復(fù)雜!必須依靠科學(xué)地計(jì)劃來(lái)解決這樣的問(wèn)題。44

第四十四頁(yè),共104頁(yè)。思考題(5)5)爭(zhēng)議:如果軟件運(yùn)行較慢,是換一臺(tái)更快的計(jì)算機(jī),還是設(shè)計(jì)一種更快的算法?軟件的性能問(wèn)題;應(yīng)用級(jí)別→算法的合理性;系統(tǒng)級(jí)別→操作系統(tǒng)、數(shù)據(jù)庫(kù)系統(tǒng)、系統(tǒng)軟件等;45

第四十五頁(yè),共104頁(yè)。§1.2軟件工程§1.2.1軟件工程介紹一、“軟件工程”的典型定義1)1968年,第一屆NATO會(huì)議為了經(jīng)濟(jì)地獲得可靠的且能在實(shí)際機(jī)器上有效地運(yùn)行的軟件,而建立和使用完善的工程原理。2)IEEE/CS(電氣電子工程師協(xié)會(huì)/計(jì)算機(jī)科學(xué)分會(huì))①1993年,將系統(tǒng)化的、規(guī)范的、可度量的方法應(yīng)用于軟件的開(kāi)發(fā)、運(yùn)行和維護(hù)的過(guò)程,即將工程化應(yīng)用于軟件中。②對(duì)①中提到的各種方法的研究46

第四十六頁(yè),共104頁(yè)。3)其他學(xué)者的定義Boehm:運(yùn)用現(xiàn)代科學(xué)技術(shù)知識(shí)來(lái)設(shè)計(jì)并構(gòu)造計(jì)算機(jī)程序及為開(kāi)發(fā)、運(yùn)行和維護(hù)這些程序所必需的相關(guān)文件資料。FritzBauer:建立并使用完善的工程化原則,以較經(jīng)濟(jì)的手段獲得能在實(shí)際機(jī)器上有效運(yùn)行的可靠軟件的一系列方法所有定義都強(qiáng)調(diào)在軟件開(kāi)發(fā)過(guò)程中,應(yīng)用工程化原則的重要性47

第四十七頁(yè),共104頁(yè)。幾個(gè)關(guān)于軟件工程本質(zhì)特性和基本原理的問(wèn)題問(wèn)題一:軟件工程適用范圍?問(wèn)題二:軟件工程如何控制系統(tǒng)開(kāi)發(fā)的復(fù)雜性的?問(wèn)題三:以你的經(jīng)驗(yàn),舉例說(shuō)明一個(gè)成熟的軟件通常采用什么方法來(lái)適應(yīng)現(xiàn)實(shí)世界的變化的?48

第四十八頁(yè),共104頁(yè)。幾個(gè)關(guān)于軟件工程本質(zhì)特性和基本原理的問(wèn)題問(wèn)題四:假設(shè)某軟件公司,能為同一個(gè)用戶(hù)開(kāi)發(fā)兩個(gè)不同層次的軟件:一個(gè)層次的軟件功能非常強(qiáng)大,在滿(mǎn)足用戶(hù)所有需求的基礎(chǔ)上,還能提供大大超過(guò)用戶(hù)需求的其他更多更強(qiáng)的功能;另一個(gè)層次的軟件僅僅能滿(mǎn)足用戶(hù)需求,但沒(méi)有提供其他額外的功能。請(qǐng)問(wèn)如果你是項(xiàng)目負(fù)責(zé)人,你會(huì)選擇為客戶(hù)開(kāi)發(fā)那個(gè)層次的軟件?問(wèn)題五:協(xié)同工作有什么重要性?49

第四十九頁(yè),共104頁(yè)。幾個(gè)關(guān)于軟件工程本質(zhì)特性和基本原理的問(wèn)題問(wèn)題五:怎樣理解“在軟件工程領(lǐng)域中是由具有一種文化背景的人替具有另一種文化背景的人創(chuàng)造產(chǎn)品”這句話(huà)?問(wèn)題六:某軟件開(kāi)發(fā),由于時(shí)間和資金都非常緊迫,在需求分析人員非常認(rèn)真、仔細(xì)地做完需求分析之后,說(shuō):我們可以保證我們的需求分析正確性,不用花時(shí)間檢查了,設(shè)計(jì)人員可以直接拿著這份分析報(bào)告,馬上開(kāi)始設(shè)計(jì)。如果你是項(xiàng)目負(fù)責(zé)人,你會(huì)如何決定?為什么?問(wèn)題七:在需求分析完成并獲得了用戶(hù)的肯定,也通過(guò)了評(píng)審,進(jìn)入軟件設(shè)計(jì)階段之后,用戶(hù)的想法有了改變,提出了一個(gè)新的要求,此時(shí)如果你是項(xiàng)目負(fù)責(zé)人,應(yīng)該怎樣做?50

第五十頁(yè),共104頁(yè)。二、軟件工程本質(zhì)特性(2)1)軟件工程關(guān)注于大型程序的構(gòu)造。

2)軟件工程的中心課題是控制復(fù)雜性主要考慮:如何分解和集成為什么要分解:G.Miller,“7士2”原則3)軟件經(jīng)常變化4)開(kāi)發(fā)軟件的效率非常重要5)和諧地合作是開(kāi)發(fā)軟件的關(guān)鍵6)軟件必須有效地支持它的用戶(hù)7)在軟件工程領(lǐng)域中是由具有一種文化背景的人替具有另一種文化背景的人創(chuàng)造產(chǎn)品擴(kuò)展定義:軟件=知識(shí)+程序+數(shù)據(jù)+文檔51

第五十一頁(yè),共104頁(yè)。§1.2.2軟件工程的基本原理B.W.Boehm,1983年提出:1)用分階段的生命周期計(jì)劃嚴(yán)格管理

2)堅(jiān)持進(jìn)行階段評(píng)審

3)實(shí)行嚴(yán)格的產(chǎn)品控制基線基線(baseline)控制4)采用現(xiàn)代程序設(shè)計(jì)技術(shù)5)結(jié)果應(yīng)能清楚地審查6)開(kāi)發(fā)小組的人員應(yīng)該少而精7)承認(rèn)不斷改進(jìn)軟件工程實(shí)踐的必要性52

第五十二頁(yè),共104頁(yè)。§1.2.3軟件工程方法學(xué)軟件工程包括“管理”和“技術(shù)”兩方面內(nèi)容:管理——對(duì)人、財(cái)、物的合理使用和配置;技術(shù)——指軟件開(kāi)發(fā)中采用的方法、工具和過(guò)程。什么是軟件工程方法學(xué)?通常把在軟件生命周期全過(guò)程中使用的一整套技術(shù)方法的集合稱(chēng)為方法學(xué)(methodology),也稱(chēng)為范型(paradigm)。53

第五十三頁(yè),共104頁(yè)。一、軟件工程方法學(xué)三要素:工具、方法和過(guò)程要素一:軟件工程過(guò)程規(guī)定了完成各項(xiàng)任務(wù)的工作步驟。要素二:軟件工程方法完成軟件開(kāi)發(fā)的各項(xiàng)任務(wù)的技術(shù)方法,為軟件開(kāi)發(fā)提供了“如何做”的技術(shù)。如項(xiàng)目計(jì)劃與估算、軟件系統(tǒng)需求分析、數(shù)據(jù)結(jié)構(gòu)、系統(tǒng)總體結(jié)構(gòu)的設(shè)計(jì)、算法過(guò)程的設(shè)計(jì)、編碼、測(cè)試以及維護(hù)等。要素三:軟件工程工具計(jì)算機(jī)輔助軟件工程CASE(computerAidedsottwareEngineering),為軟件工程方法提供自動(dòng)或半自動(dòng)的軟件支撐環(huán)境。54

第五十四頁(yè),共104頁(yè)。二、軟件工程方法學(xué)思想兩種:1、傳統(tǒng)方法學(xué)(生命周期方法學(xué)或結(jié)構(gòu)化范型)

2、面向?qū)ο蠓椒?5

第五十五頁(yè),共104頁(yè)。1.傳統(tǒng)方法學(xué)(生命周期方法學(xué)或結(jié)構(gòu)化范型)采用結(jié)構(gòu)化技術(shù)(結(jié)構(gòu)化分析、結(jié)構(gòu)化設(shè)計(jì)和結(jié)構(gòu)化實(shí)現(xiàn))來(lái)完成軟件開(kāi)發(fā)的各項(xiàng)任務(wù);把軟件生命周期劃分為若干個(gè)階段,按順序完成每個(gè)階段的任務(wù);每個(gè)階段開(kāi)始和結(jié)束都有嚴(yán)格的標(biāo)準(zhǔn),對(duì)任何兩個(gè)相鄰的階段而言,前一個(gè)階段的結(jié)束標(biāo)準(zhǔn)就是后一階段的開(kāi)始標(biāo)準(zhǔn);每一個(gè)階段結(jié)束之前都必須進(jìn)行正式嚴(yán)格的技術(shù)審查和管理復(fù)審56

第五十六頁(yè),共104頁(yè)。傳統(tǒng)方法學(xué)的優(yōu)點(diǎn):分解任務(wù),分工合作,降低整個(gè)軟件開(kāi)發(fā)工程的困難;采用科學(xué)的管理技術(shù)和良好的技術(shù)方法對(duì)每個(gè)階段成果都進(jìn)行嚴(yán)格的審查。保證了軟件的質(zhì)量。傳統(tǒng)方法學(xué)的缺點(diǎn):把數(shù)據(jù)和操作人為地分離成兩個(gè)獨(dú)立的部分,增加了軟件開(kāi)發(fā)與維護(hù)的難度。57

第五十七頁(yè),共104頁(yè)。2、面向?qū)ο蠓椒▽W(xué)(OO,Object-oriented)

模擬人類(lèi)習(xí)慣的思維方式,使開(kāi)發(fā)軟件的方法與過(guò)程盡可能接近人類(lèi)認(rèn)識(shí)世界解決問(wèn)題的方法與過(guò)程,從而使描述問(wèn)題的問(wèn)題空間(也稱(chēng)為問(wèn)題域)與實(shí)現(xiàn)解法的解空間(也稱(chēng)為求解域)在結(jié)構(gòu)上盡可能一致。58

第五十八頁(yè),共104頁(yè)。面向?qū)ο蠓椒▽W(xué)4要點(diǎn)把對(duì)象(object)作為融合了數(shù)據(jù)及在數(shù)據(jù)上的操作行為的統(tǒng)一的軟件構(gòu)件。把所有對(duì)象都劃分成類(lèi)(class)。按照父類(lèi)(或稱(chēng)為基類(lèi))與子類(lèi)(或稱(chēng)為派生類(lèi))的關(guān)系,把若干個(gè)相關(guān)類(lèi)組成一個(gè)層次結(jié)構(gòu)的系統(tǒng)(也稱(chēng)為類(lèi)等級(jí))。對(duì)象彼此間僅能通過(guò)發(fā)送消息互相聯(lián)系。59

第五十九頁(yè),共104頁(yè)。二者區(qū)別傳統(tǒng)方法學(xué):強(qiáng)調(diào)自頂向下順序地完成軟件開(kāi)發(fā)的各階段任務(wù)。面向?qū)ο蠓椒ǎ菏侵鲃?dòng)地多次反復(fù)迭代的演化過(guò)程60

第六十頁(yè),共104頁(yè)。3軟件生命周期一、什么是軟件生命周期(lifecycle)指軟件孕育、誕生、成長(zhǎng)、成熟、衰亡的生存過(guò)程

GB一8567中將軟件生命周期分為7個(gè)階段:可行性研究和項(xiàng)目開(kāi)發(fā)計(jì)劃;需求分析;慨要設(shè)計(jì);詳細(xì)設(shè)計(jì);編碼;測(cè)試;維護(hù)其他分法,5個(gè)階段:需求定義、設(shè)計(jì)、編碼、測(cè)試及維護(hù);需求定義階段包括可行性研究和項(xiàng)目開(kāi)發(fā)計(jì)劃、需求分析;設(shè)計(jì)階段包括慨要設(shè)計(jì)和詳細(xì)設(shè)計(jì)。61

第六十一頁(yè),共104頁(yè)。62

本教材對(duì)軟件生命周期的劃分第六十二頁(yè),共104頁(yè)。1、軟件定義時(shí)期任務(wù):確定軟件開(kāi)發(fā)工程必須完成的總目標(biāo);確定工程的可行性;導(dǎo)出實(shí)現(xiàn)工程目標(biāo)應(yīng)該采用的策略及系統(tǒng)必須完成的功能;估計(jì)完成該項(xiàng)工程需要的資源和成本,并且制定工程進(jìn)度表。通常分為問(wèn)題定義、可行性研究和需求分析三個(gè)階段。63

第六十三頁(yè),共104頁(yè)。軟件定義時(shí)期的三個(gè)階段①問(wèn)題定義階段回答:

回答:“要解決的問(wèn)題是什么?”

②可行性研究階段回答:“對(duì)于上一個(gè)階段所確定的問(wèn)題有行得通的解決辦法嗎?

③需求分析(RequirementAnalysis)回答“為了解決這個(gè)問(wèn)題,目標(biāo)系統(tǒng)必須做什么?

用正式文檔準(zhǔn)確地記錄對(duì)目標(biāo)系統(tǒng)的需求,這份文檔通常稱(chēng)為規(guī)格說(shuō)明書(shū)(specification)。64

第六十四頁(yè),共104頁(yè)。2、軟件開(kāi)發(fā)時(shí)期具體設(shè)計(jì)和實(shí)現(xiàn)前一個(gè)時(shí)期定義的軟件,通常分為四個(gè)階段:①總體設(shè)計(jì)(概要設(shè)計(jì))回答:“概括地說(shuō),應(yīng)該怎樣實(shí)現(xiàn)目標(biāo)系統(tǒng)?”根據(jù)需求分析,設(shè)計(jì)軟件的體系結(jié)構(gòu);定義結(jié)構(gòu)中的組成模塊。②詳細(xì)設(shè)計(jì)(模塊設(shè)計(jì))回答:“應(yīng)該怎樣具體地實(shí)現(xiàn)這個(gè)系統(tǒng)呢?”對(duì)每個(gè)模塊要完成的工作進(jìn)行具體的描述,為源程序編寫(xiě)打下基礎(chǔ)。編寫(xiě)設(shè)計(jì)說(shuō)明書(shū),提交評(píng)審。二者統(tǒng)稱(chēng)系統(tǒng)設(shè)計(jì)

65

第六十五頁(yè),共104頁(yè)。軟件開(kāi)發(fā)時(shí)期四個(gè)階段③程序編寫(xiě)(Coding,Programming):把軟件設(shè)計(jì)轉(zhuǎn)換成計(jì)算機(jī)可以接受的程序代碼。④軟件測(cè)試(Testing):按規(guī)定的各項(xiàng)需求,逐項(xiàng)進(jìn)行有效性測(cè)試,決定已開(kāi)發(fā)的軟件是否合格,能否交付用戶(hù)使用,包括單元測(cè)試和組裝測(cè)試。二者統(tǒng)稱(chēng)系統(tǒng)實(shí)現(xiàn)66

第六十六頁(yè),共104頁(yè)。3、運(yùn)行維護(hù)(軟件維護(hù))時(shí)期(Running/Maintenance)使軟件持久的滿(mǎn)足用戶(hù)的需要。包括:改正性維護(hù):運(yùn)行中發(fā)現(xiàn)了軟件中的錯(cuò)誤需要修正。適應(yīng)性維護(hù):為了適應(yīng)變化了的軟件工作環(huán)境,需做適當(dāng)變更。完善性維護(hù):當(dāng)用戶(hù)有新的要求時(shí),應(yīng)該及時(shí)改進(jìn)軟件以滿(mǎn)足用戶(hù)的要求。預(yù)防性維護(hù):即修改軟件為將來(lái)的維護(hù)活動(dòng)預(yù)先做準(zhǔn)備。67

第六十七頁(yè),共104頁(yè)。幾個(gè)關(guān)干軟件生命周期階段的問(wèn)題問(wèn)題一:開(kāi)發(fā)一個(gè)軟件大概需要多少資金、時(shí)間,將獲得什么效益一般是在哪個(gè)階段確定?相對(duì)而言,在哪個(gè)階段與用戶(hù)交流最多?問(wèn)題二:系統(tǒng)分析員主要工作在哪個(gè)時(shí)期?程序員主要工作在哪個(gè)時(shí)期?問(wèn)題三:軟件定義時(shí)期的三個(gè)階段,各自回答什么關(guān)鍵問(wèn)題?問(wèn)題四:軟件開(kāi)發(fā)時(shí)期有幾個(gè)階段?各自回答什么關(guān)鍵問(wèn)題?68

第六十八頁(yè),共104頁(yè)。問(wèn)題五:軟件體系結(jié)構(gòu)最早是在哪個(gè)階段決定的?問(wèn)題六:詳細(xì)設(shè)計(jì)與程序編寫(xiě)階段有什么樣的密切聯(lián)系?問(wèn)題七:“軟件測(cè)試是為了驗(yàn)證系統(tǒng)的正確性”這句話(huà)對(duì)嗎?問(wèn)題八:軟件維護(hù)有那幾種?各有什么功能?69

第六十九頁(yè),共104頁(yè)。§1.4軟件過(guò)程(SoftwareProcess)1、什么是軟件過(guò)程為了獲得高質(zhì)量軟件所需要完成的一系列任務(wù)的框架,它規(guī)定了完成各項(xiàng)任務(wù)的工作步驟。

ISO9000的定義:使用資源將輸入轉(zhuǎn)化為輸出的活動(dòng)所構(gòu)成的系統(tǒng)。“系統(tǒng)”是相互關(guān)聯(lián)或相互作用的一組要素。過(guò)程是軟件工程三要素之一。通常用軟件生命周期模型來(lái)描述。70

第七十頁(yè),共104頁(yè)。2、什么是軟件生命周期模型又稱(chēng):軟件開(kāi)發(fā)模型/軟件過(guò)程模型/軟件工程范型。指軟件項(xiàng)目從需求定義直至軟件經(jīng)使用后廢棄為止,跨越整個(gè)生存周期的系統(tǒng)開(kāi)發(fā)、運(yùn)作和維護(hù)所實(shí)施的全部過(guò)程、活動(dòng)和任務(wù)的結(jié)構(gòu)框架。常見(jiàn)的有:瀑布模型、演化模型、螺旋模型、噴泉模型、智能模型71

第七十一頁(yè),共104頁(yè)。§1.4.1瀑布模型(waterfallmodel)1970年,由W.Royce提出

一、瀑布模型的過(guò)程

1、傳統(tǒng)的瀑布模型從上一階段接受本階段

的工作對(duì)象,作為輸入;利用輸入,完成本階段活

動(dòng)的內(nèi)容.本階段的工作成果作為輸出

傳入下一階段。72

第七十二頁(yè),共104頁(yè)。瀑布模型—實(shí)際的瀑布模型

增加了一個(gè)評(píng)審活動(dòng),評(píng)審每個(gè)階段完成的活動(dòng),若得到確認(rèn),則進(jìn)行下一階段的活動(dòng);否則返回前一階段,甚至更前階段返工;73

需求分析驗(yàn)證規(guī)格說(shuō)明驗(yàn)證設(shè)計(jì)驗(yàn)證編碼測(cè)試綜合測(cè)試維護(hù)變化的需求驗(yàn)證第七十三頁(yè),共104頁(yè)。二、瀑布模型特點(diǎn)階段間具有順序性和依賴(lài)性推遲實(shí)現(xiàn)的觀點(diǎn)質(zhì)量保證的觀點(diǎn)74

第七十四頁(yè),共104頁(yè)。三、瀑布模型優(yōu)缺點(diǎn)優(yōu)點(diǎn):可強(qiáng)迫開(kāi)發(fā)人員采用規(guī)范的方法;嚴(yán)格地規(guī)定了每個(gè)階段必須提交的文檔;要求每個(gè)階段的所有產(chǎn)品都必須經(jīng)過(guò)質(zhì)量保證小組的仔細(xì)驗(yàn)證;缺點(diǎn):無(wú)法解決軟件需求不明確或不準(zhǔn)確的問(wèn)題;可能導(dǎo)致最終開(kāi)發(fā)的產(chǎn)品不能真正滿(mǎn)足用戶(hù)需要。瀑布模型比較適合開(kāi)發(fā)需求明確的軟件。75

第七十五頁(yè),共104頁(yè)。§1.4.2快速原型模型1、什么是“原型”?

原型是快速實(shí)現(xiàn)和運(yùn)行的早期版本,反映最終系統(tǒng)部分重要特性。常見(jiàn)的原型實(shí)例:人機(jī)界面;系統(tǒng)主要功能。

優(yōu)點(diǎn):1、通常能反映用戶(hù)真實(shí)需求;2、軟件產(chǎn)品的開(kāi)發(fā)基本上是線性順序進(jìn)行的。76

第七十六頁(yè),共104頁(yè)。2、快速原型的過(guò)程如右圖。獲得用戶(hù)的基本需求說(shuō)明,據(jù)此快速建立一個(gè)小型軟件系統(tǒng).用戶(hù)試用,對(duì)其評(píng)價(jià);開(kāi)發(fā)人員按照用戶(hù)的意見(jiàn)快速地修改原型系統(tǒng),獲得新的原型版本,再請(qǐng)用戶(hù)試用,如此反復(fù),直到滿(mǎn)足用戶(hù)的要求;用戶(hù)確認(rèn)原型系統(tǒng)之后,開(kāi)發(fā)人員據(jù)此書(shū)寫(xiě)規(guī)格說(shuō)明文檔,進(jìn)行下一步開(kāi)發(fā)。77

第七十七頁(yè),共104頁(yè)。1.4.3增量(漸增)模型

把軟件產(chǎn)品作為一系列的增量構(gòu)件來(lái)設(shè)計(jì)、編碼、集成和測(cè)試。每個(gè)構(gòu)件由多個(gè)相互作用的模塊構(gòu)成,并且能夠完成特定的功能。使用增量模型時(shí),第一個(gè)階段的增量構(gòu)件往往實(shí)現(xiàn)軟件的基本需求,提供最核心的功能;后面的增量構(gòu)架逐漸添加系統(tǒng)的功能。78

第七十八頁(yè),共104頁(yè)。圖:增量(漸增)模型79

需求分析驗(yàn)證規(guī)格說(shuō)明驗(yàn)證設(shè)計(jì)驗(yàn)證維護(hù)針對(duì)每個(gè)構(gòu)件完成詳細(xì)設(shè)計(jì)、編碼和集成,經(jīng)測(cè)試后交付給用戶(hù)第七十九頁(yè),共104頁(yè)。增量模型注意事項(xiàng)增量構(gòu)件規(guī)模適中;分解的約束條件是當(dāng)把新構(gòu)件集成到現(xiàn)有軟件中時(shí),所形成的產(chǎn)品必須是可測(cè)試的;軟件體系必須是開(kāi)放的,即在對(duì)現(xiàn)有系統(tǒng)添加新增量構(gòu)件時(shí),不能破壞系統(tǒng)原有功能。80

第八十頁(yè),共104頁(yè)。增量模型優(yōu)缺點(diǎn)優(yōu)點(diǎn):能在較短的時(shí)間內(nèi),提供可完成部分工作的初步產(chǎn)品給用戶(hù);用戶(hù)有較為充裕的時(shí)間學(xué)習(xí)和適應(yīng)新產(chǎn)品。缺點(diǎn):對(duì)開(kāi)發(fā)人員技術(shù)能力要求較高,要求能從系統(tǒng)整體出發(fā)正確劃分增量構(gòu)件,并進(jìn)行分別開(kāi)發(fā),最后能很好地集成這些構(gòu)件。81

第八十一頁(yè),共104頁(yè)。一種風(fēng)險(xiǎn)更大的增量模型有可能提高開(kāi)發(fā)速度,但需要密切地監(jiān)控整個(gè)開(kāi)發(fā)過(guò)程,否則將冒構(gòu)件無(wú)法集成到一起的風(fēng)險(xiǎn),。82

分析分析分析分析設(shè)計(jì)設(shè)計(jì)設(shè)計(jì)設(shè)計(jì)編碼編碼編碼編碼測(cè)試測(cè)試測(cè)試測(cè)試構(gòu)件1構(gòu)件2構(gòu)件3構(gòu)件4第八十二頁(yè),共104頁(yè)。§1.4.4螺旋模型(spiralmodel)大型軟件開(kāi)發(fā)面臨的重要問(wèn)題:軟件風(fēng)險(xiǎn)如:產(chǎn)品交付給用戶(hù)之后,用戶(hù)不滿(mǎn)意;開(kāi)發(fā)進(jìn)度落后,開(kāi)發(fā)成本超出預(yù)算;

產(chǎn)品完成前關(guān)鍵的開(kāi)發(fā)人員跳槽;

在產(chǎn)品投人市場(chǎng)前,競(jìng)爭(zhēng)對(duì)手發(fā)布了一個(gè)功能相近,價(jià)格更低的軟件………構(gòu)建原型能使某些類(lèi)型的風(fēng)險(xiǎn)降到最低.83

第八十三頁(yè),共104頁(yè)。一、簡(jiǎn)單的螺旋模型

螺旋模型改進(jìn)了原型模型,在每個(gè)階段都加入風(fēng)險(xiǎn)分析。84

圖1.7簡(jiǎn)化的螺旋模型圖1.7簡(jiǎn)化的螺旋模型圖1.7簡(jiǎn)化的螺旋模型

第八十四頁(yè),共104頁(yè)。85

二、完整的螺旋模型第八十五頁(yè),共104頁(yè)。螺旋模型的優(yōu)缺點(diǎn)優(yōu)點(diǎn):強(qiáng)調(diào)可選方案和約束條件,有利于已有軟件的重用,也有助于把軟件質(zhì)量作為軟件開(kāi)發(fā)的一個(gè)重要目標(biāo);減少了過(guò)多測(cè)試(浪費(fèi)資金)或測(cè)試不足(產(chǎn)品故障多)所帶來(lái)的風(fēng)險(xiǎn);維護(hù)是一個(gè)周期,與開(kāi)發(fā)并沒(méi)有本質(zhì)區(qū)別缺點(diǎn):需要開(kāi)發(fā)人員具有相當(dāng)豐富的風(fēng)險(xiǎn)評(píng)估經(jīng)驗(yàn)和專(zhuān)門(mén)知識(shí);進(jìn)行風(fēng)險(xiǎn)分析的費(fèi)用可能較大。適合大型軟件開(kāi)發(fā)86

第八十六頁(yè),共104頁(yè)。各種模型的比較模型優(yōu)點(diǎn)缺點(diǎn)瀑布模型規(guī)范,文檔驅(qū)動(dòng)系統(tǒng)可能不滿(mǎn)足客戶(hù)真正的需求快速原型克服了瀑布型的缺點(diǎn)增量模型開(kāi)發(fā)早期回報(bào)明確,易于維護(hù)要求開(kāi)放的軟件體系結(jié)構(gòu)螺旋模型風(fēng)險(xiǎn)驅(qū)動(dòng),適用于大型項(xiàng)目開(kāi)發(fā)風(fēng)險(xiǎn)分析人員需要有經(jīng)驗(yàn)且經(jīng)過(guò)充分訓(xùn)練87

第八十七頁(yè),共104頁(yè)。88

§1.4.5噴泉模型典型的面向?qū)ο蟮能浖^(guò)程模型之一。第八十八頁(yè),共104頁(yè)。89

§1.4.6Rational統(tǒng)一過(guò)程1.最佳實(shí)踐1.最佳實(shí)踐1.最佳實(shí)踐迭代式開(kāi)發(fā)管理需求使用基于構(gòu)件的體系結(jié)構(gòu)可視化建模驗(yàn)證軟件質(zhì)量控制軟件變更第八十九頁(yè),共104頁(yè)。2.RUP軟件開(kāi)發(fā)生命周期90

第九十頁(yè),共104頁(yè)。1.4.7敏捷過(guò)程與極限編程91

1.敏捷過(guò)程個(gè)體和交互勝過(guò)過(guò)程和工具可以工作的軟件勝過(guò)面面俱到的文檔客戶(hù)合作勝過(guò)合同談判響應(yīng)變化勝過(guò)遵循計(jì)劃第九十一頁(yè),共104頁(yè)。2.極限編程92

極限編程已經(jīng)成為敏捷過(guò)程一個(gè)典型的開(kāi)發(fā)方

溫馨提示

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

評(píng)論

0/150

提交評(píng)論