SE02 軟件開發(fā)模型_第1頁
SE02 軟件開發(fā)模型_第2頁
SE02 軟件開發(fā)模型_第3頁
SE02 軟件開發(fā)模型_第4頁
SE02 軟件開發(fā)模型_第5頁
已閱讀5頁,還剩43頁未讀, 繼續(xù)免費閱讀

付費下載

下載本文檔

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

文檔簡介

1、軟件開發(fā)模型2主要內容軟件生命周期軟件開發(fā)模型3軟件開發(fā)模型傳統(tǒng)開發(fā)模型瀑布模型(waterfall model)快速原型模型(rapid prototype model)演化開發(fā)模型增量模型(incremental model)螺旋模型(spiral model)基于四代技術的模型面向對象開發(fā)模型構件集成模型(component integration model) 形式化開發(fā)模型轉換模型(transformational model)凈室模型(cleanroom model)42.1軟件生命周期生存周期(Life Cycle)定義 一個軟件從開始計劃起,到廢棄不用為止,稱為軟件的生存周期。

2、軟件生存周期包括:計劃、開發(fā)與運行3個時期,每一時期又可細分為若干更小的階段。將軟件開發(fā)過程劃分生存周期的目的: 把整個生存周期劃分為較小的階段,給每個階段賦予確定而有限的任務,就能夠簡化每一步的工作內容,使因為軟件規(guī)模增長而大大增加了的軟件復雜性變得較易控制和管理。5典型的軟件生存周期問題定義(系統(tǒng)需求)可行性研究需求分析(軟件需求)軟件設計(概要、詳細)編碼測試運 行 維護計劃時期開發(fā)時期運行時期6(1)計劃時期 主要任務:調查和分析,調查用戶需求,分析新系統(tǒng)的主要目標,分析開發(fā)該系統(tǒng)的可行性。包括兩個階段:問題定義 主要弄清“用戶需要計算機解決什么問題”,由系統(tǒng)分析員根據對問題的理解,提

3、出關于“系統(tǒng)與范圍的說明”,交由用戶審查和認可??尚行苑治?對問題的解決給出在技術上可行、且在經濟上有較高效益的可操作解決方案,并寫出“可行性論證報告”,如若項目不值得進行,應提出終止該項目的建議。生存周期每一時期的任務7Feasibility studyOperational Feasibility 操作可行性Technical Feasibility 技術可行性Schedule Feasibility 時間可行性Economic Feasibility經濟可行性技術可行性經濟可行性運行可行性法律可行性8(2)開發(fā)時期主要任務:系統(tǒng)分析、設計和實現。包括四個階段需求分析 弄清用戶對軟件系統(tǒng)的

4、全部需求,并用“需求規(guī)格說明書”的形式準確地表達出來。 做什么 SRS文檔軟件設計 將需求轉變?yōu)檐浖谋硎拘问?,確定軟件的總體結構、數據結構、用戶界面和算法細節(jié)。又可分為概要設計(總體設計)和詳細設計兩個階段。編碼 按照選定的語言,把設計的過程性描述翻譯為源程序。測試 發(fā)現軟件中隱藏的各種錯誤,是保證軟件質量的重要手段。生存周期每一時期的任務9(3)運行時期主要任務:做好軟件維護,使軟件在整個生存周期內保證滿足用戶的需求和延長使用壽命。一個階段:軟件維護糾錯性維護適應性維護功能性維護預防性維護生存周期每一時期的任務10計劃階段定義問題確認系統(tǒng)的可行性制定項目進度表為項目安排人員啟動項目分析階段

