對瀑布模型的一個關鍵性的改進,是所謂增量模型的出現。增量模型是指首先建構部分系統,再逐漸增加功能或者性能的過程。它降低了取得初始功能之前的成本,強調采用建構方法來幫助控制更改需求的影響,也提高了建立可作業系統的速度。
增量模型是綜合了瀑布模型和原型化的産物,提倡以功能漸增方式開發軟體,經驗表明,這種增量模型在特大型項目和小型項目中同樣适用。增量模型描述了為系統需求排定優先級然後分組實作的過程,每個後續版本都為先前版本增加了新功能。
在生命周期的早期階段(計劃、分析、設計),需要建立一個考慮了整個系統的架構,這個架構應該是具有強的可內建性的,後續的構件方式開發,都是建立在這個架構之上。剩下的生命周期階段(編碼、測試、傳遞),來實作每一個增量。
首先建立的應該是一組核心的功能,或者對于項目至關重要的最高優先級的系統,或者是能夠降低風險的系統。随後基于核心功能反複擴充,逐漸增加功能以提高性能。

增量模型的優點:
- 整個項目的資金不會被提前消耗,因為首先開發和傳遞了主要功能和高風險功能。
- 每個增量傳遞一個可操作的産品。
- 每次增量傳遞過程中擷取的經驗,有利于後面的改進,客戶也有機會對建立好的模型作出反應。
- 采用連續增量的方式,可把使用者經驗融入到細化的産品,這比完全重新開發要便宜得多。
- “分而治之”的政策,使問題分解成可管理的小部分,避免開發團隊由于長時間的需求任務而感到淚喪。
- 通過同一個團隊的工作來傳遞每個增量,保持所有團隊處于工作狀态,減少了員工的工作量,工作分布曲線通過項目中的時間階段被拉平。
- 每次增量傳遞的結為,可以重新修訂成本和進度的風險。
- 便于根據市場作出反應。
- 降低了失敗和更改需求的風險。
- 更易于控制使用者需求,因為每次曾兩開發的時間很短。
- 由于不是一步跳到未來,是以使用者能逐漸适應新技術。
- 切實的項目進展,有利于進度控制。
- 風險分布到幾個更小的增量中,而不是集中于一個大型開發中。由于使用者能夠從早期的增量中了解系統,是以更加了解後面增量中的需求。
增量開發必須注意的問題:
- 良好的可擴充性架構設計,是增量開發成功的基礎。
- 由于一些子產品必須在另一個子產品之前完成,是以必須定義良好的接口。
- 與完整的系統相比,增量方式正式的回顧和評審更難于實作,是以必須定義可行的過程。
- 要避免把難題往後推,首先完成的應該是高風險和重要的部分。客戶必須認識到總體成本不會更低。
- 分析階段采用總體目标而不是完整的需求定義,可能不适應管理。
- 需要更加良好的計劃和設計,管理必須注意動态配置設定工作,技術人員必須注意相關因素的變化。