瀑布模型,演化模型(如增量模型、原型模型、螺旋模型)、噴泉模型、基於構件的開發模型和形式方法模型等。
瀑布模型(waterfall model)是1970年有W.Royce提出的,它給出了軟體生存週期活動的固定順序,上一階段的活動完成後向下一階段過渡,最終得到所開發的軟體產品。瀑布模型如下圖所示,有時也稱為軟體生存週期模型。
瀑布模型中,上一階段的活動完成並經過評審後才能開始下一階段的活動,其特徵是:
(1)接受上一階段的結果作為本階段活動的輸入。
(2)依據上一階段活動的結果實施本階段應完成的活動。
(3)對本階段的活動進行評審。
(4)將本階段活動的結果作為輸出,傳遞給下一階段。
瀑布模型是最早出現的也是應用最廣泛的過程模型,對確保軟體開發的順利進行、提高軟體專案的質量和開發效率起到重要作用。
在大量的實踐過程中,瀑布模型也逐漸暴露出它的不足。首先,客戶常常難以清楚地描述所有的要求,而且在開發過程中,使用者的需求也常常會有所變化,使得不少軟體的需求存在著不確定性;在某個活動中發現的錯誤常常是由前一階段活動的錯誤引起的,為了改正這一錯誤必須回到前一階段,這就導致了瀑布的倒流,也就是說,實際的軟體開發很少能按瀑布模型的順序沒有迴流地順流而下。其次,瀑布模型使得客戶在測試完成以後才能看到真正可執行的軟體,此時,如果發現不滿足客戶需求的問題(由於需求不確定性),那麼修改軟體的代價是巨大的。
不是任何軟體都可採用瀑布模型的,瀑布模型適合於結構化方法,也就是面向過程的軟體開發方法。軟體專案或產品選擇瀑布模型必須滿足下列條件:在開發時間內需求沒有或很少變化;分析設計人員應對應用領域很熟悉;低風險專案(對目標、環境很熟悉);使用者使用環境很穩定;使用者除提出需求以外,很少參與開發工作。
演化模型
演化模型主要針對事先不能完整定義需求的軟體開發,其開發過程一般是首先開發核心系統,當核心系統投入執行後,軟體開發人員根據使用者的反饋,實施開發的迭代過程,每一迭代過程均由需求、設計、編碼、測試、整合等階段組成,直到軟體開發結束。演化模型在一定程度上減少了軟體開發活動的盲目性。
螺旋模型:
它是在瀑布模型和演化模型的基礎上,加入兩者所忽略的風險分析所建立的一種軟體開發模型。沿螺旋模型順時針方向,依次表達了四個方面的活動,制定計劃、風險分析、實施工程、客戶評估。
噴泉模型
它體現了軟體建立所固有的迭代和無間隙特徵,噴泉模型主要用於支援面向物件開發過程。
增量模型內容:
在設計了軟體系統整體體系結構之後,首先完整的開發系統的一個初始子集,繼之,根據這一子集,建造一個更加精細的版本,如此不斷的進行系統的增量開發。
瀑布模型、演化模型、螺旋模型之間的聯絡:相同點是這三個模型都分為多個階段,而瀑布模型一次完成軟體,演化模型分為多次完成,每次迭代完成軟體的一個部分,螺旋模型也分為多次完成,每次完成軟體的一個新原型,並考慮風險分析。
演化模型和增量模型之間的區別
演化模型首先開發核心系統,每次迭代為系統增加一個子集,整個系統是增量開發和增量提交,增量模型首先完整的開發系統的一個初始子集,然後不斷的建造更精細的版本。
瀑布模型,演化模型(如增量模型、原型模型、螺旋模型)、噴泉模型、基於構件的開發模型和形式方法模型等。
瀑布模型(waterfall model)是1970年有W.Royce提出的,它給出了軟體生存週期活動的固定順序,上一階段的活動完成後向下一階段過渡,最終得到所開發的軟體產品。瀑布模型如下圖所示,有時也稱為軟體生存週期模型。
瀑布模型中,上一階段的活動完成並經過評審後才能開始下一階段的活動,其特徵是:
(1)接受上一階段的結果作為本階段活動的輸入。
(2)依據上一階段活動的結果實施本階段應完成的活動。
(3)對本階段的活動進行評審。
(4)將本階段活動的結果作為輸出,傳遞給下一階段。
瀑布模型是最早出現的也是應用最廣泛的過程模型,對確保軟體開發的順利進行、提高軟體專案的質量和開發效率起到重要作用。
在大量的實踐過程中,瀑布模型也逐漸暴露出它的不足。首先,客戶常常難以清楚地描述所有的要求,而且在開發過程中,使用者的需求也常常會有所變化,使得不少軟體的需求存在著不確定性;在某個活動中發現的錯誤常常是由前一階段活動的錯誤引起的,為了改正這一錯誤必須回到前一階段,這就導致了瀑布的倒流,也就是說,實際的軟體開發很少能按瀑布模型的順序沒有迴流地順流而下。其次,瀑布模型使得客戶在測試完成以後才能看到真正可執行的軟體,此時,如果發現不滿足客戶需求的問題(由於需求不確定性),那麼修改軟體的代價是巨大的。
不是任何軟體都可採用瀑布模型的,瀑布模型適合於結構化方法,也就是面向過程的軟體開發方法。軟體專案或產品選擇瀑布模型必須滿足下列條件:在開發時間內需求沒有或很少變化;分析設計人員應對應用領域很熟悉;低風險專案(對目標、環境很熟悉);使用者使用環境很穩定;使用者除提出需求以外,很少參與開發工作。
演化模型
演化模型主要針對事先不能完整定義需求的軟體開發,其開發過程一般是首先開發核心系統,當核心系統投入執行後,軟體開發人員根據使用者的反饋,實施開發的迭代過程,每一迭代過程均由需求、設計、編碼、測試、整合等階段組成,直到軟體開發結束。演化模型在一定程度上減少了軟體開發活動的盲目性。
螺旋模型:
它是在瀑布模型和演化模型的基礎上,加入兩者所忽略的風險分析所建立的一種軟體開發模型。沿螺旋模型順時針方向,依次表達了四個方面的活動,制定計劃、風險分析、實施工程、客戶評估。
噴泉模型
它體現了軟體建立所固有的迭代和無間隙特徵,噴泉模型主要用於支援面向物件開發過程。
增量模型內容:
在設計了軟體系統整體體系結構之後,首先完整的開發系統的一個初始子集,繼之,根據這一子集,建造一個更加精細的版本,如此不斷的進行系統的增量開發。
瀑布模型、演化模型、螺旋模型之間的聯絡:相同點是這三個模型都分為多個階段,而瀑布模型一次完成軟體,演化模型分為多次完成,每次迭代完成軟體的一個部分,螺旋模型也分為多次完成,每次完成軟體的一個新原型,並考慮風險分析。
演化模型和增量模型之間的區別
演化模型首先開發核心系統,每次迭代為系統增加一個子集,整個系統是增量開發和增量提交,增量模型首先完整的開發系統的一個初始子集,然後不斷的建造更精細的版本。