第1章-軟件工程學(xué)概述1_第1頁(yè)
第1章-軟件工程學(xué)概述1_第2頁(yè)
第1章-軟件工程學(xué)概述1_第3頁(yè)
第1章-軟件工程學(xué)概述1_第4頁(yè)
第1章-軟件工程學(xué)概述1_第5頁(yè)
已閱讀5頁(yè),還剩75頁(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)介

1、軟件工程軟件工程系軟件工程系 殷殷 旭旭課件:課件: 教材n 張海藩:軟件工程導(dǎo)論(第6版) 清華大學(xué)出版社 實(shí)驗(yàn)指導(dǎo)書n 自編,郵箱、課程網(wǎng)站o 實(shí)驗(yàn)參考書n 李龍澍,軟件工程課程設(shè)計(jì),機(jī)械工業(yè)出版n 圖形工具M(jìn)icrosoft VISIO / Rational Rose 2003 / EA考試成績(jī)o 平時(shí)成績(jī)平時(shí)成績(jī)50%50% 課堂練習(xí)、作業(yè)、考勤課堂練習(xí)、作業(yè)、考勤 20%20% 實(shí)驗(yàn)實(shí)驗(yàn)2 2次次+ + 報(bào)告報(bào)告 30%30%o 期末考試期末考試50%50%實(shí)驗(yàn)安排1. 系統(tǒng)分析與設(shè)計(jì)1 第13周周四10-13節(jié)2. 系統(tǒng)分析與設(shè)計(jì)2 第14周周四10-13節(jié)地點(diǎn):教2-407內(nèi)容:

2、 教師指定或?qū)W生自選一個(gè)自己所熟悉的小型應(yīng)用系統(tǒng);學(xué)生利用軟件工程思想,對(duì)該系統(tǒng)進(jìn)行分析和設(shè)計(jì);學(xué)生需要利用需求與設(shè)計(jì)工具描述分析和設(shè)計(jì)結(jié)果,書寫該系統(tǒng)的軟件需求說(shuō)明書和軟件設(shè)計(jì)說(shuō)明書。軟件工程課程網(wǎng)站o 提供教學(xué)提供教學(xué)和實(shí)驗(yàn)所需的各種在線資源和實(shí)驗(yàn)所需的各種在線資源1 1、課程、課程在線資源公網(wǎng)訪問(wèn)地址:在線資源公網(wǎng)訪問(wèn)地址:http:/ 2、課程、課程在線資源校內(nèi)訪問(wèn)地址:在線資源校內(nèi)訪問(wèn)地址:http:/0/courses/se/index.html0/courses/se/index.html3 3、更多、更多在線資源訪問(wèn)地

3、址:在線資源訪問(wèn)地址:公網(wǎng):公網(wǎng):http:/ 1:o 我們已經(jīng)學(xué)習(xí)過(guò):計(jì)算機(jī)組成原理、數(shù)據(jù)結(jié)構(gòu)、操作系統(tǒng)、程序設(shè)計(jì)等課程,是否具備完成一般軟件目標(biāo)能力呢?o 能否開(kāi)發(fā)出合格的網(wǎng)上招聘系統(tǒng)?o 有了上述技術(shù)夠不夠?o 有了上述技術(shù)還不夠,還要有軟件開(kāi)發(fā)的專門技術(shù),如:n 每一個(gè)軟件技術(shù)人員都希望有軟件項(xiàng)目開(kāi)發(fā)。那么是不是有投資就可以開(kāi)發(fā)呢?這就是所謂的可行性問(wèn)題。n 如何計(jì)算一個(gè)軟件工程的費(fèi)用與開(kāi)發(fā)周期。n 對(duì)該問(wèn)題要進(jìn)行分析、設(shè)計(jì)。n 如果軟件開(kāi)發(fā)周期比較長(zhǎng),如何應(yīng)付開(kāi)發(fā)對(duì)象的變化。n 參加的人員多的時(shí)候。對(duì)參加人員的分工、布局。n 軟件質(zhì)量怎么管理?n 一個(gè)軟件的開(kāi)發(fā)用什么工具。o o 只

4、有學(xué)習(xí)軟件工程,才能回答上述問(wèn)題。軟件工程第1章軟件工程學(xué)概述本章學(xué)習(xí)目標(biāo)o 掌握幾個(gè)基本概念:u 軟件與軟件工程u 軟件生存周期u 軟件開(kāi)發(fā)模型o 了解軟件開(kāi)發(fā)的幾個(gè)模型(瀑布型、增量型、螺旋型等)本章內(nèi)容1.1、軟件的定義1.2、軟件危機(jī)1.3、軟件工程1.4、軟件生存期1.5、軟件過(guò)程什么是軟件-1q 軟件是計(jì)算機(jī)系統(tǒng)中與硬件相互依存的另一部分,是指揮控制計(jì)算機(jī)系統(tǒng)工作的神經(jīng)思維中樞。q 它是包括程序,數(shù)據(jù)及其相關(guān)文檔的完整集合(從計(jì)算機(jī)角度看)。 如果將硬件比作人的身體,那么軟件就相當(dāng)于人的 。神經(jīng)中樞和知識(shí)才能神經(jīng)中樞和知識(shí)才能1.1、軟件的定義軟件的定義什么是軟件-2q 軟件的簡(jiǎn)要

5、定義: 軟件=程序+數(shù)據(jù)+文檔+規(guī)則1.1、軟件的定義軟件的定義程序程序:是計(jì)算機(jī)需要遵照?qǐng)?zhí)行的一系列指令,是計(jì)算機(jī)需要遵照?qǐng)?zhí)行的一系列指令,它作為一種具有邏輯結(jié)構(gòu)的信息,精確而完整它作為一種具有邏輯結(jié)構(gòu)的信息,精確而完整地描述計(jì)算任務(wù)中的處理對(duì)象和處理規(guī)則。地描述計(jì)算任務(wù)中的處理對(duì)象和處理規(guī)則。文檔文檔:開(kāi)發(fā)、使用和維護(hù)程序所需要的圖文資開(kāi)發(fā)、使用和維護(hù)程序所需要的圖文資料。料。數(shù)據(jù)數(shù)據(jù):向一個(gè)程序提供的輸入。向一個(gè)程序提供的輸入。 規(guī)則規(guī)則:通常是在文檔中說(shuō)明并在程序中實(shí)現(xiàn)的。通常是在文檔中說(shuō)明并在程序中實(shí)現(xiàn)的。程序怎樣定義程序怎樣定義(1).面向過(guò)程的程序面向過(guò)程的程序 = 算法算法 +

