軟件生存周期(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),即在坐標(biāo)的4個象限上分別表示了4個方面的活動, 制定計劃——風(fēng)險分析——實施開發(fā)——客戶評估 ? 二、測試模型 2.1 ??V模型 2.1.1 需求分析:用戶需求、業(yè)務(wù)需求、需求規(guī)格說明書 ? 概要設(shè)計:系統(tǒng)架構(gòu)、模塊劃分、模塊與模塊之間的接口。 ???? ? 詳細(xì)設(shè)計:模塊內(nèi)部實現(xiàn)的邏輯和方法。 ? 編碼:實現(xiàn)上面的設(shè)計。 ? 單元測試:檢測代碼的開發(fā)是否符合詳細(xì)設(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)測試); ? ? ②清楚的標(biāo)識了開發(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ǔn)備:所有測試執(zhí)行活動的準(zhǔn)備;判斷是否到測試就緒點; 測試就緒點:測試準(zhǔn)入準(zhǔn)則,即是否可以開始執(zhí)行測試的條件; 測試執(zhí)行:具體的執(zhí)行測試的程序。 其他流程 具體開發(fā)中的流程,如:設(shè)計流程 優(yōu)點: 開發(fā)的H模型揭示了軟件測試除測試執(zhí)行外,還有很多工作; 軟件測試完全獨立,貫穿整個生命周期,且與其他流程并發(fā)進行; 測試活動可以盡早準(zhǔn)備、盡早執(zhí)行,具有很強的靈活性;測試可以根據(jù)被測物的不同而分層次、分階段、分次序的執(zhí)行,同時也是可以被迭代的。 缺點: 管理型要求高:由于模型很靈活,必須要定義清晰的規(guī)則和管理制度,否則測試過程將非常難以管理和控制; 技能要求高:H模型要求能夠很好的定義每個迭代的規(guī)模,不能太大也不能太??; 測試就緒點分析困難:測試很多時候,你并不知道測試準(zhǔn)備到什么時候是合適的,就緒點在哪里,就緒點的標(biāo)準(zhǔn)是什么,這就對后續(xù)的測試執(zhí)行的啟動帶來很大困難; 對于整個項目組的人員要求非常高:在很好的規(guī)范制度下,大家都能高效的工作,否則容易混亂。例如:你分了一個小的迭代,但是因為人員技能不足,使得無法有效完成,那么整個項目就會受到很大的干擾。 來源:http://www./content-4-198101.html |
|