版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第2講 軟件過程模型(Process Model),,1,軟件過程軟件生命周期軟件過程模型瀑布模型快速原型模型噴泉模型演化模型增量模型螺旋模型軟件開發(fā)過程的一般視圖,2,主要內(nèi)容,3,方法使用的順序;要求交付的文檔資料;為保證質(zhì)量和適應(yīng)變化所需要的管理;軟件開發(fā)各個階段完成的里程碑。,軟件開發(fā)提供了 “如何做” 的技術(shù)。,為軟件工程方法提供了自動的或半自動的軟件支撐環(huán)境,CASE,軟件工程層次圖,任何工程方法必須以有組
2、織的質(zhì)量承諾為基礎(chǔ)。支持軟件工程的根基在于對質(zhì)量的關(guān)注。,1 軟件過程,軟件過程需要提供一個公共過程框架,在該框架下可以建立一個軟件開發(fā)的綜合計(jì)劃。選擇一個公共過程框架是根據(jù)產(chǎn)品、人員和項(xiàng)目而調(diào)整的。,4,5,框架活動Framework Activities 任務(wù)集合work tasks工作任務(wù)work products交付物milestones & deliverables質(zhì)量保證點(diǎn)QA checkpoints,
3、軟件生命周期,軟件生命周期是軟件過程模型的基礎(chǔ),是軟件產(chǎn)品或系統(tǒng)一系列相關(guān)活動的全周期。軟件生命周期階段:可行性研究及項(xiàng)目定義需求分析設(shè)計(jì)(總體設(shè)計(jì)和詳細(xì)設(shè)計(jì))編程實(shí)現(xiàn)測試使用與維護(hù),6,軟件生命周期,7,運(yùn)行和維護(hù),問題定義和可行性研究,確定要開發(fā)軟件系統(tǒng)的總目標(biāo)和規(guī)模。從技術(shù)、經(jīng)濟(jì)和社會因素等方面的要求來論證完成該軟件任務(wù)的可行性。估計(jì)可利用的資源(計(jì)算機(jī)硬件,軟件,人力等)、成本、效益、開發(fā)進(jìn)度。制定出完成開發(fā)
4、任務(wù)的實(shí)施計(jì)劃,連同可行性研究報告,提交管理部門審查。,8,需求分析,理解用戶需求,并將用戶需求用書面形式表達(dá)出來。編寫軟件需求規(guī)格說明書或系統(tǒng)功能說明書及初步的系統(tǒng)用戶手冊。需求說明書是以后階段工作的基礎(chǔ)。將需求規(guī)格說明書提交管理機(jī)構(gòu)評審。,9,設(shè)計(jì),總體設(shè)計(jì) — “如何解決問題”在需求說明書的基礎(chǔ)上建立軟件的體系結(jié)構(gòu)。結(jié)構(gòu)中每一組成部分都是意義明確的模塊,每個模塊都和某些需求相對應(yīng)可以列出多種解決方案進(jìn)行比較詳細(xì)設(shè)計(jì) —
5、對每個模塊要完成的工作進(jìn)行具體的描述,為源程序編寫打下基礎(chǔ)編寫設(shè)計(jì)說明書(模塊說明書、數(shù)據(jù)庫或文件結(jié)構(gòu)說明書等),提交評審。,10,編碼,把軟件設(shè)計(jì)轉(zhuǎn)換成計(jì)算機(jī)可以接受的程序代碼,即寫成以某一種特定程序設(shè)計(jì)語言表示的“源程序清單”。寫出的程序應(yīng)當(dāng)是結(jié)構(gòu)良好、清晰易讀的(如匈牙利法則) ,且與設(shè)計(jì)相一致的。,11,測試,單元測試:查找各模塊在功能和結(jié)構(gòu)上存在的問題并加以糾正。集成測試:將已測試過的、并且相關(guān)的模塊按一定順序組裝起來進(jìn)
6、行測試。按規(guī)定的各項(xiàng)需求,逐項(xiàng)進(jìn)行系統(tǒng)測試,決定已開發(fā)的軟件是否合格,能否交付用戶使用。,12,運(yùn)行和維護(hù),改正性維護(hù):運(yùn)行中發(fā)現(xiàn)了軟件中的錯誤需要修正。適應(yīng)性維護(hù):為了適應(yīng)變化了的軟件工作環(huán)境,需做適當(dāng)變更。完善性維護(hù):為了增強(qiáng)軟件的功能需做變更。預(yù)防性維護(hù):修改軟件為將來的維護(hù)活動預(yù)先做準(zhǔn)備,13,2 傳統(tǒng)瀑布模型,14,可行性研究報告,需求規(guī)格說明書,設(shè)計(jì)規(guī)格說明書,程序,測試報告,軟件定義,可行性研究與計(jì)劃,需求分析,設(shè)
7、計(jì),編碼,測試,運(yùn)行和維護(hù),,,,,,,問題描述,瀑布模型,所有過程模型的鼻祖。---- Royce,1970軟件開發(fā)過程劃分成若干階段,每個階段的任務(wù)相對獨(dú)立。從技術(shù)和管理兩個角度進(jìn)行嚴(yán)格的審查,經(jīng)確認(rèn)之后才開始下一階段的工作。---- 項(xiàng)目是按照一定的順序執(zhí)行。瀑布模型是文檔驅(qū)動的,各個階段不連續(xù)也不交叉。,15,瀑布模型的特點(diǎn),階段間具有順序性和依賴性。 (兩重含義)推遲程序的物理實(shí)現(xiàn)。(重要指導(dǎo)思想)質(zhì)量保證:每個階段
8、必須完成規(guī)定的文檔;每個階段結(jié)束前完成文檔審查,及早改正錯誤。(兩個重要做法)是一種嚴(yán)格線性的、按階段順序的、逐步細(xì)化的過程模型(開發(fā)模式)。強(qiáng)調(diào)需求分析和設(shè)計(jì),16,瀑布模型的缺陷,缺乏靈活性,不能適應(yīng)用戶需求的改變 開始階段的小錯誤被逐級放大,可能導(dǎo)致軟件產(chǎn)品報廢返回上一級的開發(fā)需要十分高昂的代價隨著軟件規(guī)模和復(fù)雜性的增加,軟件產(chǎn)品成功的機(jī)率大幅下降,17,18,,,,,,,,3 快速原型模型 (Ra
9、pid Prototype Model),原型開發(fā)過程,19,,原型規(guī)劃,框架定義,可執(zhí)行原型,評估報告,,,,,,,原型模型的優(yōu)點(diǎn),快速開發(fā)用戶反饋逐漸完善,20,原型模型的特點(diǎn),適用于用戶驅(qū)動的系統(tǒng)(即需求模糊或隨時間變化的系統(tǒng))。,21,原型模型存在的問題,不宜用原型作為最后產(chǎn)品(成本)原型模型的作用問題(定義需求)原型法要求開發(fā)者與用戶密切接觸,有時這是不可能的。例如外包軟件。,22,4 演化模型,演化模型是
10、利用一種迭代的思想方法,它的特征是使軟件工程師漸進(jìn)地開發(fā)逐步完善的軟件版本。增量模型 (Incremental Model)螺旋模型 (Spiral Model),23,增量模型示意圖,24,分析,設(shè)計(jì),編碼,測試,使用,分析,設(shè)計(jì),編碼,測試,分析,設(shè)計(jì),編碼,測試,使用,使用,第1個增量,第2個增量,第n個增量,分析組,設(shè)計(jì)組,編碼組,測試組,增量模型的特點(diǎn),融合了瀑布模型的基本成分和快速原型的迭代特征;可以根據(jù)需要補(bǔ)充人員;
11、以功能遞增的方式進(jìn)行軟件開發(fā);能夠減少軟件產(chǎn)品給用戶帶來的影響;投資回報隨功能增加而漸增;可以有計(jì)劃的管理風(fēng)險。,25,增量模型和原型模型的區(qū)別,增量模型與快速原型模型,本質(zhì)上都是迭代的。兩者區(qū)別在:增量模型強(qiáng)調(diào)每一個增量發(fā)布一個可操作的產(chǎn)品。早期的增量提供了為用戶服務(wù)的功能和給用戶評價的平臺。,26,增量模型存在的問題,如果產(chǎn)品整體結(jié)構(gòu)設(shè)計(jì)不當(dāng),則難以為其增加新的增量(對設(shè)計(jì)水平要求很高)采用增量開發(fā),難以采用徹底的測試,
12、27,28,,,風(fēng)險分析,原型 1,建模 模擬 評價,需求計(jì)劃,,生存期計(jì)劃,,原型2,風(fēng)險分析,,,軟件需求,需求確認(rèn),,開發(fā)計(jì)劃,,,,,,風(fēng)險分析,原型3,,,軟件產(chǎn)品設(shè)計(jì),設(shè)計(jì)確認(rèn)和驗(yàn)證,,集成與測試計(jì)劃,,,風(fēng)險分析,可運(yùn)行原型,,,詳細(xì)設(shè)計(jì),單元測試,編碼,集成測試,驗(yàn)收測試,實(shí)現(xiàn),,,,,,,計(jì)劃下一個階段,開發(fā),確認(rèn)以及下一級產(chǎn)品,確定目標(biāo) 選擇方案 設(shè)定約束條件,評估方案,
13、識別并排除風(fēng)險,累計(jì)成本,各步驟的進(jìn)度,,The spiral model,螺旋模型(Spiral Model),Spiral 模型(Boehm, 1988提出)每一圈是一個階段,每個階段里又有一些活動。階段可分為:操作的概念、軟件需求、產(chǎn)品設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼、單元測試 、集成和測試、驗(yàn)收測試、實(shí)現(xiàn)?;顒佑校盒枨笈c計(jì)劃、風(fēng)險分析、設(shè)計(jì)與制作、用戶評價。,29,螺旋模型的特點(diǎn),階段性+迭代演化;風(fēng)險分析推動(風(fēng)險分
14、析使得用戶和開發(fā)人員更好的理解和管理每個階段的風(fēng)險);可結(jié)合采用多種軟件開發(fā)方法,但究竟結(jié)合哪一種方法仍由風(fēng)險分析來決定;適合大型軟件開發(fā)。,30,螺旋模型不足,要求軟件開發(fā)人員擅長風(fēng)險分析;風(fēng)險分析會導(dǎo)致項(xiàng)目終止而終止合同;對于小項(xiàng)目可能對于風(fēng)險分析的成本與整個項(xiàng)目相當(dāng)。,31,5 噴泉模型,32,噴泉模型的特點(diǎn),是典型的面向?qū)ο笊芷谀P汀皣娙边@個詞體現(xiàn)了面向?qū)ο筌浖_發(fā)過程迭代和無縫的特性應(yīng)該把線性過程作為總目
15、標(biāo),33,6 其他模型,極限編程模型(強(qiáng)調(diào)對變化的適應(yīng))構(gòu)件組裝模型(基于構(gòu)件組裝)簇模型(強(qiáng)調(diào)并行開發(fā))智能模型(將瀑布模型與專家系統(tǒng)結(jié)合)RUP模型……,34,7 軟件開發(fā)過程的一般視圖,無論哪種軟件過程模型,軟件開發(fā)過程都要經(jīng)歷三個典型階段:定義 Definition開發(fā) Development維護(hù) Maintenance,35,定義階段,集中于“做什么”三個基本任務(wù)系統(tǒng)分析 system analysis軟
16、件項(xiàng)目計(jì)劃 software project planning 需求分析 requirements analysis,36,開發(fā)階段,集中于“如何做”三個特定的任務(wù)軟件設(shè)計(jì) software design編碼 coding 軟件測試 software testing,37,維護(hù)階段,關(guān)注于“變化”四種類型的修改改正 correction適應(yīng) adaptation增強(qiáng) enhancement預(yù)防 prevention
17、(軟件再工程、逆工程),38,軟件過程,軟件開發(fā)過程中的坎坎坷坷,仿佛只是人臉的凹凸不平,用熱水毛巾一把就可抹平。讓我們高舉程序主義、軟件工程思想的偉大旗幟,緊密團(tuán)結(jié)在以Microsoft為核心的軟件公司周圍,沿著比爾·蓋茨的生財(cái)之道,不分白天黑夜地編程,把建設(shè)有中國特色的軟件產(chǎn)業(yè)的偉大事業(yè)全面推向新世紀(jì)。 ——林銳,小結(jié),軟件過程和軟件過程模型的概念一
18、系列不同的軟件過程模型,以及各自的優(yōu)點(diǎn)和缺點(diǎn)。軟件通過應(yīng)用三個不同的階段-定義、開發(fā)和維護(hù)來實(shí)現(xiàn)工程化生產(chǎn)。,40,推薦讀物,《IEEE軟件》(IEEE Software)《計(jì)算機(jī)》(Computer)《IEEE軟件工程學(xué)報》(IEEE Transactions on Software Engineering)《軟件發(fā)展》( Software Development)《ACM軟件工程和方法學(xué)學(xué)報》(ACM Transactio
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- [教育]趙良軟件工程軟件測試
- [教育]趙良軟件工程軟件維護(hù)
- [教育]趙良軟件工程面向數(shù)據(jù)流的分析方法
- [教育]趙良軟件工程結(jié)構(gòu)化設(shè)計(jì)概念和原理
- 軟件項(xiàng)目管理與軟件工程過程文檔規(guī)范
- 仿生軟件工程模型研究.pdf
- 軟件工程
- 軟件工程_軟件測試文檔
- 軟件工程 ( 第2次 ).doc
- 作業(yè)2(軟件工程-含答案)
- 軟件學(xué)院-軟件工程導(dǎo)論試題
- 軟件工程專業(yè)
- 軟件工程.doc
- 軟件工程與軟件文檔寫作
- 軟件工程作業(yè)
- 軟件工程題庫
- 軟件工程.doc
- 軟件工程案例
- 軟件工程題
- 軟件工程習(xí)題
評論
0/150
提交評論