6、 數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)結(jié)構(gòu)。(2).面向?qū)ο蟮某绦蛎嫦驅(qū)ο蟮某绦?=(3).面向構(gòu)件的程序面向構(gòu)件的程序 = 什么是程序?qū)ο髮?duì)象 + 消息。消息。構(gòu)件構(gòu)件 + 構(gòu)架。構(gòu)架。1.1、軟件的定義軟件的定義Roger S.Pressman說(shuō):說(shuō):“越早開(kāi)始寫代碼的人,就是越遲越早開(kāi)始寫代碼的人,就是越遲完成代碼的人完成代碼的人”。對(duì)軟件的認(rèn)識(shí)開(kāi)發(fā)軟件就是編寫程序?開(kāi)發(fā)軟件就是編寫程序?程序、軟件與軟件產(chǎn)品:程序、軟件與軟件產(chǎn)品: 獨(dú)唱獨(dú)唱小合唱小合唱合唱合唱萬(wàn)人大合唱萬(wàn)人大合唱 | | | 簡(jiǎn)單程序簡(jiǎn)單程序 較復(fù)雜程序較復(fù)雜程序 軟件(程序間協(xié)軟件(程序間協(xié)作)作)1.1、軟件的定義軟件的定義邏輯實(shí)體軟件

7、的特點(diǎn)-1物理實(shí)體1.1、軟件的定義軟件的定義-軟件的特點(diǎn)-2制造是開(kāi)發(fā)的,而不是制造的是開(kāi)發(fā)的,而不是制造的需求需求.-軟件質(zhì)量取決于開(kāi)發(fā)人員的個(gè)人軟件質(zhì)量取決于開(kāi)發(fā)人員的個(gè)人技能和創(chuàng)造能力技能和創(chuàng)造能力1.1、軟件的定義軟件的定義軟件的特點(diǎn)-3具有柔性具有柔性設(shè)計(jì)房屋如果需要修改,首先修改設(shè)計(jì)房屋如果需要修改,首先修改設(shè)計(jì)對(duì)于大多數(shù)工程產(chǎn)品而言對(duì)于大多數(shù)工程產(chǎn)品而言 1.1、軟件的定義軟件的定義軟件的特點(diǎn)-3具有柔性具有柔性如果需要修改,可以修改產(chǎn)品本身,而不需要如果需要修改,可以修改產(chǎn)品本身,而不需要修改設(shè)計(jì),為后期維護(hù)留下隱患修改設(shè)計(jì),為后期維護(hù)留下隱患對(duì)于軟件而言設(shè)計(jì)設(shè)計(jì)-需要修改.

8、1.1、軟件的定義軟件的定義軟件的特點(diǎn)-4不磨損不磨損對(duì)于機(jī)械產(chǎn)品而言對(duì)于機(jī)械產(chǎn)品而言機(jī)械部件用了會(huì)磨損機(jī)械部件用了會(huì)磨損可以用備件替代可以用備件替代1.1、軟件的定義軟件的定義軟件的特點(diǎn)-4不磨損不磨損對(duì)于軟件而言對(duì)于軟件而言-.軟件用后不磨損軟件用后不磨損隨著時(shí)間的推移,應(yīng)用程序隨著時(shí)間的推移,應(yīng)用程序的某些部分可能會(huì)變得不再的某些部分可能會(huì)變得不再相關(guān)(例如,需求改變時(shí)),相關(guān)(例如,需求改變時(shí)),而需要修改而需要修改沒(méi)有備件的概念沒(méi)有備件的概念需要修改1.1、軟件的定義軟件的定義硬件和軟件故障率曲線硬件和軟件故障率曲線 軟件不會(huì)用壞(軟件不會(huì)用壞(wear out).軟件會(huì)退化(軟件會(huì)

9、退化( deteriorate)!1.1、軟件的定義軟件的定義軟件的特點(diǎn)-5q 軟件的開(kāi)發(fā)和運(yùn)行常受到計(jì)算機(jī)系統(tǒng)的限制,對(duì)計(jì)算機(jī)系統(tǒng)有著不同程度的依賴性;q 軟件的開(kāi)發(fā)至今尚未完全擺脫手工藝的開(kāi)發(fā)方式,成本相當(dāng)昂貴;q 軟件開(kāi)發(fā)本身是復(fù)雜的:實(shí)際問(wèn)題的復(fù)雜性程序邏輯結(jié)構(gòu)的復(fù)雜性 q 相當(dāng)多的軟件開(kāi)發(fā)工作涉及到社會(huì)因素。軟件的分類-1p 按軟件的功能進(jìn)行劃分:系統(tǒng)軟件系統(tǒng)軟件支撐軟件支撐軟件應(yīng)用軟件應(yīng)用軟件 1.1、軟件的定義軟件的定義p按照軟件服務(wù)對(duì)象的范圍劃分 定制軟件 由客戶委托開(kāi)發(fā)的軟件。 通用軟件 由軟件開(kāi)發(fā)機(jī)構(gòu)開(kāi)發(fā),提供給市場(chǎng)的。軟件的分類-21.1、軟件的定義軟件的定義p3軟件開(kāi)發(fā)

10、經(jīng)歷的階段軟件開(kāi)發(fā)經(jīng)歷的階段1.1、軟件的定義軟件的定義軟件工程軟件工程“軟件作坊軟件作坊”個(gè)體化的軟件環(huán)境個(gè)體化的軟件環(huán)境上世紀(jì)上世紀(jì)60年代中期年代中期上世紀(jì)上世紀(jì)70年代年代上世紀(jì)上世紀(jì)80年代年代面向?qū)ο筌浖_(kāi)發(fā)面向?qū)ο筌浖_(kāi)發(fā)面向?qū)ο蠹夹g(shù)的應(yīng)面向?qū)ο蠹夹g(shù)的應(yīng)用改變了軟件界的用改變了軟件界的開(kāi)發(fā)方式。開(kāi)發(fā)方式。計(jì)算機(jī)應(yīng)用領(lǐng)域越來(lái)越廣,系統(tǒng)規(guī)模越計(jì)算機(jī)應(yīng)用領(lǐng)域越來(lái)越廣,系統(tǒng)規(guī)模越來(lái)越大,邏輯越來(lái)越復(fù)雜,而且功能上來(lái)越大,邏輯越來(lái)越復(fù)雜,而且功能上需要不斷更改和擴(kuò)充。軟件開(kāi)發(fā)需要多需要不斷更改和擴(kuò)充。軟件開(kāi)發(fā)需要多個(gè)開(kāi)發(fā)者一起開(kāi)發(fā),開(kāi)發(fā)人員按各自的個(gè)開(kāi)發(fā)者一起開(kāi)發(fā),開(kāi)發(fā)人員按各自的愛(ài)好和習(xí)

