3.1什么是增量模型
增量模型也稱漸增模型臊恋。使用增量模型開發(fā)軟件時怖侦,把軟件產(chǎn)品作為一系列的增量構(gòu)件來設(shè)計教藻、編碼距帅、集成和測試。每個構(gòu)件由多個相互作用的模塊構(gòu)成括堤,并且能夠完成特定的功能
使用增量模型時碌秸,第一個增量構(gòu)件往往實現(xiàn)軟件的基本需求,提供最核心的功能
把軟件產(chǎn)品分解成增量構(gòu)件時悄窃,唯一必須遵守的約束條件是讥电,當把新構(gòu)件集成到現(xiàn)有構(gòu)件中時,所形成的產(chǎn)品必須是可測試的
瀑布模型或快速原型模型目標是一次就把一個滿足所有需求的產(chǎn)品提交給用戶
增量模型把整個軟件產(chǎn)品分解成許多個增量構(gòu)件轧抗,分批地逐步向用戶提交產(chǎn)品
把瀑布模型的順序特征與快速原型法的迭代特征相結(jié)合
將軟件看作一系列相互聯(lián)系的增量恩敌,在開發(fā)過程的各次迭代中,每次完成其中的一個增量
風險更大的增量模型
確定用戶需求后就著手擬定第一個構(gòu)件的規(guī)格說明文檔横媚,完成后規(guī)格說明組轉(zhuǎn)向第二個構(gòu)件的規(guī)格說明文檔纠炮,同時設(shè)計組開始涉及第一個構(gòu)件
使用該方法將不同的構(gòu)件并行構(gòu)建,可能加快工程進度分唾,但將冒構(gòu)建無法集成到一起的風險
優(yōu)點
能在較短的時間內(nèi)向用戶提交可完成部分工作的產(chǎn)品
將待開發(fā)的軟件系統(tǒng)模塊化,可以分批次地提交軟件產(chǎn)品狮斗,使用戶可以及時了解軟件項目的進展
以組件為單位進行開發(fā)降低了軟件開發(fā)的風險绽乔。一個開發(fā)周期內(nèi)的錯誤不會影響到整個軟件系統(tǒng)
開發(fā)順序靈活。開發(fā)人員可以對組件的實現(xiàn)順序進行優(yōu)先級排序碳褒,先完成需求穩(wěn)定的核心組件折砸。當組件的優(yōu)先級發(fā)生變化時,還能及時地對實現(xiàn)順序進行調(diào)整
缺點
由于各個構(gòu)件是逐漸并入已有的軟件體系結(jié)構(gòu)中的沙峻,所以加入構(gòu)件必須不破壞已構(gòu)造好的系統(tǒng)部分睦授,這需要軟件具備開放式的體系結(jié)構(gòu)
在開發(fā)過程中,需求的變化是不可避免的摔寨。增量模型的靈活性可以使其適應這種變化的能力大大優(yōu)于瀑布模型和快速原型模型去枷,但也很容易退化為邊做邊改模型,從而是軟件過程的控制失去整體性
如果增量包之間存在相交的情況且未很好處理,則必須做全盤系統(tǒng)分析删顶,這種模型將功能細化后分別開發(fā)的方法較適應于需求經(jīng)常改變的軟件開發(fā)過程
1竖螃、開發(fā)初期的需求定義只是用來確定軟件的基本結(jié)構(gòu),使得開發(fā)初期用戶只需要對軟件需求進行大概的描述逗余;而對于需求的細節(jié)性描述特咆,則可以延遲到增量構(gòu)件開發(fā)時進行,以增量構(gòu)件為單位逐個地進行需求補充录粱。這種方式能夠有效適應用戶需求的變更
2腻格、軟件系統(tǒng)可以按照增量構(gòu)件的功能安排開發(fā)的優(yōu)先順序,并逐個實現(xiàn)和交付使用啥繁。不僅有利于用戶盡早用上系統(tǒng)菜职,能夠更好地適應新的軟件環(huán)境,而且在以增量方式使用系統(tǒng)的過程中输虱,還能獲得對軟件系統(tǒng)后續(xù)構(gòu)件的需求經(jīng)驗
3些楣、軟件系統(tǒng)是逐漸擴展的,因此開發(fā)者可以通過對諸多構(gòu)件的開發(fā)宪睹,逐步積累開發(fā)經(jīng)驗愁茁。實際上,增量式開發(fā)還有利于技術(shù)復用亭病,前面構(gòu)件中設(shè)計的算法鹅很、采用的技術(shù)策略、編寫的源碼等罪帖,都可以應用到后面將要創(chuàng)建的增量構(gòu)件中去
4促煮、增量式開發(fā)有利于從總體上降低軟件項目的技術(shù)風險。個別的構(gòu)件或許不能使用整袁,但一般不會影響到整個系統(tǒng)的正常工作
5菠齿、實際上,在采用增量模型時坐昙,具有最高優(yōu)先權(quán)的核心增量構(gòu)件將會被最先交付绳匀,而隨著后續(xù)構(gòu)件不斷被集成進系統(tǒng),這個核心構(gòu)件將會受到最多次數(shù)的測試炸客。這意味著軟件系統(tǒng)最重要的心臟部分將具有最高的可靠性疾棵,這將使得整個軟件系統(tǒng)更具健壯性