迭代模型(stagewise model)(也被稱作迭代增量式開發或迭代進化式開發)
是一種與傳統的瀑布式開發相反的軟件開發過程,它彌補了傳統開發方式中的一些弱點,具有更高的成功率和生產率。即所有功能一起開發,從粗到細,逐步求精。迭代模型適用於需求不甚明確、難度比較大的軟件開發。
在迭代式開發方法中,整個開發工作被組織為一系列的短小的、固定長度(如3周)的小項目,被稱為一系列的迭代。每一次迭代都包括了需求分析、設計、實現與測試。采用這種方法,開發工作可以在需求被完整地確定之前啟動,並在一次迭代中完成系統的一部分功能或業務邏輯的開發工作。再通過客戶的反饋來細化需求,並開始新一輪的迭代。
教學中,對迭代和版本的區別,可理解如下: 迭代一般指某版本的生產過程,包括從需求分析到測試完成; 版本一般指某階段軟件開發的結果,一個可交付使用的產品。
與傳統的瀑布模型相比較,迭代過程具有以下優點:
1)降低了在一個增量上的開支風險。如果開發人員重復某個迭代,那么損失只是這一個開發有誤的迭代的花費。因拆分成了多個小項目,每個小項目完成都測試。
2)降低了產品無法按照既定進度進入市場的風險。通過在開發早期就確定風險,可以盡早來解決而不至於在開發后期匆匆忙忙。因客戶看過並反饋過每個迭代。
3)加快了整個開發工作的進度。因為開發人員清楚問題的焦點所在,他們的工作會更有效率。因每次都專注於當前迭代。
4)由於用戶的需求並不能在一開始就作出完全的界定,它們通常是在后續階段中不斷細化的。因此,迭代過程這種模式使
適應需求的變化會更容易些。因此復用性更高