11、慣進(jìn)行工作,沒(méi)有統(tǒng)一的標(biāo)準(zhǔn)愛(ài)好和習(xí)慣進(jìn)行工作,沒(méi)有統(tǒng)一的標(biāo)準(zhǔn)可以遵循,以手工藝的方式形成可以遵循,以手工藝的方式形成“軟件軟件作坊作坊”來(lái)進(jìn)行。來(lái)進(jìn)行。1968年,北大西洋公約組織的計(jì)算機(jī)科學(xué)年,北大西洋公約組織的計(jì)算機(jī)科學(xué)家,在聯(lián)邦德國(guó)召開(kāi)國(guó)際會(huì)議,討論軟件家,在聯(lián)邦德國(guó)召開(kāi)國(guó)際會(huì)議,討論軟件危機(jī)問(wèn)題。正式提出危機(jī)問(wèn)題。正式提出“軟件工程軟件工程”這個(gè)名這個(gè)名詞詞新興工程學(xué)誕生了。新興工程學(xué)誕生了。用用“工程化工程化”的思想作指導(dǎo),可以大大減的思想作指導(dǎo),可以大大減少軟件開(kāi)發(fā)成本并提高軟件開(kāi)發(fā)質(zhì)量,少軟件開(kāi)發(fā)成本并提高軟件開(kāi)發(fā)質(zhì)量,“工程化工程化”為人們開(kāi)辟了新的道路,為人們開(kāi)辟了新的道路,

12、“軟件軟件工程學(xué)工程學(xué)”蓬勃發(fā)展起來(lái)。蓬勃發(fā)展起來(lái)。軟件規(guī)模小,編寫者和使用者往往是同一個(gè)軟件規(guī)模小,編寫者和使用者往往是同一個(gè)人,除程序清單外,無(wú)其它文檔資料人,除程序清單外,無(wú)其它文檔資料。軟件開(kāi)發(fā)經(jīng)歷的階段軟件開(kāi)發(fā)經(jīng)歷的階段1.1、軟件的定義軟件的定義時(shí)間時(shí)間特點(diǎn)特點(diǎn)程序設(shè)計(jì)程序設(shè)計(jì)50506060年代年代程序系統(tǒng)程序系統(tǒng)60607070年代年代軟件工程軟件工程7070年代年代-80-80年代年代第四階段第四階段9090年代至今年代至今 軟件所指軟件所指程序程序程序及說(shuō)明書程序及說(shuō)明書程序、文檔、數(shù)據(jù)程序、文檔、數(shù)據(jù)軟件工程定義軟件工程定義主要程序設(shè)計(jì)語(yǔ)言主要程序設(shè)計(jì)語(yǔ)言 匯編及機(jī)器語(yǔ)言

13、匯編及機(jī)器語(yǔ)言高級(jí)語(yǔ)言高級(jí)語(yǔ)言軟件語(yǔ)言軟件語(yǔ)言軟件語(yǔ)言及輔助工具軟件語(yǔ)言及輔助工具軟件工作范圍軟件工作范圍 程序編寫程序編寫包括設(shè)計(jì)和測(cè)試包括設(shè)計(jì)和測(cè)試軟件生命周期軟件生命周期軟件生命周期軟件生命周期需求者需求者程序設(shè)計(jì)者本人程序設(shè)計(jì)者本人少數(shù)用戶少數(shù)用戶市場(chǎng)用戶市場(chǎng)用戶市場(chǎng)用戶市場(chǎng)用戶開(kāi)發(fā)軟件的組織開(kāi)發(fā)軟件的組織個(gè)人個(gè)人開(kāi)發(fā)小組開(kāi)發(fā)小組開(kāi)發(fā)小組及大中型軟件開(kāi)發(fā)小組及大中型軟件開(kāi)發(fā)機(jī)構(gòu)開(kāi)發(fā)機(jī)構(gòu)開(kāi)發(fā)小組及大中型軟開(kāi)發(fā)小組及大中型軟件開(kāi)發(fā)機(jī)構(gòu)件開(kāi)發(fā)機(jī)構(gòu)軟件規(guī)模軟件規(guī)模小型小型中小型中小型大中小型大中小型大中小型大中小型決定質(zhì)量的因素決定質(zhì)量的因素個(gè)人程序技術(shù)個(gè)人程序技術(shù)小組技術(shù)水平小組技術(shù)水平管理

14、水平管理水平管理水平、管理水平、CMM開(kāi)發(fā)技術(shù)和手段開(kāi)發(fā)技術(shù)和手段子程序子程序程序庫(kù)程序庫(kù)結(jié)構(gòu)化程序設(shè)計(jì)結(jié)構(gòu)化程序設(shè)計(jì)數(shù)據(jù)庫(kù)、開(kāi)發(fā)工具、開(kāi)數(shù)據(jù)庫(kù)、開(kāi)發(fā)工具、開(kāi)發(fā)環(huán)境、工程化開(kāi)發(fā)方發(fā)環(huán)境、工程化開(kāi)發(fā)方法、標(biāo)準(zhǔn)和規(guī)范、網(wǎng)絡(luò)法、標(biāo)準(zhǔn)和規(guī)范、網(wǎng)絡(luò)及分布式開(kāi)發(fā)、面向?qū)胺植际介_(kāi)發(fā)、面向?qū)ο蠹夹g(shù)、嵌入式技術(shù)象技術(shù)、嵌入式技術(shù)WebWeb應(yīng)用、異構(gòu)環(huán)境應(yīng)用、異構(gòu)環(huán)境下分布式開(kāi)發(fā)、軟件下分布式開(kāi)發(fā)、軟件復(fù)用和構(gòu)件技術(shù)、智復(fù)用和構(gòu)件技術(shù)、智能技術(shù)應(yīng)用、信息共能技術(shù)應(yīng)用、信息共享和服務(wù)享和服務(wù)維護(hù)責(zé)任者維護(hù)責(zé)任者程序設(shè)計(jì)者程序設(shè)計(jì)者開(kāi)發(fā)小組開(kāi)發(fā)小組專職維護(hù)者專職維護(hù)者維護(hù)小組維護(hù)小組硬件特征硬件特征價(jià)格高價(jià)格高存

