[教育]趙良軟件工程2軟件過程模型_第1頁
已閱讀1頁,還剩40頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第2講 軟件過程模型(Process Model),,1,軟件過程軟件生命周期軟件過程模型瀑布模型快速原型模型噴泉模型演化模型增量模型螺旋模型軟件開發(fā)過程的一般視圖,2,主要內容,3,方法使用的順序;要求交付的文檔資料;為保證質量和適應變化所需要的管理;軟件開發(fā)各個階段完成的里程碑。,軟件開發(fā)提供了 “如何做” 的技術。,為軟件工程方法提供了自動的或半自動的軟件支撐環(huán)境,CASE,軟件工程層次圖,任何工程方法必須以有組

2、織的質量承諾為基礎。支持軟件工程的根基在于對質量的關注。,1 軟件過程,軟件過程需要提供一個公共過程框架,在該框架下可以建立一個軟件開發(fā)的綜合計劃。選擇一個公共過程框架是根據產品、人員和項目而調整的。,4,5,框架活動Framework Activities 任務集合work tasks工作任務work products交付物milestones & deliverables質量保證點QA checkpoints,

3、軟件生命周期,軟件生命周期是軟件過程模型的基礎,是軟件產品或系統一系列相關活動的全周期。軟件生命周期階段:可行性研究及項目定義需求分析設計(總體設計和詳細設計)編程實現測試使用與維護,6,軟件生命周期,7,運行和維護,問題定義和可行性研究,確定要開發(fā)軟件系統的總目標和規(guī)模。從技術、經濟和社會因素等方面的要求來論證完成該軟件任務的可行性。估計可利用的資源(計算機硬件,軟件,人力等)、成本、效益、開發(fā)進度。制定出完成開發(fā)

4、任務的實施計劃,連同可行性研究報告,提交管理部門審查。,8,需求分析,理解用戶需求,并將用戶需求用書面形式表達出來。編寫軟件需求規(guī)格說明書或系統功能說明書及初步的系統用戶手冊。需求說明書是以后階段工作的基礎。將需求規(guī)格說明書提交管理機構評審。,9,設計,總體設計 — “如何解決問題”在需求說明書的基礎上建立軟件的體系結構。結構中每一組成部分都是意義明確的模塊,每個模塊都和某些需求相對應可以列出多種解決方案進行比較詳細設計 —

5、對每個模塊要完成的工作進行具體的描述,為源程序編寫打下基礎編寫設計說明書(模塊說明書、數據庫或文件結構說明書等),提交評審。,10,編碼,把軟件設計轉換成計算機可以接受的程序代碼,即寫成以某一種特定程序設計語言表示的“源程序清單”。寫出的程序應當是結構良好、清晰易讀的(如匈牙利法則) ,且與設計相一致的。,11,測試,單元測試:查找各模塊在功能和結構上存在的問題并加以糾正。集成測試:將已測試過的、并且相關的模塊按一定順序組裝起來進

6、行測試。按規(guī)定的各項需求,逐項進行系統測試,決定已開發(fā)的軟件是否合格,能否交付用戶使用。,12,運行和維護,改正性維護:運行中發(fā)現了軟件中的錯誤需要修正。適應性維護:為了適應變化了的軟件工作環(huán)境,需做適當變更。完善性維護:為了增強軟件的功能需做變更。預防性維護:修改軟件為將來的維護活動預先做準備,13,2 傳統瀑布模型,14,可行性研究報告,需求規(guī)格說明書,設計規(guī)格說明書,程序,測試報告,軟件定義,可行性研究與計劃,需求分析,設

7、計,編碼,測試,運行和維護,,,,,,,問題描述,瀑布模型,所有過程模型的鼻祖。---- Royce,1970軟件開發(fā)過程劃分成若干階段,每個階段的任務相對獨立。從技術和管理兩個角度進行嚴格的審查,經確認之后才開始下一階段的工作。---- 項目是按照一定的順序執(zhí)行。瀑布模型是文檔驅動的,各個階段不連續(xù)也不交叉。,15,瀑布模型的特點,階段間具有順序性和依賴性。 (兩重含義)推遲程序的物理實現。(重要指導思想)質量保證:每個階段

8、必須完成規(guī)定的文檔;每個階段結束前完成文檔審查,及早改正錯誤。(兩個重要做法)是一種嚴格線性的、按階段順序的、逐步細化的過程模型(開發(fā)模式)。強調需求分析和設計,16,瀑布模型的缺陷,缺乏靈活性,不能適應用戶需求的改變 開始階段的小錯誤被逐級放大,可能導致軟件產品報廢返回上一級的開發(fā)需要十分高昂的代價隨著軟件規(guī)模和復雜性的增加,軟件產品成功的機率大幅下降,17,18,,,,,,,,3 快速原型模型 (Ra

9、pid Prototype Model),原型開發(fā)過程,19,,原型規(guī)劃,框架定義,可執(zhí)行原型,評估報告,,,,,,,原型模型的優(yōu)點,快速開發(fā)用戶反饋逐漸完善,20,原型模型的特點,適用于用戶驅動的系統(即需求模糊或隨時間變化的系統)。,21,原型模型存在的問題,不宜用原型作為最后產品(成本)原型模型的作用問題(定義需求)原型法要求開發(fā)者與用戶密切接觸,有時這是不可能的。例如外包軟件。,22,4 演化模型,演化模型是

