軟件生存周期及其模型是什么?
一、開發模型
1.1瀑布模型

優點:開發階段,各個階段比較清晰;強調早期計划及需求調查;適合穩定需求的產品開發;
缺點:依賴於早期的需求調查,不適應需求的變化;單一流程不可逆;風險往往延至后期才暴露,失去及早糾正的機會;前面未發現的錯誤會傳遞到后面的階段可能導致項目失敗。
改良:每個階段都可以融入小的迭代工作!
優點:開發階段,各個階段比較清晰;強調早期計划及需求調查;適合穩定需求的產品開發;
改良:每個階段都可以融入小的迭代工作!
1.2快速原型模型

優點:克服瀑布模型的缺點,更好地滿足用戶的需求並減少由於軟件需求不明確帶來的項目開發風險。適合預先不能確切定義需求的軟件系統的開發。
缺點:不適合大型系統的開發(適合開發小型的、靈活性高的系統)。前提要有一個展示性的產品原型,因此在一定程度上可能會限制開發人員的創新。
實現一個基本原型,讓用戶對原型進行評價,逐步調整,使其滿足用戶最終需求;
優點:適合不能確定需求的軟件;
缺點:不適合開發大型系統。
1.3螺旋模型
螺旋模型將開發過程分為幾個螺旋周期,每個螺旋周期大致和瀑布模型相符合,螺旋模型沿着螺旋線旋轉,即在坐標的4個象限上分別表示了4個方面的活動,
制定計划——風險分析——實施開發——客戶評估

二、測試模型
2.1 V模型
2.1.1 需求分析:用戶需求、業務需求、需求規格說明書
概要設計:系統架構、模塊划分、模塊與模塊之間的接口。
詳細設計:模塊內部實現的邏輯和方法。
編碼:實現上面的設計。
單元測試:檢測代碼的開發是否符合詳細設計的要求。
集成測試:檢測此前測試過的各組成部分是否能完好地結合到一起。
系統測試:檢測已集成在一起的產品是否符合系統規格說明書的要求。
驗收測試:檢測產品是否符合最終用戶的需求。

2.1.2測試v模型優缺點
優點:①包含了底層測試(單元測試)和高層測試(系統測試)(底層測試:檢驗源代碼質量的測試,如:單元測試;高層測試:檢驗整個系統的需要,如:系統測試);
②清楚的標識了開發和測試的各個階段;
③自上而下逐步求精,每個階段分工明確,便於整體項目的把控。
缺點:①自上而下的順序導致了,測試工作在編碼之后,就導致錯誤不能及時的進行修改;
②實際工作中,需求經常變化,導致v模型步驟,反復執行,返工量很大,靈活度較低。
改良:每個步驟都可以進行小的迭代(更新)工作。
2.2 W模型


優點:①開發和測試伴隨着整個開發周期,需求和設計同樣要測試;
②更早的介入測試,可以發現初期的缺陷,修復成本低;
③分階段工作,方便項目整體管理。
缺點:①開發和測試依然是線性的關系,需求的變更和調整,依然不方便;
②如果沒有文檔,根本無法執行w模型;
③對於項目組成員的技術要求更高!
定義:開發一個v、測試一個v組合起來的模型(w模型也叫雙v模型)
總結:v模型適用於中小企業,w模型適用於中大型企業(因為人員要求高),h模型人員要求非常高,很少有公司使用。
2.3 H模型
測試流程
測試准備:所有測試執行活動的准備;判斷是否到測試就緒點;
測試就緒點:測試准入准則,即是否可以開始執行測試的條件;
測試執行:具體的執行測試的程序。
其他流程
具體開發中的流程,如:設計流程

優點:
開發的H模型揭示了軟件測試除測試執行外,還有很多工作;
軟件測試完全獨立,貫穿整個生命周期,且與其他流程並發進行;
測試活動可以盡早准備、盡早執行,具有很強的靈活性;測試可以根據被測物的不同而分層次、分階段、分次序的執行,同時也是可以被迭代的。
缺點:
管理型要求高:由於模型很靈活,必須要定義清晰的規則和管理制度,否則測試過程將非常難以管理和控制;
技能要求高:H模型要求能夠很好的定義每個迭代的規模,不能太大也不能太小;
測試就緒點分析困難:測試很多時候,你並不知道測試准備到什么時候是合適的,就緒點在哪里,就緒點的標准是什么,這就對后續的測試執行的啟動帶來很大困難;
對於整個項目組的人員要求非常高:在很好的規范制度下,大家都能高效的工作,否則容易混亂。例如:你分了一個小的迭代,但是因為人員技能不足,使得無法有效完成,那么整個項目就會受到很大的干擾。