15、儲(chǔ)容量小存儲(chǔ)容量小工作可靠性差工作可靠性差降價(jià)、速度、容降價(jià)、速度、容量及工作可靠性量及工作可靠性有明顯提高有明顯提高向超高速、大容量、微向超高速、大容量、微型化及網(wǎng)絡(luò)化方向發(fā)展型化及網(wǎng)絡(luò)化方向發(fā)展微型化、網(wǎng)絡(luò)計(jì)算機(jī)微型化、網(wǎng)絡(luò)計(jì)算機(jī)軟件特征軟件特征完全不受重視完全不受重視軟件技術(shù)的發(fā)展軟件技術(shù)的發(fā)展不能滿足需要,不能滿足需要,出現(xiàn)軟件危機(jī)出現(xiàn)軟件危機(jī)開(kāi)發(fā)技術(shù)有進(jìn)步,但未開(kāi)發(fā)技術(shù)有進(jìn)步,但未獲突破性進(jìn)展,價(jià)高,獲突破性進(jìn)展,價(jià)高,未完全擺脫軟件危機(jī)未完全擺脫軟件危機(jī)先進(jìn)的軟件開(kāi)發(fā)和管先進(jìn)的軟件開(kāi)發(fā)和管理工具不斷出現(xiàn),軟理工具不斷出現(xiàn),軟件過(guò)程控制及管理件過(guò)程控制及管理軟件危機(jī)軟件工程軟件工程“

16、軟件作坊軟件作坊”個(gè)體化的軟件環(huán)境個(gè)體化的軟件環(huán)境上世紀(jì)上世紀(jì)60年代中期年代中期上世紀(jì)上世紀(jì)70年代年代上世紀(jì)上世紀(jì)80年代年代面向?qū)ο筌浖_(kāi)發(fā)面向?qū)ο筌浖_(kāi)發(fā)o 軟件生產(chǎn)的第二個(gè)階段,硬件生產(chǎn)成本下降、效率提高、性能提高,激發(fā)了軟件需求;o 軟件復(fù)雜性要求提高、生產(chǎn)效率低,與硬件生產(chǎn)進(jìn)一步拉開(kāi)距離;o 軟件質(zhì)量差,難維護(hù),成本急劇增加;o 軟件項(xiàng)目成功率低;o 上述矛盾的進(jìn)一步激化,瀑發(fā)了軟件危機(jī)軟件開(kāi)發(fā)經(jīng)歷的階段軟件開(kāi)發(fā)經(jīng)歷的階段1.1、軟件的定義軟件的定義本章內(nèi)容q 1.1、軟件的定義q 1.2、軟件危機(jī)q 1.3、軟件工程q 1.4、軟件生存期q 1.5、軟件過(guò)程軟件危機(jī)“軟件危機(jī)”

17、(Software crisis)的出現(xiàn)是由于:o 軟件的規(guī)模越來(lái)越大,復(fù)雜度不斷增加,軟件需求量增大。o 軟件開(kāi)發(fā)過(guò)程是一種高密集度的腦力勞動(dòng),軟件開(kāi)發(fā)的模式及技術(shù)不能適應(yīng)軟件發(fā)展的需要。o 致使大量質(zhì)量低劣的軟件涌向市場(chǎng),有的甚至花費(fèi)了大量人力財(cái)力,并且在開(kāi)發(fā)過(guò)程中就夭折。Crisis!1.2、軟件危機(jī)、軟件危機(jī)軟件危機(jī)的主要表現(xiàn)軟件預(yù)算經(jīng)常突破,完成時(shí)間一拖再拖用戶對(duì)“已完成的”軟件不滿意的現(xiàn)象經(jīng)常發(fā)生軟件不可維護(hù)軟件產(chǎn)品的質(zhì)量靠不住軟件沒(méi)有適當(dāng)?shù)奈臋n資料軟件的生產(chǎn)率低軟件的可重用性差1.2、軟件危機(jī)、軟件危機(jī)軟件危機(jī)的表現(xiàn)o 概括起來(lái):o “軟件危機(jī)”主要表現(xiàn)在兩個(gè)方面: o (1)軟

18、件產(chǎn)品質(zhì)量低劣,甚至開(kāi)發(fā)過(guò)程就夭折。o (2)軟件生產(chǎn)率低,不能滿足需要。1.2、軟件危機(jī)、軟件危機(jī)軟件預(yù)算經(jīng)常突破,完成時(shí)間一拖再拖案例1:以丹佛新國(guó)際機(jī)場(chǎng)為例 該機(jī)場(chǎng)規(guī)模是曼哈頓機(jī)場(chǎng)的兩倍,寬為希思機(jī)場(chǎng)的10倍,可以全天侯同時(shí)起降三架噴氣式客機(jī);投資1.93億美元建立了一個(gè)地下行李傳送系統(tǒng),總長(zhǎng)21英里,有4,000臺(tái)遙控車,可按不同線路在20家不同航空公司柜臺(tái)、登機(jī)門和行李領(lǐng)取處之間發(fā)送和傳遞行李;支持該系統(tǒng)的是5,000個(gè)電子眼、400臺(tái)無(wú)線電接受機(jī)、56臺(tái)條形碼掃描儀和100臺(tái)計(jì)算機(jī)。按原定計(jì)劃要在1993年萬(wàn)圣節(jié)前啟用,但一直到1994年6月,該系統(tǒng)還無(wú)法正常運(yùn)行。軟件危機(jī)案例1.

19、2、軟件危機(jī)、軟件危機(jī)原因:o 軟件復(fù)雜度高,開(kāi)發(fā)周期長(zhǎng)。缺乏開(kāi)發(fā)經(jīng)驗(yàn)和數(shù)據(jù)的積累,導(dǎo)致盲目制定計(jì)劃,執(zhí)行起來(lái)和實(shí)際情況有很大差距,o 另外,軟件開(kāi)發(fā)過(guò)程也會(huì)出現(xiàn)一些難以預(yù)料的問(wèn)題,導(dǎo)致項(xiàng)目一拖再拖,經(jīng)費(fèi)增加。據(jù)研究結(jié)果統(tǒng)計(jì):只有15%的項(xiàng)目是按計(jì)劃完成的 。軟件危機(jī)案例1.2、軟件危機(jī)、軟件危機(jī)用戶對(duì)“已完成的”軟件不滿意的現(xiàn)象經(jīng)常發(fā)生案例:1984年,經(jīng)歷18個(gè)月的開(kāi)發(fā),一個(gè)耗資2億美元的保險(xiǎn)系統(tǒng)交付給威斯康星州的一家健康保險(xiǎn)公司,但該系統(tǒng)不能滿足用戶的正常工作,只好追加6千萬(wàn)美金,又花了3年才解決問(wèn)題。原因:軟件開(kāi)發(fā)人員不是用戶業(yè)務(wù)的專家,用戶不懂計(jì)算機(jī)軟件技術(shù),因此軟件人員按照自己理解

