瀑布、V、W、快速原型模型、增量、螺旋模型
瀑布模型(Waterfall Model)?
是最早出現(xiàn)的軟件開發(fā)模型,它提供了軟件開發(fā)的基本框架,開發(fā)過程是通過設計一系列階段順序展開的,從系統(tǒng)需求分析開始直到產品發(fā)布和維護,每個階段都會產生循環(huán)反饋,因此,如果有信息未被覆蓋或者發(fā)現(xiàn)了問題,那么最好 “返回”上一個階段并進行適當的修改,項目開發(fā)進程從一個階段“流動”到下一個階段,這也是瀑布模型名稱的由來。包括軟件工程開發(fā)、企業(yè)項目開發(fā)、產品生產以及市場銷售等構造瀑布模型。
核心思想
瀑布模型核心思想是按工序將問題化簡,將功能的實現(xiàn)與設計分開,便于分工協(xié)作,即采用結構化的分析與設計方法將邏輯實現(xiàn)與物理實現(xiàn)分開。將軟件生命周期劃分為制定計劃、需求分析、軟件設計、程序編寫、軟件測試和運行維護等六個基本活動,并且規(guī)定了它們自上而下、相互銜接的固定次序,如同瀑布流水,逐級下落。
優(yōu)點:
1)為項目提供了按階段劃分的檢瀑布模型
查點。
2)當前一階段完成后,您只需要去關注后續(xù)階段。
3)可在迭代模型中應用瀑布模型。
增量迭代應用于瀑布模型。迭代1解決最大的問題。每次迭代產生一個可運行的版本,同時增加更多的功能。每次迭代必須經過質量和集成測試。
4)它提供了一個模板,這個模板使得分析、設計、編碼、測試和支持的方法可以在該模板下有一個共同的指導。
缺點:
1)各個階段的劃分完全固定,階段之間產生大量的文檔,極大地增加了工作量。
2)由于開發(fā)模型是線性的,用戶只有等到整個過程的末期才能見到開發(fā)成果,從而增加了開發(fā)風險。
3)通過過多的強制完成日期和里程碑來跟蹤各個項目階段。
4)瀑布模型的突出缺點是不適應用戶需求的變化。
V模型
是瀑布模型的進階,是軟件開發(fā)過程中的一個重要模型,由于其模型構圖形似字母V,所以又稱軟件測試的V模型。
單元測試:是否滿足詳細設計的要求
集成測試:驗證已測試過的部分是否可以很好地結合在一起
系統(tǒng)測試:檢驗系統(tǒng)功能、性能是否達到系統(tǒng)的要求。
驗收測試:確定軟件的時限是否滿足用戶需求或合同需求
優(yōu)點:
1、包含了底層測試(單元測試)和高層測試(系統(tǒng)測試);
2、清楚的標識了開發(fā)和測試的各個階段;
3、自上而下逐步求精,每個階段分工明確,便于整體項目的把控。
缺點:
1、自上而下的順序導致了,測試工作在編碼之后,就導致錯誤不能及時的進行修改;
2、實際工作中,需求經常變化,導致v模型步驟,反復執(zhí)行,返工量很大,靈活度較低。
W模型
又叫雙v模型,相對于V模型,W模型增加了軟件開發(fā)各階段中同步進行的驗證和確認活動,分別代表測試與開發(fā)過程,明確表示出了測試與開發(fā)的并行關系,有利于盡早地全面的發(fā)現(xiàn)問題。例如,需求分析完成后,測試人員就應該參與到對需求文檔的驗證和確認活動中,以盡早地找出缺陷所在。同時,對需求的測試也有利于及時了解項目難度和測試風險,及早制定應對措施,這將顯著減少總體測試時間,加快項目進度。
優(yōu)點:
1、開發(fā)伴隨著整個開發(fā)周期,需求和設計同樣要測試;
2、更早的介入測試,可以發(fā)現(xiàn)初期的缺陷,修復成本低;
3、分階段工作,方便項目整體管理。
缺點:
1、開發(fā)和測試依然是線性的關系,需求的變更和調整,依然不方便;
2、如果沒有文檔,根本無法執(zhí)行w模型;
3、對于項目組成員的技術要求更高!
快速原型模型
是快速建立起來的可以在計算機上運行的程序,它所能完成的功能往往是最終產品能完成的功能的一個子集;
快速原型模型是增量模型的另一種形式,在開發(fā)真實系統(tǒng)之前,迅速建造一個可以運行的軟件原型 ,以便理解和澄清問題,在該原型的基礎上,逐漸完成整個系統(tǒng)的開發(fā)工作;
它允許在需求分析階段對軟件的需求進行初步而非完全的分析和定義,快速設計開發(fā)出軟件系統(tǒng)的原型,該原型向用戶展示待開發(fā)軟件的全部或部分功能和性能;用戶對該原型進行測試評定,給出具體改進意見以豐富細化軟件需求;開發(fā)人員據此對軟件進行修改完善,直至用戶滿意認可之后,進行軟件的完整實現(xiàn)及測試、維護
優(yōu)點:
克服瀑布模型的缺點,減少由于軟件需求不明確帶來的開發(fā)風險
適合預先不能確切定義需求的軟件系統(tǒng)的開發(fā)
缺點:
所選用的開發(fā)技術和工具不一定符合主流的發(fā)展;快速建立起來的系統(tǒng)結構加上連續(xù)的修改可能會導致產品質量低下
使用前提是要有一個展示性的產品原型,一定程度上可能會限制開發(fā)人員的創(chuàng)新
增量模型
增量模型也稱漸增模型。使用增量模型開發(fā)軟件時,把軟件產品作為一系列的增量構件來設計、編碼、集成和測試。每個構件由多個相互作用的模塊構成,并且能夠完成特定的功能,使用增量模型時,第一個增量構件往往實現(xiàn)軟件的基本需求,提供最核心的功能
優(yōu)點:
1、能在較短的時間內向用戶提交可完成部分工作的產品
2、將待開發(fā)的軟件系統(tǒng)模塊化,可以分批次地提交軟件產品,使用戶可以及時了解軟件項目的進展
3、以組件為單位進行開發(fā)降低了軟件開發(fā)的風險。一個開發(fā)周期內的錯誤不會影響到整個軟件系統(tǒng)
4、開發(fā)順序靈活。開發(fā)人員可以對組件的實現(xiàn)順序進行優(yōu)先級排序,先完成需求穩(wěn)定的核心組件。當組件的優(yōu)先級發(fā)生變化時,還能及時地對實現(xiàn)順序進行調整
缺點:
1、由于各個構件是逐漸并入已有的軟件體系結構中的,所以加入構件必須不破壞已構造好的系統(tǒng)部分,這需要軟件具備開放式的體系結構
2、在開發(fā)過程中,需求的變化是不可避免的。增量模型的靈活性可以使其適應這種變化的能力大大優(yōu)于瀑布模型和快速原型模型,但也很容易退化為邊做邊改模型,從而是軟件過程的控制失去整體性
3、如果增量包之間存在相交的情況且未很好處理,則必須做全盤系統(tǒng)分析,這種模型將功能細化后分別開發(fā)的方法較適應于需求經常改變的軟件開發(fā)過程
螺旋模型
螺旋模型是一種演化軟件開發(fā)過程模型,它兼顧了快速原型的迭代特征以及瀑布模型的系統(tǒng)化與嚴格監(jiān)控。螺旋模型最大的特點在于引入了其他模型不具備的風險分析,使軟件在無法排除重大風險時有機會停止,以減小損失。同時,在每個迭代階段構建原型是螺旋模型用以減小風險的途徑
螺旋模型是快速原型模型以進化的開發(fā)方式為中心,在每個項目階段使用瀑布模型法。該模型的每一個周期都包括需求定義、風險分析、工程實現(xiàn)和評審4個階段,由這4個階段進行迭代。軟件開發(fā)過程每迭代一次,軟件開發(fā)又前進一個層次。
圖中帶箭頭的點劃線的長度代表當前累計的開發(fā)費用,螺旋線的角度值代表開發(fā)進度,螺旋線的每個周期對應于一個開發(fā)階段
圖中的四個象限代表了以下活動
制定計劃:確定軟件目標,選定實施方案,弄清項目開發(fā)的限制條件
風險分析:分析評估所選方案,考慮如何識別和消除風險
實施工程:實施軟件開發(fā)和驗證
客戶評估:評價開發(fā)工作,提出修正建議,制定下一步計劃
優(yōu)點:
1、對可選方案和約束條件的強調有利于已有軟件的重用,也有助于把軟件質量作為軟件開發(fā)的一個重要目標
2、減少了過多測試(浪費資金)或測試不足(產品故障多)所帶來的風險
3、在螺旋模型中維護只是模型的另一個周期,在維護和開發(fā)之間并沒有本質區(qū)別
缺點:
1、采用螺旋模型需要具有相當豐富的風險評估經驗和專門知識,在風險較大的項目開發(fā)中,如果未能夠及時標識風險,勢必造成重大損失
2、過多的迭代次數會增加開發(fā)成本,延遲提交時間
總結
以上是生活随笔為你收集整理的瀑布、V、W、快速原型模型、增量、螺旋模型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Ubuntu 17.10安装Qt 5.1
- 下一篇: java iterator遍历map_使