5、收集信息確定系統(tǒng)需求建立需求發(fā)現的原型劃分需求的優(yōu)先級產生并評估可替換方案與管理人員一起審查建議設計階段設計并集成網絡設計應用程序結構設計用戶界面設計系統(tǒng)界面設計并集成數據庫設計細節(jié)的原型化設計并集成系統(tǒng)控制實現階段構建軟件的部件檢驗并測試開發(fā)調整原型轉換數據培訓與文檔安裝系統(tǒng)支持階段目標:保證系統(tǒng)在安裝后有效地運行對最終用戶的支持幫助臺,由技術人員組成培訓計劃維護并增強計算機系統(tǒng)增強升級維護系統(tǒng)開發(fā)生命周期 (SDLC,systems development life cycle)圖 系統(tǒng)開發(fā)生命周期112.2 傳統(tǒng)軟件開發(fā)模型軟件開發(fā)模型(Software Developement Mod

6、el)的概念在軟件開發(fā)過程中包含了很多不同的開發(fā)活動,根據軟件生存周期為各項開發(fā)活動的流程確定一個合理的框架,稱為軟件生存周期模型或軟件開發(fā)模型。由多種不同的軟件開發(fā)策略,形成了不同的軟件開發(fā)模型。如傳統(tǒng)模型、演化模型和面向對象模型等。不同的軟件開發(fā)模型分別適用于不同特征的軟件項目。12軟件開發(fā)模型(Software Developement Model)的概念各個不同的軟件開發(fā)模型都包含計劃、開發(fā)、維護三類活動(基本活動)。在不同的軟件開發(fā)模型中,活動可順序展開,也可反復循環(huán),所用的方法與工具可隨所用的模型而異。各開發(fā)組織可探索適合自己的開發(fā)模型。13傳統(tǒng)軟件開發(fā)模型至今仍廣泛使用的開發(fā)模型

7、包括瀑布模型-線性順序模型或生存周期模型快速原型模型14(1)瀑布模型(Waterfall Model)問題定義可行性研究需求分析軟件設計編碼測試維護計劃時期開發(fā)時期運行時期在這種模型中,各個階段的工作順序展開,恰如奔騰不息拾級而下的瀑布,總是從上面的臺階依次流向下面的臺階。1970 W.Royce15(1)階段的順序性和依賴性只有等前一階段的工作完成以后,后一階段的工作才能開始;順序性想在后階段獲得正確的結果,必須在前階段有正確的輸出;依賴性因此,如果在生存期某一階段出現了問題,往往要追溯到在它之前的一些階段,必要時還要修改前面已經完成的文檔。瀑布模型特點16瀑布模型特點(續(xù))(2)實現的觀

8、點過早考慮程序的實現,常常導致大量返工,容易給開發(fā)帶來災難性的后果,因此把邏輯設計與物理設計清楚地劃分開來,盡可能推遲程序的物理實現。(3)質量保證的觀點每一階段都要完成規(guī)定的文檔,是文檔驅動的模型。每一階段都要對已完成的文檔進行復審,以便盡早發(fā)現問題,消除隱患。及時復審是保證軟件質量、降低開發(fā)成本的重要措施。17瀑布模型的階段與文檔各階段產生的文檔及其相互關系需求分析概要(總體)設計詳細設計編 碼單元測試系統(tǒng)測試確認測試綜合測試用戶要求需求規(guī)格說明軟件結構圖模塊說明程序清單18瀑布模型的缺點存在問題不適合需求模糊或需求經常變動的系統(tǒng)由于開銷的逐步升級問題,它不希望存在早期階段的反饋在一個系統(tǒng)

9、完成以前,它無法預測一個新系統(tǒng)引入一個機構的影響它不能恰當地研究和解決使用系統(tǒng)時的人為因素如果突然地把一個計算機系統(tǒng)引入一個機構是很危險的,因為用戶會抵制這種突然的變革在用戶可能需要較長等待時間來獲得一個可供使用的系統(tǒng),也許會給用戶的信任程度帶來影響和打擊最終產品往往反映用戶的初始需求而不是最終需求一旦開始使用和學習了解系統(tǒng)之后,觀點和意向可能會發(fā)生變化。而這種變化常常是無法預測的。適合某些領域:嵌入式、實時控制;對其它應用領域不適合。19(2)快速原型模型(Rapid Prototype Model)首先建立一個能夠反映用戶主要需求的原型,讓用戶實際看一看未來系統(tǒng)的概貌,以便判斷哪些功能是符