20、開(kāi)發(fā)出的軟件往往與用戶要求有差距。 另外,用戶在初期提出的需求不充分,之后又沒(méi)有和開(kāi)發(fā)人員好好交流,也是導(dǎo)致用戶不滿意的原因。軟件危機(jī)案例1.2、軟件危機(jī)、軟件危機(jī)3 軟件產(chǎn)品的質(zhì)量靠不住案例: o 1996 年6 月, ARIANE 5 火箭,耗資70 億美元,發(fā)射37 秒后爆炸。發(fā)射失敗的原因在于軟件的錯(cuò)誤;程序中試圖將64 位浮點(diǎn)數(shù)轉(zhuǎn)換成16 位整數(shù)時(shí)產(chǎn)生溢出。o 原因:軟件測(cè)試不充分是其中的原因。o 對(duì)這些投資巨大測(cè)試充分的軟件也難保不出質(zhì)量問(wèn)題。因?yàn)檐浖馁|(zhì)量和可靠性的評(píng)估非常困難。軟件危機(jī)案例1.2、軟件危機(jī)、軟件危機(jī)4、軟件不可維護(hù) 原因: 1、設(shè)計(jì)結(jié)構(gòu)不適合軟件功能的增加和修改

21、 2、軟件開(kāi)發(fā)過(guò)程中起著重要作用的是開(kāi)發(fā)者的邏輯思維過(guò)程。若干年后由其他人來(lái)修改,必須要理解開(kāi)發(fā)者的思想,若沒(méi)有相對(duì)應(yīng)的文檔來(lái)描述這些思想,讀別人的程序相當(dāng)?shù)睦щy。軟件危機(jī)案例1.2、軟件危機(jī)、軟件危機(jī)軟件沒(méi)有適當(dāng)?shù)奈臋n資料 原因:軟件不可能一個(gè)版本就成功,而是經(jīng)歷反復(fù)修改,其中的文檔很難與 每次的修改保持一致,錯(cuò)誤的文檔就像錯(cuò)誤的地圖一樣更危險(xiǎn)。軟件危機(jī)案例1.2、軟件危機(jī)、軟件危機(jī)產(chǎn)生軟件危機(jī)的原因o 一方面是與軟件本身的特點(diǎn)有關(guān);n 軟件系統(tǒng)復(fù)雜而抽象。o 另一方面軟件開(kāi)發(fā)和維護(hù)的方法不正確:n 忽視軟件開(kāi)發(fā)前期的需求分析;n 開(kāi)發(fā)過(guò)程沒(méi)有統(tǒng)一、規(guī)范方法論的指導(dǎo);n 文檔資料不齊全;n

22、忽視人與人的交流;n 忽視測(cè)試工作,提交給用戶的軟件質(zhì)量差;n 輕視軟件的維護(hù)。1.2、軟件危機(jī)、軟件危機(jī)復(fù)雜性舉例例如,Windows 95有1000萬(wàn)行代碼,Windows 2000有5000萬(wàn)行代碼。Exchange2000和 Windows2000開(kāi)發(fā)人員結(jié)構(gòu)Exchange2000Windows2000項(xiàng)目經(jīng)理25人約250人開(kāi)發(fā)人員140人約1700人測(cè)試人員350人約3200人1.2、軟件危機(jī)、軟件危機(jī)o 布魯克斯(Brooks)分別于1975和1987年出版了兩本著名的軟件工程知識(shí)著作“人月神話”和“沒(méi)有銀彈”(No Silver Bullet)o Brooks的著名論斷“軟件

23、工作是人類所從事的最復(fù)雜的工作.” o 針對(duì)軟件的特點(diǎn),用什么辦法解決軟件危機(jī)?復(fù)雜性是復(fù)雜性是“軟件危機(jī)軟件危機(jī)”的本質(zhì)原因!的本質(zhì)原因!“軟件危機(jī)軟件危機(jī)”的本質(zhì)原因?的本質(zhì)原因?1.2、軟件危機(jī)、軟件危機(jī)1. 對(duì)計(jì)算機(jī)軟件有一個(gè)正確的認(rèn)識(shí): 軟件程序軟件程序數(shù)據(jù)文檔2.必須充分認(rèn)識(shí)到軟件開(kāi)發(fā)不是某種個(gè)體勞動(dòng)的神秘技巧,而應(yīng)該是一種組織良好、管理嚴(yán)密、各類人員協(xié)同配合、共同完成的工程項(xiàng)目。3.推廣使用在實(shí)踐中總結(jié)出來(lái)的開(kāi)發(fā)軟件的成功經(jīng)驗(yàn)和方法。4.開(kāi)發(fā)和使用更好的軟件工具。5. 對(duì)軟件的實(shí)現(xiàn)提供有效的構(gòu)件塊。6. 為保證軟件質(zhì)量提供自動(dòng)設(shè)計(jì)技術(shù)。消除軟件危機(jī)的辦法1.2、軟件危機(jī)、軟件危機(jī)

24、消除軟件危機(jī)的辦法意識(shí)到意識(shí)到生命周期生命周期1.2、軟件危機(jī)、軟件危機(jī)本章內(nèi)容q 1.1、軟件的定義q 1.2、軟件危機(jī)q 1.3、軟件工程q 1.4、軟件生存期q 1.5、軟件過(guò)程軟件工程的提出o 軟件工程(Software Engineering)n 北大西洋公約組織(NATO)科學(xué)技術(shù)委員會(huì)1968年秋,在當(dāng)時(shí)的聯(lián)邦德國(guó)召集有50名第一流的編程人員、計(jì)算機(jī)科學(xué)家和工業(yè)巨頭為制定擺脫“軟件危機(jī)”的辦法時(shí)提出來(lái)的n 借鑒硬件工程的辦法,不僅創(chuàng)造了一個(gè)新名詞,確實(shí)解決了軟件開(kāi)發(fā)這一難題,還使軟件工程有了方向n 軟件工程今天已經(jīng)發(fā)展成為一門獨(dú)立的學(xué)科1.3、軟件工程、軟件工程o 手工(Craf

25、t): 小規(guī)模的設(shè)計(jì)與建造 簡(jiǎn)單問(wèn)題與單一目標(biāo) 個(gè)人控制與個(gè)人技能 比如:茅草棚o 工程(Engineering):是按照事先制定的計(jì)劃進(jìn)行的工作和活動(dòng),是將理論和知識(shí)應(yīng)用于實(shí)踐的科學(xué)。大規(guī)模的設(shè)計(jì)與建造 復(fù)雜問(wèn)題與目標(biāo)分解 需要規(guī)劃、設(shè)計(jì)、構(gòu)建等步驟 多人參與,需要考慮運(yùn)營(yíng)、管理、成本、質(zhì)量控制、安全等 -比如:高樓大廈工程與手工的區(qū)別1.3、軟件工程、軟件工程工程與手工的區(qū)別#includeint main()printf(“HelloWord!”);o 太簡(jiǎn)單,不必規(guī)劃和設(shè)計(jì),直接編程就可以。o 但是,要開(kāi)發(fā)一個(gè)圖書管理系統(tǒng)軟件,就必須要設(shè)計(jì)。o 軟件的設(shè)計(jì)同設(shè)計(jì)高樓大廈一樣,也要有設(shè)計(jì)

