2.3 增量模型
增量模型(Incremental Model)是遵循遞增方式來進行軟件開發的。軟件產品被作為一組增量構件(模塊),每次需求分析、設計、實現、集成、測試和交付一塊構件,直到所有構件全部實現為止。這一過程就像小孩子搭積木蓋房子一樣,如圖2-2所示。

圖2-2 增量模型示意圖
1.模型的本意
增量模型的本意是:要開發一個大的軟件系統,先開發其中的一個核心模塊(或子系統),然后再開發其他模塊(或子系統),這樣一個個模塊(或子系統)地增加上去,就像搭積木一樣,直至整個系統開發完畢。當然,在每增加一個模塊前,先要對該模塊進行模塊測試,通過后再將此模塊加入到系統中。然后還要進行系統集成測試(聯調),系統集成測試成功后,再增加新的模塊。這樣多次循環,直到系統搭建完畢。由此可見,這樣的軟件系統本身應該是模塊化的,每個模塊應該是高內聚(模塊內部的數據與信息關系緊密)、低耦合(模塊之間的數據與信息聯系松散)、信息隱蔽(模塊包裝后信息很少外露)的,這樣的模塊當然是可組裝、可拆卸的。
2.模型的特點
增量模型的特點是:
(1)任務或功能模塊驅動,可以分階段提交產品。
(2)有多個任務單,這些任務單的集合構成項目的一個總《任務書》,或總《用戶需求報告》/《需求規格說明書》。
3.選擇模型的條件
不是任何軟件都適合采用增量模型,軟件項目或產品選擇增量模型,必須滿足下列條件:
(1)在整個項目開發過程中,需求都可能發生變化,客戶接受分階段交付。
(2)分析設計人員對應用領域不熟悉,難以一步到位。
(3)中等或高風險項目(工期過緊且可分階段提交的系統或目標、環境不熟悉)。
(4)用戶可參與到整個軟件開發過程中。
(5)使用面向對象語言或第四代語言。
(6)軟件公司自己有較好的類庫、構件庫。
盡管上述條件比較苛刻,但是,軟件企業在開發大型項目(如大型MIS)時,一般采用增量模型。因為大型項目一般由多個子系統構成,開發者可以根據輕重緩急,先進行全局需求分析和概要設計,把握好全局數據庫的集成設計,然后再一個接一個地實現各個子系統。
4.模型的優點
增量模型的優點是:
(1)由于將一個大系統分解為多個小系統,就等于將一個大風險分解為多個小風險,從而降低了開發難度。
(2)人員分配靈活,剛開始不用投入大量人力資源。如果核心模塊產品很受歡迎,則可增加人力實現下一個增量。當配備的人員不能在設定的期限內完成產品時,它提供了一種先推出核心產品的途徑。即可先發布部分模塊給客戶,對客戶起到鎮靜劑的作用。
5.模型的缺點
增量模型的缺點是:如果軟件系統的組裝和拆卸性不強,或開發人員全局把握水平不高(沒有數據庫設計專家進行系統集成),或者客戶不同意分階段提交產品,或者開發人員過剩,都不宜采用這種模型。