迭代與增量的共性與區別

    在關於軟件過程的書籍和文章裏,增量、迭代可以說是如雷貫耳,但也帶來了概念上的混淆,不知道他們有什麼共同之處和區別,甚至以爲是同一個概念。下面也實例來說明他們有什麼相似之處與不同之處。
    假設一個軟件共有A、B、C、D、E五個功能,怎麼來開發呢?
    我們可以五個功能同時做,由粗到細,逐步求精,最終完成整個軟件。整個過程可以是先做出A、B、C、D、E五個功能的原型,然後完成他們的基本功能,接着對這些功能進行優化,最終得到功能完整的軟件。這樣的開發過程就是迭代模型。
    我們也可以由少多到的進行開發,先完成一部分功能,然後再完成一部分功能,直至完成整個軟件。例如先開發出功能A、B,然後開發出功能C、D,最後開發出功能E。這樣的開發過程就是增量模型。
    先對迭代、增量有了個感性認識,我們再看一看爲什麼要用這樣的模型。對於一個軟件來說,很難做到一步到位,就像吃東西一樣,要一口一口的吃,想要把整個東西吞下去就容易噎着。於是,就出現了分階段進行開發的模型,逐步達到目標,迭代模型、增量模型就是這樣的。
    他們的共同點是,通過若干個階段的開發,完成整個軟件,每階段完成之後,都有一個新版本發佈。這就有一個好處,相對於整個漫長的開發週期來說,每階段都會見到亮光,有利於鼓舞團隊的士氣,降低項目的風險。
    至於不同點,主要是階段的劃分上不太一樣。增量模型是從功能量上來劃分的,每階段完成一定的功能。迭代模型是從深度或細化的程度來劃分的,每階段功能得到完善、增強。
    增量模型適用於需求比較明確,架構比較穩定的軟件開發,每次增量不影響已有的架構,在已有的架構下增加新的功能。迭代模型適用於需求不甚明確、難度比較大的軟件開發。
    在實際應用中,增量、迭代經常一起使用,如迭代時加入新的功能進行開發,這也是他們經常一起出現的原因。我們在開發自己的軟件時,需要根據軟件項目的實際情況,進行不同的增量、迭代組合,以充分利用資源,降低項目風險。
   

發佈了35 篇原創文章 · 獲贊 1 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章