26、圖,結(jié)構(gòu)圖-手工手工-工程工程因此軟件開(kāi)發(fā)和維護(hù)與其它行業(yè)的生產(chǎn)一樣,也必須走因此軟件開(kāi)發(fā)和維護(hù)與其它行業(yè)的生產(chǎn)一樣,也必須走工程化的道路!工程化的道路!1.3、軟件工程、軟件工程軟件工程定義o 是指導(dǎo)計(jì)算機(jī)軟件開(kāi)發(fā)和維護(hù)的一門工程學(xué)科。采用工程的概念、原理、技術(shù)和方法來(lái)開(kāi)發(fā)與維護(hù)軟件,把經(jīng)過(guò)時(shí)間考驗(yàn)而證明正確的管理技術(shù)和當(dāng)前能夠得到的最好的技術(shù)方法結(jié)合起來(lái),以經(jīng)濟(jì)地開(kāi)發(fā)出高質(zhì)量的軟件并有效地維護(hù)它.o 基本思想:是強(qiáng)調(diào)在軟件開(kāi)發(fā)過(guò)程中應(yīng)用工程化原則,解決軟件的整體質(zhì)量較低、最后期限和費(fèi)用沒(méi)有保證等問(wèn)題。 提高軟件的質(zhì)量與生產(chǎn)率,最終實(shí)現(xiàn)軟件的工業(yè)化生產(chǎn)。1.3、軟件工程、軟件工程軟件工程定義

27、o 軟件工程:借鑒了傳統(tǒng)工程的原則和方法,以求高效地開(kāi)發(fā)高質(zhì)量軟件。其中應(yīng)用了計(jì)算機(jī)科學(xué)、數(shù)學(xué)和管理科學(xué)。n 計(jì)算機(jī)科學(xué)和數(shù)學(xué)用于構(gòu)造模型與算法,n 管理科學(xué)用于計(jì)劃、資源、質(zhì)量和成本的管理。1.3、軟件工程、軟件工程 o 【例】 請(qǐng)開(kāi)發(fā)一個(gè)“圖書館信息系統(tǒng)”,即圖書館MIS。o 首先要選擇軟件開(kāi)發(fā)模型,確定開(kāi)發(fā)方法,準(zhǔn)備開(kāi)發(fā)工具,設(shè)計(jì)開(kāi)發(fā)環(huán)境和運(yùn)行環(huán)境,o 然后進(jìn)行需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編程、測(cè)試、試運(yùn)行、正式運(yùn)行、驗(yàn)收和交付,o 最后是系統(tǒng)維護(hù)或系統(tǒng)升級(jí)換代。o 這樣按照所選擇的開(kāi)發(fā)模型,走完了軟件的一個(gè)生存周期。o 這一系列的軟件開(kāi)發(fā)過(guò)程和管理過(guò)程,就是軟件工程。 1.3、軟件工

28、程、軟件工程軟件工程的定義軟件工程的定義(1)軟件工程關(guān)注于大型程序的構(gòu)造u “大”與“小”的分界線并不十分清晰。通常把一個(gè)人在較短時(shí)間內(nèi)寫出的程序稱為小型程序,而把多人合作用時(shí)半年以上才寫出的程序稱為大型程序。軟件工程關(guān)注的關(guān)鍵問(wèn)題軟件工程關(guān)注的關(guān)鍵問(wèn)題1.3、軟件工程、軟件工程(2)軟件工程的中心課題是控制復(fù)雜性控制復(fù)雜性的有效方控制復(fù)雜性的有效方法是分解:法是分解:面向過(guò)程的方法,是面向過(guò)程的方法,是按功能分解;按功能分解;面向?qū)ο蟮姆椒?,是面向?qū)ο蟮姆椒ǎ前簇?zé)任分解。按責(zé)任分解。軟件工程關(guān)注的關(guān)鍵問(wèn)題軟件工程關(guān)注的關(guān)鍵問(wèn)題1.3、軟件工程、軟件工程(3)軟件需求經(jīng)常變化變化需求變更是

29、軟件開(kāi)發(fā)活動(dòng)與生俱來(lái)的特性,不可避免,需求變更是軟件開(kāi)發(fā)活動(dòng)與生俱來(lái)的特性,不可避免,也是軟件開(kāi)發(fā)面臨的最大挑戰(zhàn)。也是軟件開(kāi)發(fā)面臨的最大挑戰(zhàn)。軟件工程追求的是、封裝變更,靈活設(shè)計(jì),應(yīng)對(duì)變更,軟件工程追求的是、封裝變更,靈活設(shè)計(jì),應(yīng)對(duì)變更,通過(guò)好的設(shè)計(jì)方法,使變更對(duì)原有設(shè)計(jì)方案和已有代碼通過(guò)好的設(shè)計(jì)方法,使變更對(duì)原有設(shè)計(jì)方案和已有代碼影響最小。影響最小。軟件工程關(guān)注的關(guān)鍵問(wèn)題軟件工程關(guān)注的關(guān)鍵問(wèn)題1.3、軟件工程、軟件工程(4)開(kāi)發(fā)軟件的效率非常重要規(guī)范的開(kāi)發(fā)過(guò)程規(guī)范的開(kāi)發(fā)過(guò)程好的開(kāi)發(fā)環(huán)境和工具、好的開(kāi)發(fā)環(huán)境和工具、提高軟件復(fù)用提高軟件復(fù)用是軟件工程提高效率的是軟件工程提高效率的有效辦法。有效辦