10、利用一種迭代的思想方法,它的特征是使軟件工程師漸進地開發(fā)逐步完善的軟件版本。增量模型 (Incremental Model)螺旋模型 (Spiral Model),23,增量模型示意圖,24,分析,設計,編碼,測試,使用,分析,設計,編碼,測試,分析,設計,編碼,測試,使用,使用,第1個增量,第2個增量,第n個增量,分析組,設計組,編碼組,測試組,增量模型的特點,融合了瀑布模型的基本成分和快速原型的迭代特征;可以根據需要補充人員;

11、以功能遞增的方式進行軟件開發(fā);能夠減少軟件產品給用戶帶來的影響;投資回報隨功能增加而漸增;可以有計劃的管理風險。,25,增量模型和原型模型的區(qū)別,增量模型與快速原型模型,本質上都是迭代的。兩者區(qū)別在:增量模型強調每一個增量發(fā)布一個可操作的產品。早期的增量提供了為用戶服務的功能和給用戶評價的平臺。,26,增量模型存在的問題,如果產品整體結構設計不當,則難以為其增加新的增量(對設計水平要求很高)采用增量開發(fā),難以采用徹底的測試,

12、27,28,,,風險分析,原型 1,建模 模擬 評價,需求計劃,,生存期計劃,,原型2,風險分析,,,軟件需求,需求確認,,開發(fā)計劃,,,,,,風險分析,原型3,,,軟件產品設計,設計確認和驗證,,集成與測試計劃,,,風險分析,可運行原型,,,詳細設計,單元測試,編碼,集成測試,驗收測試,實現,,,,,,,計劃下一個階段,開發(fā),確認以及下一級產品,確定目標 選擇方案 設定約束條件,評估方案,

13、識別并排除風險,累計成本,各步驟的進度,,The spiral model,螺旋模型(Spiral Model),Spiral 模型(Boehm, 1988提出)每一圈是一個階段,每個階段里又有一些活動。階段可分為:操作的概念、軟件需求、產品設計、詳細設計、編碼、單元測試 、集成和測試、驗收測試、實現。活動有:需求與計劃、風險分析、設計與制作、用戶評價。,29,螺旋模型的特點,階段性+迭代演化;風險分析推動(風險分

14、析使得用戶和開發(fā)人員更好的理解和管理每個階段的風險);可結合采用多種軟件開發(fā)方法,但究竟結合哪一種方法仍由風險分析來決定;適合大型軟件開發(fā)。,30,螺旋模型不足,要求軟件開發(fā)人員擅長風險分析;風險分析會導致項目終止而終止合同;對于小項目可能對于風險分析的成本與整個項目相當。,31,5 噴泉模型,32,噴泉模型的特點,是典型的面向對象生命周期模型“噴泉”這個詞體現了面向對象軟件開發(fā)過程迭代和無縫的特性應該把線性過程作為總目

15、標,33,6 其他模型,極限編程模型(強調對變化的適應)構件組裝模型(基于構件組裝)簇模型(強調并行開發(fā))智能模型(將瀑布模型與專家系統結合)RUP模型……,34,7 軟件開發(fā)過程的一般視圖,無論哪種軟件過程模型,軟件開發(fā)過程都要經歷三個典型階段:定義 Definition開發(fā) Development維護 Maintenance,35,定義階段,集中于“做什么”三個基本任務系統分析 system analysis軟

16、件項目計劃 software project planning 需求分析 requirements analysis,36,開發(fā)階段,集中于“如何做”三個特定的任務軟件設計 software design編碼 coding 軟件測試 software testing,37,維護階段,關注于“變化”四種類型的修改改正 correction適應 adaptation增強 enhancement預防 prevention

17、(軟件再工程、逆工程),38,軟件過程,軟件開發(fā)過程中的坎坎坷坷,仿佛只是人臉的凹凸不平,用熱水毛巾一把就可抹平。讓我們高舉程序主義、軟件工程思想的偉大旗幟,緊密團結在以Microsoft為核心的軟件公司周圍,沿著比爾·蓋茨的生財之道,不分白天黑夜地編程,把建設有中國特色的軟件產業(yè)的偉大事業(yè)全面推向新世紀。 ——林銳,小結,軟件過程和軟件過程模型的概念一

18、系列不同的軟件過程模型,以及各自的優(yōu)點和缺點。軟件通過應用三個不同的階段-定義、開發(fā)和維護來實現工程化生產。,40,推薦讀物,《IEEE軟件》(IEEE Software)《計算機》(Computer)《IEEE軟件工程學報》(IEEE Transactions on Software Engineering)《軟件發(fā)展》( Software Development)《ACM軟件工程和方法學學報》(ACM Transactio

溫馨提示

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

評論

0/150

提交評論