軟件生存周期一般划分為:制定計划,需求分析,設計,編碼實現,測試,運行維護等幾階段,稱為軟件的生命周期。用不同的方式將軟件生命周期中的所有活動組織起來形成一定的結構框架來指導軟件開發,從而形成不同的軟件開發模型,常見的模型有如下幾種:
1.瀑布模型。
瀑布模型是一種最朴素的開發模型,他嚴格遵循軟件生命周期各階段的固定順序,計划,分析,設計,編程,測試和維護,上一階段完成后才能進入下一階段,整個模型就像一個飛流直下的瀑布。
瀑布模型過於理想化,而且缺乏靈活性,無法再開發過程中逐漸明確用戶難以確切表達或一時難以想到的需求。使用該模型,很可能直到軟件開發完成之后才發現他與用戶需求有很大距離,此時必須支付高額代價才能糾正這一偏差。
2. V模型。
V模型是瀑布模型的變形,與傳統的瀑布模型相比,該模型更加強調測試過程應如何與分析設計等過程相關聯。如圖:V模型中頂點左側和右側之間的連線表示如果在測試和確認過程中發現問題,那么左側的過程要重新執行。
3.快速原型模型。
快速原型模型的第一步是快速建立一個能反映用戶主要需求的軟件模型。讓用戶在計算機上使用它,通過實際操作了解目標系統概貌。開發人員按照用戶提出的意見快速地修改原型系統,然后再次請用戶試用。一旦用戶認為這個原型系統確實能滿足他們的需求,開發人員便可據此書寫軟件需求說明,並根據這份文檔開發可以滿足用戶需求的軟件產品。
4.增量模型。
增量模型也是一種原型化開發方法,采用瀑布模型或者快速原型模型開發軟件時,目標是一次就能把一個滿足所有需求的產品提交給用戶,而增量模型則反其道而行,它分批逐步向用戶提交產品,整個軟件產品被分解為許多個增量構件,開發人員一個構件一個構件地向用戶提交產品。
5. 螺旋模型。
螺旋模型綜合了瀑布模型和演化模型的優點,還增加了風險分析,彌補了兩者的不足,螺旋模型包涵了四個方面的活動:制定計划,風險分析,實施工程,客戶評估。分別為直角坐標系的四個象限,開發過程恰好是一條螺旋線。
6.噴泉模型。
噴泉模型主要用於描述面向對象的開發過程。噴泉一詞體現了面向對象開發過程的迭代和無間隙特征。