30、法。軟件工程關(guān)注的關(guān)鍵問(wèn)題軟件工程關(guān)注的關(guān)鍵問(wèn)題1.3、軟件工程、軟件工程(5 5)和諧地合作是開(kāi)發(fā)軟件的關(guān)鍵)和諧地合作是開(kāi)發(fā)軟件的關(guān)鍵o軟件處理的問(wèn)題日益復(fù)雜和龐大,軟件開(kāi)發(fā)往軟件處理的問(wèn)題日益復(fù)雜和龐大,軟件開(kāi)發(fā)往往是多人協(xié)同工作的成果,明確的往是多人協(xié)同工作的成果,明確的責(zé)任劃分和責(zé)任劃分和有效的互通信有效的互通信是團(tuán)隊(duì)成員協(xié)作的關(guān)鍵。是團(tuán)隊(duì)成員協(xié)作的關(guān)鍵。o事實(shí)上僅有上述規(guī)定還不夠,每個(gè)人還必須嚴(yán)事實(shí)上僅有上述規(guī)定還不夠,每個(gè)人還必須嚴(yán)格地按規(guī)定行事。為了迫使團(tuán)隊(duì)成員遵守規(guī)定,格地按規(guī)定行事。為了迫使團(tuán)隊(duì)成員遵守規(guī)定,應(yīng)該應(yīng)該運(yùn)用標(biāo)準(zhǔn)和規(guī)程運(yùn)用標(biāo)準(zhǔn)和規(guī)程。通常,可以用工具來(lái)支。通常,

31、可以用工具來(lái)支持這些標(biāo)準(zhǔn)和規(guī)程??傊o(jì)律是成功地完成持這些標(biāo)準(zhǔn)和規(guī)程??傊o(jì)律是成功地完成軟件開(kāi)發(fā)項(xiàng)目的一個(gè)關(guān)鍵。軟件開(kāi)發(fā)項(xiàng)目的一個(gè)關(guān)鍵。團(tuán)隊(duì)合作是必團(tuán)隊(duì)合作是必須的,使用有須的,使用有效的工具,進(jìn)效的工具,進(jìn)行有效的溝通行有效的溝通是關(guān)鍵是關(guān)鍵軟件工程關(guān)注的關(guān)鍵問(wèn)題軟件工程關(guān)注的關(guān)鍵問(wèn)題1.3、軟件工程、軟件工程軟件工程原理1.3、軟件工程、軟件工程o 軟件工程專家B.W.BOEHM 提出軟件工程的七條原理:1. 按軟件生存周期分階段制定計(jì)劃并認(rèn)真實(shí)施2. 堅(jiān)持進(jìn)行階段評(píng)審3. 實(shí)行嚴(yán)格的產(chǎn)品控制4. 采用現(xiàn)代程序設(shè)計(jì)技術(shù)5. 明確責(zé)任6. 開(kāi)發(fā)小組人員少而精7. 不斷改進(jìn)開(kāi)發(fā)過(guò)程軟件工

32、程研究?jī)?nèi)容軟件開(kāi)發(fā)技術(shù)軟件開(kāi)發(fā)技術(shù)軟件工程管理軟件工程管理軟件開(kāi)發(fā)方法學(xué)軟件開(kāi)發(fā)方法學(xué)軟件工具軟件工具軟件開(kāi)發(fā)過(guò)程軟件開(kāi)發(fā)過(guò)程軟件管理學(xué)軟件管理學(xué)軟件經(jīng)濟(jì)學(xué)軟件經(jīng)濟(jì)學(xué)軟件度量學(xué)軟件度量學(xué)1.3、軟件工程、軟件工程方法使用的順序;要求交付的方法使用的順序;要求交付的文檔資料;為保證質(zhì)量和適應(yīng)文檔資料;為保證質(zhì)量和適應(yīng)變化所需要的管理;軟件開(kāi)發(fā)變化所需要的管理;軟件開(kāi)發(fā)各個(gè)階段完成的里程碑。各個(gè)階段完成的里程碑。軟件開(kāi)發(fā)提供了軟件開(kāi)發(fā)提供了 “如如何做何做” 的技術(shù)。的技術(shù)。為軟件工程方法提供了為軟件工程方法提供了自動(dòng)的或半自動(dòng)的軟件自動(dòng)的或半自動(dòng)的軟件支撐環(huán)境,支撐環(huán)境,CASE軟件工程研究?jī)?nèi)容

33、軟件工程研究?jī)?nèi)容軟件工程的三要素軟件工程的三要素1.3、軟件工程、軟件工程低開(kāi)發(fā)成本低開(kāi)發(fā)成本易于維護(hù)易于維護(hù)高可靠性高可靠性高性能高性能按時(shí)交付按時(shí)交付互斥互補(bǔ)可見(jiàn),軟件工程所追求的目標(biāo)是:可見(jiàn),軟件工程所追求的目標(biāo)是: 軟件工程的目標(biāo)1.3、軟件工程、軟件工程軟件工程方法學(xué) 軟件工程的發(fā)展已經(jīng)歷了軟件工程的發(fā)展已經(jīng)歷了個(gè)重要階段:個(gè)重要階段:1 1、第一代第一代軟件工程軟件工程 傳統(tǒng)傳統(tǒng)的軟件工程的軟件工程 6 0 年 代 末 到 7 0 年 代 為 了 克 服 “ 軟 件 危 機(jī) ” (Software crisis)提出“軟件工程”的名詞, 將軟件開(kāi)發(fā)納入工程化的軌道,基本形成軟件工程

34、的概念、框架、技術(shù)和方法-結(jié)構(gòu)化的開(kāi)發(fā)方法,稱為傳統(tǒng)的軟件工程1.3、軟件工程、軟件工程軟件工程方法學(xué)軟件工程的發(fā)展已經(jīng)歷了軟件工程的發(fā)展已經(jīng)歷了個(gè)重要階段:個(gè)重要階段:3 3、第三代第三代軟件工程軟件工程 構(gòu)件工程(軟件復(fù)用)構(gòu)件工程(軟件復(fù)用)2 2、第二代第二代軟件工程軟件工程 對(duì)象工程對(duì)象工程1 1、第一代第一代軟件工程軟件工程 傳統(tǒng)傳統(tǒng)的軟件工程的軟件工程 80年代中到90年代,面向?qū)ο蟮姆椒ㄅc技術(shù)得到發(fā)展,研究的重點(diǎn)轉(zhuǎn)移到面向?qū)ο蟮姆治雠c設(shè)計(jì),演化為一種完整的軟件開(kāi)發(fā)方法和技術(shù)體系,稱為對(duì)象工程。1.3、軟件工程、軟件工程軟件工程方法學(xué)軟件工程的發(fā)展已經(jīng)歷了軟件工程的發(fā)展已經(jīng)歷了個(gè)

