軟件生存周期(software life cycle)又稱為軟件生命期,生存期。是指從形成開發(fā)軟件概念起,所開發(fā)的軟件使用以后,直到失去使用價值消亡為止的整個過程。
一般來說,整個生存周期包括計劃(定義)、開發(fā)、運行(維護)三個時期,每一個時期又劃分為若干階段。每個階段有明確的任務(wù),這樣使規(guī)模大、結(jié)構(gòu)復(fù)雜和管理復(fù)雜的軟件開發(fā)變得容易控制和管理。
一、開發(fā)模型
1.1瀑布模型
?
優(yōu)點:開發(fā)階段,各個階段比較清晰;強調(diào)早期計劃及需求調(diào)查;適合穩(wěn)定需求的產(chǎn)品開發(fā);
缺點:依賴于早期的需求調(diào)查,不適應(yīng)需求的變化;單一流程不可逆;風(fēng)險往往延至后期才暴露,失去及早糾正的機會;前面未發(fā)現(xiàn)的錯誤會傳遞到后面的階段可能導(dǎo)致項目失敗。
改良:每個階段都可以融入小的迭代工作!
優(yōu)點:開發(fā)階段,各個階段比較清晰;強調(diào)早期計劃及需求調(diào)查;適合穩(wěn)定需求的產(chǎn)品開發(fā);
改良:每個階段都可以融入小的迭代工作!
1.2快速原型模型
?
優(yōu)點:克服瀑布模型的缺點,更好地滿足用戶的需求并減少由于軟件需求不明確帶來的項目開發(fā)風(fēng)險。適合預(yù)先不能確切定義需求的軟件系統(tǒng)的開發(fā)。
缺點:不適合大型系統(tǒng)的開發(fā)(適合開發(fā)小型的、靈活性高的系統(tǒng))。前提要有一個展示性的產(chǎn)品原型,因此在一定程度上可能會限制開發(fā)人員的創(chuàng)新。
實現(xiàn)一個基本原型,讓用戶對原型進行評價,逐步調(diào)整,使其滿足用戶最終需求;
優(yōu)點:適合不能確定需求的軟件;
缺點:不適合開發(fā)大型系統(tǒng)。
1.3螺旋模型
螺旋模型將開發(fā)過程分為幾個螺旋周期,每個螺旋周期大致和瀑布模型相符合,螺旋模型沿著螺旋線旋轉(zhuǎn),即在坐標的4個象限上分別表示了4個方面的活動,
制定計劃——風(fēng)險分析——實施開發(fā)——客戶評估
?
二、測試模型
2.1 ??V模型
2.1.1 需求分析:用戶需求、業(yè)務(wù)需求、需求規(guī)格說明書
? 概要設(shè)計:系統(tǒng)架構(gòu)、模塊劃分、模塊與模塊之間的接口。
???? ? 詳細設(shè)計:模塊內(nèi)部實現(xiàn)的邏輯和方法。
? 編碼:實現(xiàn)上面的設(shè)計。
? 單元測試:檢測代碼的開發(fā)是否符合詳細設(shè)計的要求。
? 集成測試:檢測此前測試過的各組成部分是否能完好地結(jié)合到一起。
? 系統(tǒng)測試:檢測已集成在一起的產(chǎn)品是否符合系統(tǒng)規(guī)格說明書的要求。
? 驗收測試:檢測產(chǎn)品是否符合最終用戶的需求。
?
2.1.2測試v模型優(yōu)缺點
優(yōu)點:①包含了底層測試(單元測試)和高層測試(系統(tǒng)測試)(底層測試:檢驗源代碼質(zhì)量的測試,如:單元測試;高層測試:檢驗整個系統(tǒng)的需要,如:系統(tǒng)測試);
? ? ②清楚的標識了開發(fā)和測試的各個階段;
? ? ③自上而下逐步求精,每個階段分工明確,便于整體項目的把控。
缺點:①自上而下的順序?qū)е铝?,測試工作在編碼之后,就導(dǎo)致錯誤不能及時的進行修改;
? ? ②實際工作中,需求經(jīng)常變化,導(dǎo)致v模型步驟,反復(fù)執(zhí)行,返工量很大,靈活度較低。
改良:每個步驟都可以進行小的迭代(更新)工作。
2.2?W模型
優(yōu)點:①開發(fā)和測試伴隨著整個開發(fā)周期,需求和設(shè)計同樣要測試;
? ? ②更早的介入測試,可以發(fā)現(xiàn)初期的缺陷,修復(fù)成本低;
? ? ③分階段工作,方便項目整體管理。
缺點:①開發(fā)和測試依然是線性的關(guān)系,需求的變更和調(diào)整,依然不方便;
? ? ②如果沒有文檔,根本無法執(zhí)行w模型;
? ? ③對于項目組成員的技術(shù)要求更高!
定義:開發(fā)一個v、測試一個v組合起來的模型(w模型也叫雙v模型)
總結(jié):v模型適用于中小企業(yè),w模型適用于中大型企業(yè)(因為人員要求高),h模型人員要求非常高,很少有公司使用。
2.3?H模型
測試流程
測試準備:所有測試執(zhí)行活動的準備;判斷是否到測試就緒點;
測試就緒點:測試準入準則,即是否可以開始執(zhí)行測試的條件;
測試執(zhí)行:具體的執(zhí)行測試的程序。
其他流程
具體開發(fā)中的流程,如:設(shè)計流程
優(yōu)點:
開發(fā)的H模型揭示了軟件測試除測試執(zhí)行外,還有很多工作;
軟件測試完全獨立,貫穿整個生命周期,且與其他流程并發(fā)進行;
測試活動可以盡早準備、盡早執(zhí)行,具有很強的靈活性;測試可以根據(jù)被測物的不同而分層次、分階段、分次序的執(zhí)行,同時也是可以被迭代的。
缺點:
管理型要求高:由于模型很靈活,必須要定義清晰的規(guī)則和管理制度,否則測試過程將非常難以管理和控制;
技能要求高:H模型要求能夠很好的定義每個迭代的規(guī)模,不能太大也不能太小;
測試就緒點分析困難:測試很多時候,你并不知道測試準備到什么時候是合適的,就緒點在哪里,就緒點的標準是什么,這就對后續(xù)的測試執(zhí)行的啟動帶來很大困難;
對于整個項目組的人員要求非常高:在很好的規(guī)范制度下,大家都能高效的工作,否則容易混亂。例如:你分了一個小的迭代,但是因為人員技能不足,使得無法有效完成,那么整個項目就會受到很大的干擾。
來源:http://www.icode9.com/content-4-198101.html