軟體生命周期模型

軟體生命周期模型

軟體生命周期 同任何事物一樣,一個軟體產品或軟體系統也要經歷孕育、誕生、成長、成熟、衰亡等階段,一般稱為軟體生命周期(軟體生存周期)。軟體生命周期模型是指人們為開發更好的軟體而歸納總結的軟體生命周期的典型實踐參考。

基本介紹

  • 中文名:軟體生命周期模型
  • 典型的軟體生命周期模型:典型的軟體生命周期模型
  • 階段:孕育、誕生、成長、成熟、衰亡等
  • 第一個軟體生命周期:1970年
簡介,瀑布型生命周期主要階段,其它幾種典型的軟體生命周期模型,疊代式模型,快速原型模型,

簡介

軟體生命周期 同任何事物一樣,一個軟體產品或軟體系統也要經歷孕育、誕生、成長、成熟、衰亡等階段,一般稱為軟體生存周期(軟體生命周期)。軟體生命周期(SDLC,軟體生存周期)是軟體的產生直到報廢的生命周期。為了使規模大、結構複雜和管理複雜的軟體開發變的容易控制和管理,人們把整個軟體生命周期劃分為若干階段,使得每個階段有明確的任務,整理出軟體生命周期模型。在1970年人類整理了第一個軟體生命周期,即是瀑布型生命周期。在沒有總結到其它生命周期模型時,人們直接將其命名為軟體生命周期,而隨著越來越多的生命周期模型被識別,原先的軟體生命周期就不再是瀑布型生命周期的專有名稱。而在1970年~2000年瀑布型生命周期占統治地位的時候,軟體生命周期是瀑布型生命周期的另一個稱呼,也就是說軟體生命周期指的就是瀑布型生命周期。
瀑布型生命周期包括可行性分析與開發項計畫、需求分析、設計(概要設計詳細設計)、編碼、測試、維護等階段。而其它軟體生命周期未必有與瀑布型生命周期相同的階段。敏捷類生命周期的階段劃分是按照疊代來進行,而疊代內部不再有階段劃分,在如測試驅動開發等的實踐下,就算是更細節的活動也難以明確劃分是需求還是設計還是編碼還是測試。

瀑布型生命周期主要階段

瀑布型生命周期的典型六個階段
1、問題的定義及規劃
此階段是軟體開發方與需求方共同討論,主要確定軟體的開發目標及其可行性。
在確定軟體開發可行的情況下,對軟體需要實現的各個功能進行詳細分析。需求分析階段是一個很重要的階段,這一階段做得好,將為整個軟體開發項目的成功打下良好的基礎。"唯一不變的是變化本身。",同樣需求也是在整個軟體開發過程中不斷變化和深入的,因此我們必須制定需求變更計畫來應付這種變化,以保護整個項目的順利進行。
此階段主要根據需求分析的結果,對整個軟體系統進行設計,如系統框架設計,資料庫設計等等。軟體設計一般分為總體設計詳細設計。好的軟體設計將為軟體程式編寫打下良好的基礎。
4、程式編碼
此階段是將軟體設計的結果轉換成計算機可運行的程式代碼。在程式編碼中必須要制定統一,符合標準的編寫規範。以保證程式的可讀性,易維護性,提高程式的運行效率。
5、軟體測試
軟體設計完成後要經過嚴密的測試,以發現軟體在整個設計過程中存在的問題並加以糾正。整個測試過程單元測試組裝測試以及系統測試三個階段進行。測試的方法主要有白盒測試黑盒測試兩種。在測試過程中需要建立詳細的測試計畫並嚴格按照測試計畫進行測試,以減少測試的隨意性。
6、運行維護
軟體維護軟體生命周期中持續時間最長的階段。在軟體開發完成並投入使用後,由於多方面的原因,軟體不能繼續適套用戶的要求。要延續軟體的使用壽命,就必須對軟體進行維護。軟體的維護包括糾錯性維護和改進性維護兩個方面。

其它幾種典型的軟體生命周期模型

其它幾種典型的生命周期模型包括疊代模型快速原型模型、V模型、W模型。

疊代式模型

疊代式模型是是RUP(Rational Unified Process,統一軟體開發過程統一軟體過程)推薦的周期模型。在RUP中,疊代被定義為:疊代包括產生產品發布(穩定、可執行的產品版本)的全部開發活動和要使用該發布必需的所有其他外圍元素。所以,在某種程度上,開發疊代是一次完整地經過所有工作流程的過程:(至少包括)需求工作流程、分析設計工作流程、實施工作流程和測試工作流程。實質上,它類似小型的瀑布式項目。RUP認為,所有的階段(需求及其它)都可以細分為疊代。每一次的疊代都會產生一個可以發布的產品,這個產品是最終產品的一個子集。疊代的思想如圖所示。
軟體生命周期模型
疊代和瀑布的最大的差別就在於風險的暴露時間上。“任何項目都會涉及到一定的風險。如果能在生命周期中儘早確保避免了風險,那么您的計畫自然會更趨精確。有許多風險直到已準備集成系統時才被發現。不管開發團隊經驗如何,都絕不可能預知所有的風險。”  由於瀑布模型的特點(文檔是主體),很多的問題在最後才會暴露出來,為了解決這些問題的風險是巨大的。"在疊代式生命周期中,您需要根據主要風險列表選擇要在疊代中開發的新的增量內容。每次疊代完成時都會生成一個經過測試的執行檔,這樣就可以核實是否已經降低了目標風險。"
軟體生命周期模型

快速原型模型

快速原型(Rapid Prototype)模型在功能上等價於產品的一個子集。注意,這裡說的是功能上。瀑布模型的缺點就在於不夠直觀,快速原型法就解決了這個問題。一般來說,根據客戶的需要在很短的時間內解決用戶最迫切需要,完成一個可以演示的產品。這個產品只是實現部分的功能(最重要的)。它最重要的目的是為了確定用戶的真正需求。在我的經驗中,這種方法非常的有效,原先對計算機沒有絲毫概念的用戶在你的原型面前往往口若懸河,有些觀點讓你都覺得非常的吃驚。在得到用戶的需求之後,原型將被拋棄。因為原型開發的速度很快,設計方面是幾乎沒有考慮的,如果保留原型的話,在隨後的開發中會為此付出極大的代價。至於保留原型方面,也是有一種叫做增量模型是這么做的,但這種模型並不為大家所接受,不在我們的討論之內。 上述的模型中都有自己獨特的思想,其實軟體組織中很少說標準的採用那一種模型的。模型和實用還是有很大的區別的。  軟體生命周期模型的發展實際上是體現了軟體工程理論的發展。在最早的時候,軟體的生命周期處於無序、混亂的情況。一些人為了能夠控制軟體的開發過程,就把軟體開發嚴格的區分為多個不同的階段,並在階段間加上嚴格的審查。這就是瀑布模型產生的起因。瀑布模型體現了人們對軟體過程的一個希望:嚴格控制、確保質量。可惜的是,現實往往是殘酷的。瀑布模型根本達不到這個過高的要求,因為軟體的過程往往難於預測。反而導致了其它的負面影響,例如大量的文檔、繁瑣的審批。因此人們就開始嘗試著用其它的方法來改進或替代瀑布方法。例如把過程細分來增加過程的可預測性。

相關詞條

熱門詞條

聯絡我們