10、合需要的,哪些方面還需要改進。然后將原型反復改進,最終建立完全符合用戶要求的新系統(tǒng)。需求分析原型開發(fā)最終系統(tǒng)設計原型評價最終系統(tǒng)實現用戶反饋20原型化方法 Why?在開發(fā)初期,要想得到一個完整準確的規(guī)格說明不是一件容易的事。特別是對一些大型的軟件項目。用戶往往對系統(tǒng)只有一個模糊的想法,很難完全準確地表達對系統(tǒng)的全面要求。軟件開發(fā)者對于所要解決的應用問題認識更是模糊不清隨著開發(fā)工作向前推進,用戶可能會產生新的要求,或因環(huán)境變化,要求系統(tǒng)也能隨之變化;開發(fā)者又可能在設計與實現的過程中遇到些沒有預料到的實際困難,需要以改變需求來解脫困境。因此規(guī)格說明難以完善、需求的變更、以及通信中的模糊和誤解,都會

11、成為軟件開發(fā)順利推進的障礙。為了解決這些問題,逐漸形成了軟件系統(tǒng)的快速原型的概念。21軟件原型的分類在軟件開發(fā)中,原型是軟件的一個早期可運行的版本,它反映最終系統(tǒng)的部分重要特性。探索型:目的是要弄清對目標系統(tǒng)的要求,確定所希望的特性,并探討多種方案的可行性。實驗型:這種原型用于大規(guī)模開發(fā)和實現之前,考核方案是否合適,規(guī)格說明是否可靠。進化型:這種原型的目的不在于改進規(guī)格說明,而是將系統(tǒng)建造得易于變化,在改進原型的過程中,逐步將原型進化成最終系統(tǒng)。Throwaway Prototyping 拋棄型 Evolutionary Prototyping 漸進型(演化型)22建立快速原型好處增進軟件開發(fā)

12、者和用戶對系統(tǒng)服務需求的理解,使比較含糊的具有不確定性的軟件需求(主要是功能)明確化。軟件原型化方法提供了一種有力的學習手段。使用原型化方法,可以容易地確定系統(tǒng)的性能,確認各項主要系統(tǒng)服務的可應用性,確認系統(tǒng)設計的可行性,確認系統(tǒng)作為產品的結果。軟件原型的最終版本,有的可以原封不動地成為產品,有的略加修改就可以成為最終系統(tǒng)的一個組成部分,這樣有利于建成最終系統(tǒng)。23特點使用快速開發(fā)工具循環(huán)低成本可在較短時間獲取用戶的需求問題臨時可運行版本,非最終版本為了加快開發(fā)速度,開發(fā)人員往往有一些折中處理種類漸進型(演化型)拋棄型242.3 軟件演化模型(Evolutionary Model)傳統(tǒng)軟件開發(fā)

13、模型的共同特征“線性思維”,將軟件的開發(fā)活動處理成線性的或主要是線性的。但現在大部分復雜軟件采用漸增式或迭代的開發(fā)方法,使所開發(fā)的軟件在迭代中逐步達到完善,稱之為演化模型。演化模型為漸進式開發(fā)模型,包括:增量模型螺旋模型25(1) 增量模型(Incremental Model)把瀑布模型的順序特征與快速原型法的迭代特征相結合將軟件看作一系列相互聯系的增量,在開發(fā)過程的各次迭代中,每次完成其中的一個增量。規(guī)格說明設計實現和集成交付客戶增量2增量3增量n增量1規(guī)格說明設計實現和集成交付客戶規(guī)格說明設計實現和集成交付客戶規(guī)格說明設計實現和集成交付客戶規(guī)格說明組設計組實現和集成組26增量小而可用的軟件

14、特點在前面增量的基礎上開發(fā)后面的增量每個增量的開發(fā)可用瀑布或快速原型模型迭代的思路27(2)螺旋模型(Spiral Model)在瀑布模型與快速原型的基礎上,增加了風險分析。是一種迭代模型,每迭代一次,螺旋線就前進一周。螺旋模型的四個組成部分:需求定義、風險分析、工程實現、評審28螺旋模型(Spiral Model) 確定目標 評估方案制定計劃 選擇方案 風險分析 識別風險 設定約束 排除風險 評價開發(fā)方案 客戶評估 提出修改意見 開發(fā) 實施工程 驗證下一級產品風險 分析 原形1需求、生命周期計劃風險 分析 原形2 軟件 需求 需求 確認 開 發(fā) 計 劃 風險 分析 原形3 軟件產 品設計設計

