天天看點

架構之道之軟體開發過程的增量模型

       對瀑布模型的一個關鍵性的改進,是所謂增量模型的出現。增量模型是指首先建構部分系統,再逐漸增加功能或者性能的過程。它降低了取得初始功能之前的成本,強調采用建構方法來幫助控制更改需求的影響,也提高了建立可作業系統的速度。

      增量模型是綜合了瀑布模型和原型化的産物,提倡以功能漸增方式開發軟體,經驗表明,這種增量模型在特大型項目和小型項目中同樣适用。增量模型描述了為系統需求排定優先級然後分組實作的過程,每個後續版本都為先前版本增加了新功能。

      在生命周期的早期階段(計劃、分析、設計),需要建立一個考慮了整個系統的架構,這個架構應該是具有強的可內建性的,後續的構件方式開發,都是建立在這個架構之上。剩下的生命周期階段(編碼、測試、傳遞),來實作每一個增量。

     首先建立的應該是一組核心的功能,或者對于項目至關重要的最高優先級的系統,或者是能夠降低風險的系統。随後基于核心功能反複擴充,逐漸增加功能以提高性能。

架構之道之軟體開發過程的增量模型

增量模型的優點:

  1. 整個項目的資金不會被提前消耗,因為首先開發和傳遞了主要功能和高風險功能。
  2. 每個增量傳遞一個可操作的産品。
  3. 每次增量傳遞過程中擷取的經驗,有利于後面的改進,客戶也有機會對建立好的模型作出反應。
  4. 采用連續增量的方式,可把使用者經驗融入到細化的産品,這比完全重新開發要便宜得多。
  5. “分而治之”的政策,使問題分解成可管理的小部分,避免開發團隊由于長時間的需求任務而感到淚喪。
  6. 通過同一個團隊的工作來傳遞每個增量,保持所有團隊處于工作狀态,減少了員工的工作量,工作分布曲線通過項目中的時間階段被拉平。
  7. 每次增量傳遞的結為,可以重新修訂成本和進度的風險。
  8. 便于根據市場作出反應。
  9. 降低了失敗和更改需求的風險。
  10. 更易于控制使用者需求,因為每次曾兩開發的時間很短。
  11. 由于不是一步跳到未來,是以使用者能逐漸适應新技術。
  12. 切實的項目進展,有利于進度控制。
  13. 風險分布到幾個更小的增量中,而不是集中于一個大型開發中。由于使用者能夠從早期的增量中了解系統,是以更加了解後面增量中的需求。

增量開發必須注意的問題:

  1. 良好的可擴充性架構設計,是增量開發成功的基礎。
  2. 由于一些子產品必須在另一個子產品之前完成,是以必須定義良好的接口。
  3. 與完整的系統相比,增量方式正式的回顧和評審更難于實作,是以必須定義可行的過程。
  4. 要避免把難題往後推,首先完成的應該是高風險和重要的部分。客戶必須認識到總體成本不會更低。
  5. 分析階段采用總體目标而不是完整的需求定義,可能不适應管理。
  6. 需要更加良好的計劃和設計,管理必須注意動态配置設定工作,技術人員必須注意相關因素的變化。

繼續閱讀