35、重要階段:個(gè)重要階段:3 3、第三代第三代軟件工程軟件工程 構(gòu)件工程(軟件復(fù)用)構(gòu)件工程(軟件復(fù)用)2 2、第二代第二代軟件工程軟件工程 對(duì)象工程對(duì)象工程1 1、第一代第一代軟件工程軟件工程 傳統(tǒng)傳統(tǒng)的軟件工程的軟件工程 90起年代,基于構(gòu)件(Component)的開(kāi)發(fā)方法取得重要進(jìn)展,軟件系統(tǒng)的開(kāi)發(fā)可通過(guò)使用現(xiàn)成的可復(fù)用構(gòu)件組裝完成,而無(wú)需從頭開(kāi)始構(gòu)造,以此達(dá)到提高效率和質(zhì)量,降低成本的目的。稱為構(gòu)件工程。1.3、軟件工程、軟件工程軟件工程方法學(xué)q本課程具體討論以下兩種方法: 結(jié)構(gòu)化開(kāi)發(fā)方法 面向?qū)ο蟮拈_(kāi)發(fā)方法 1.3、軟件工程、軟件工程o 軟件工程是為了克服日益嚴(yán)重的軟件危機(jī)而發(fā)展起來(lái)o

36、目的-成功地建造一個(gè)大型軟件系統(tǒng),能在開(kāi)發(fā)成本、開(kāi)發(fā)時(shí)間、軟件功能及性能等方面達(dá)到預(yù)期目標(biāo)。o 為了實(shí)現(xiàn)這一目標(biāo),提出了軟件工程化的思想-從管理和技術(shù)兩方面指導(dǎo)軟件開(kāi)發(fā)。o 雖然目前軟件工程并不能使我們完全擺脫軟件危機(jī),但對(duì)于在軟件開(kāi)發(fā)和維護(hù)過(guò)程中盡快消除一些錯(cuò)誤的認(rèn)識(shí)和做法,并使用一些在實(shí)踐中總結(jié)出來(lái)的成功的經(jīng)驗(yàn)和方法,以提高軟件的生產(chǎn)率和成功率起到了積極的作用。小結(jié)小結(jié)軟件工程 思想 流程 方法 工具 最佳實(shí)踐 思想思想流程流程方法方法工具工具最佳最佳實(shí)踐實(shí)踐基本要素小結(jié)小結(jié)軟件工程的內(nèi)涵o 軟件工程學(xué)科包含為完成軟件需求、設(shè)計(jì)、構(gòu)建、測(cè)試和維護(hù)所需的知識(shí)、方法和工具。o 軟件工程不局限在

37、理論之上,更重要在實(shí)踐上,能夠幫助軟件組織協(xié)調(diào)團(tuán)隊(duì)、運(yùn)用有限的資源,遵守已定義的軟件工程規(guī)范,通過(guò)一系列可復(fù)用的、有效的方法,在規(guī)定的時(shí)間內(nèi)達(dá)到預(yù)先設(shè)定的目標(biāo) 小結(jié)小結(jié)常用軟件工具1、圖稿繪制工具 office visio 畫流程圖等2、源碼瀏覽工具 sourceInsight 看調(diào)用關(guān)系 3、配置管理工具 VSS 、ClearCase4、數(shù)據(jù)庫(kù)建模工具 Powerdesigner5、UML建模工具 Rational rose6、項(xiàng)目管理工具 Ms Project7、軟件測(cè)試工具 QPT 、Loadruner作業(yè)o P32 1、3o 了解軟件開(kāi)發(fā)工具o 思考:1 1、有人說(shuō):軟件開(kāi)發(fā)時(shí),一個(gè)錯(cuò)

38、誤發(fā)現(xiàn)得越、有人說(shuō):軟件開(kāi)發(fā)時(shí),一個(gè)錯(cuò)誤發(fā)現(xiàn)得越晚,為改正它所付出的代價(jià)就越大。對(duì)否?晚,為改正它所付出的代價(jià)就越大。對(duì)否?請(qǐng)解釋你的回答。請(qǐng)解釋你的回答。2、軟件與程序有什么不同?思考練習(xí)2 2、有人說(shuō):軟件開(kāi)發(fā)時(shí),一個(gè)錯(cuò)誤發(fā)現(xiàn)得越晚,為改正它所、有人說(shuō):軟件開(kāi)發(fā)時(shí),一個(gè)錯(cuò)誤發(fā)現(xiàn)得越晚,為改正它所付出的代價(jià)就越大。對(duì)否?請(qǐng)解釋你的回答。付出的代價(jià)就越大。對(duì)否?請(qǐng)解釋你的回答。對(duì)的。對(duì)的。在在19701970年代,年代,GTEGTE、TRWTRW和和IBMIBM等三家公司對(duì)此問(wèn)題做了獨(dú)等三家公司對(duì)此問(wèn)題做了獨(dú)立研究,最后它們得到相似的結(jié)論:立研究,最后它們得到相似的結(jié)論:從表中可以看出,在需求

39、分析階段檢查和修復(fù)一個(gè)錯(cuò)誤所需的從表中可以看出,在需求分析階段檢查和修復(fù)一個(gè)錯(cuò)誤所需的代價(jià)只有編碼階段所需代價(jià)的代價(jià)只有編碼階段所需代價(jià)的1/51/5到到1/101/10,而在維護(hù)階段做,而在維護(hù)階段做同樣的工作所付出的代價(jià)卻是編碼階段的同樣的工作所付出的代價(jià)卻是編碼階段的2020倍。倍。階段階段需 求 分需 求 分析析軟 件 設(shè)軟 件 設(shè)計(jì)計(jì)程 序 編程 序 編碼碼單 元 測(cè)單 元 測(cè)試試驗(yàn)收測(cè)驗(yàn)收測(cè)試試 維維 護(hù)護(hù)相對(duì)修復(fù)代價(jià)相對(duì)修復(fù)代價(jià) 0.10.1 0.2 0.5 1 2 5 20思考練習(xí)2 2、軟件與程序有什么不同?o 軟件包括程序、數(shù)據(jù)及其相關(guān)文檔的完整集合。o 重點(diǎn):軟件是由兩部分組成

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論