15、確認 驗證 集成與 測試計劃風險 分析 可運行 原形 模擬 模型 基準 詳細 設計 編碼 單元測試集成測試 實現 驗收測試 圖螺旋模型29一個螺旋周期內的工作步驟確定目標,選擇方案,選定完成目標的策略 需求定義分析該策略可能存在的風險 風險分析啟動一個開發(fā)階段 工程實現評價前一步的結果,計劃下一輪的工作 評審螺旋模型的特點將瀑布模型和演化模型結合起來,加入了兩種模型均忽略了的風險分析,彌補了這兩種模型的不足。迭代式開發(fā)方式是一種風險驅動的模型,適合于大型軟件的開發(fā)。但是,使用該模型需要有相當豐富的風險評估經驗和專門知識,這使該模型的應用受到一定限制。302.4 基于四代技術的模型4GL由R.R

16、oss于1981年提出。面向結果的非過程式語言。 4GL工具 SQL 生成器 適合小型應用系統(tǒng)需求分析設計策略用4GL實現測 試用四代技術開發(fā)軟件的模型312.5 面向對象開發(fā)模型面向對象的基本概念對象(Object)類(Class)繼承(Inheritance)消息(Message) 面向對象對象+類+繼承+消息通信32OO方法與傳統(tǒng)方法相結合的較好方案在整個開發(fā)過程中,都采用OO方法保留傳統(tǒng)的分析方法,采用OO的設計與實現保留傳統(tǒng)的實現(用過程性語言)方法,采用OO的分析與設計采用OO的分析和傳統(tǒng)的設計與實現采用OO的實現和傳統(tǒng)的分析與設計33(1)對象(Object)客觀世界中的個體或事

17、物的抽象表示,是它的屬性和相關操作的統(tǒng)一封裝體。屬性(靜態(tài)屬性 Attributes) 表示對象的性質,屬性值規(guī)定了對象所有可能的狀態(tài)。操作(動態(tài)行為 Methods) 指該對象可以展現的外部服務。對象:=IdentifierMethod SetData StructureMessage Interface對象的特點以數據為中心對象是主動的實現數據封裝本質上有并行性模塊獨立性好34(2)類(Class)和實例(Instance)類相同屬性和行為的對象的抽象。實例特定類所描述的一個具體對象,即對象是類的實例。35(3)繼承(Inheritance)子類直接繼承父類的數據和操作繼承的傳遞性,單繼承

18、、多重繼承家具桌子椅子衣柜床椅子的實例36(4)消息(Message)對象間的交互手段,對象可以向其他對象發(fā)送消息以請求服務,也可以響應其他對象傳來的消息完成固有的某些操作,從而服務于其他對象。形式:Message:dest,op,paraDestination ObjectOperationParameters37 什么叫做“面向對象”?Coad和Yourdon認為,在軟件開發(fā)過程中采用對象、類、繼承、消息這四種概念進行開發(fā)的軟件系統(tǒng)可以認為是面向對象的。面向對象對象+類+繼承+消息通信38(1)構件集成模型構件(Component)是系統(tǒng)中實際存在的可更換部分,它實現特定的功能,符合一套接口標準并實現一組接口。構件代表系統(tǒng)中的一部分物理實施,包括軟件代碼(源代碼、二進制代碼或可執(zhí)行代碼)或其等價物(如腳本或命令文件)。構件集成模型利用預先封裝好的軟件構件來構造應用軟件系統(tǒng),融合了螺旋模型的很多特征,支持迭代方法。39構件集成模型40特點面向對象基于構件庫融合螺旋模型特征支持軟件開發(fā)的迭代方法 軟件重用412.5 形式化方法模型(1)轉換模型(Transformational Model)結合形式化軟件開發(fā)方法和程序自動生成技術的一種軟件開發(fā)模型。采用嚴格的數學表示體系來表示軟件規(guī)格說明,然后進行一系列自動

溫馨提示

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

最新文檔

評論

0/150

提交評論