軟件評測時筆記_軟件開發模型學習20161021

軟件開發模型
爲了指導軟件的開發,能夠用不一樣的方式將軟件生命週期中的全部開發活動組織起來,從而造成了不一樣的軟件開發模型。常見的開發模型有瀑布模型(Waterfall Model)、快速原型模型(Rapid Prototype Model)、演化模型(Evolutionary Model)、增量模型(Incremental Model)、螺旋模型(Spiral Model)和噴泉模型(Water Fountain Model)等。
1.瀑布模型
瀑布模型嚴格遵循軟件生命週期各階段的固定順序:計劃、分析、設計、編程、測試和維護,上一階段完成後才能進入下一階段,整個模型就像一個飛流直下的瀑布,如圖6-9所示。
 
圖6-9 瀑布模型示意圖
瀑布模型有許多優勢:可強迫開發人員採用規範的方法;嚴格規定了各階段必須提交的文檔;要求每一個階段結束後,都要進行嚴格的評審。
但瀑布模型過於理想化,並且缺少靈活性,沒法在開發過程當中逐漸明確用戶難以確切表達或一時難以想到的需求,直到軟件開發完成以後才發現與用戶需求有很大差距,此時必須付出高額的代價才能糾正這一誤差。
 
2.快速原型模型
快速原型是指快速創建起來的能夠在計算機上運行的程序,它所完成的功能每每是最終軟件產品功能的一個子集。快速原型模型的第一步是快速創建一個能反映用戶主要需求的軟件原型,讓用戶在計算機上使用它,經過實際操做了解目標系統的概貌。開發人員按照用戶提出的意見快速地修改原型系統,而後再次請用戶試用,一旦用戶認爲這個原型系統確實可以知足他們的需求,開發人員即可據此書寫軟件需求說明,並根據這份文檔開發出能夠知足用戶真實需求的軟件產品。
原型化方法基於這樣一種客觀事實:並不是全部的需求在系統開發以前都能準確地說明和定義。所以,它不追求也不可能要求對需求的嚴格定義,而是採用了動態定義需求的方法。
具備普遍技能、高水平的原型化人員是原型實施的重要保證。原型化人員應該是具備經驗與才幹、訓練有素的專業人員。衡量原型化人員能力的重要標準是他是否可以從用戶的模糊描述中快速獲取實際的需求。
 
3.演化模型
演化模型也是一種原型化開發方法,但與快速原型模型略有不一樣。在快速原型模型中,原型的用途是獲知用戶的真正需求,一旦需求肯定了,原型即被拋棄。而演化模型的開發過程,則是從初始模型逐步演化爲最終軟件產品的漸進過程。也就是說,快速原型模型是一種「拋棄式」的原型化方法,而演化模型則是一種「漸進式」的原型化方法。
 
4.增量模型
增量模型是第三種原型化開發方法,但它既非「拋棄式」的,也非「漸進式」的,而是「遞增式」的。增量模型把軟件產品劃分爲一系列的增量構件,分別進行設計、編程、集成和測試。每一個構件由多個相互做用的模塊構成,而且可以完成特定的功能。如何將一個完整的軟件產品分解成增量構件,因軟件產品特色和開發人員的習慣而異,但使用增量模型的軟件體系結構必須是開放的,加入新構件的過程必須簡單方便,新的增量構件不得破壞已經開發出來的產品。其示意圖如圖6-10所示。
 
圖6-10 增量模型示意圖
 
5.螺旋模型
螺旋模型綜合了瀑布模型和演化模型的優勢,還增長了風險分析。螺旋模型包含了4個方面的活動:制訂計劃、風險分析、實施工程、客戶評估。這4項活動剛好能夠放在一個直角座標系的4個象限,而開發過程剛好像一條螺旋線。採用螺旋模型時,軟件開發沿着螺旋線自內向外旋轉,每轉一圈都要對風險進行識別和分析,並採起相應的對策。螺旋線第一圈的開始點多是一個概念項目。從第二圈開始,一個新產品開發項目開始了,新產品的演化沿着螺旋線進行若干次迭代,一直運轉到軟件生命期結束。其示意圖如圖6-11所示。
 
圖6-11 螺旋模型示意圖
 
6.噴泉模型
噴泉模型主要用於描述面向對象的開發過程。噴泉一詞體現了面向對象開發過程的迭代和無間隙特徵。迭代意味着模型中的開發活動經常須要屢次重複,每次重複都會增長或明確一些目標系統的性質,但卻不是對先前工做結果的本質性改動。無間隙是指在開發活動(如分析、設計、編程)之間不存在明顯的邊界,而是容許各開發活動交叉、迭代地進行。
相關文章
相關標籤/搜索