3.1什么是增量模型
增量模型也稱漸增模型。使用增量模型開發軟件時,把軟件產品作為一系列的增量構件來設計、編碼、集成和測試。每個構件由多個相互作用的模塊構成,并且能夠完成特定的功能
使用增量模型時,第一個增量構件往往實現軟件的基本需求,提供最核心的功能
把軟件產品分解成增量構件時,唯一必須遵守的約束條件是,當把新構件集成到現有構件中時,所形成的產品必須是可測試的
瀑布模型或快速原型模型目標是一次就把一個滿足所有需求的產品提交給用戶
增量模型把整個軟件產品分解成許多個增量構件,分批地逐步向用戶提交產品
把瀑布模型的順序特征與快速原型法的迭代特征相結合
將軟件看作一系列相互聯系的增量,在開發過程的各次迭代中,每次完成其中的一個增量
風險更大的增量模型
確定用戶需求后就著手擬定第一個構件的規格說明文檔,完成后規格說明組轉向第二個構件的規格說明文檔,同時設計組開始涉及第一個構件
使用該方法將不同的構件并行構建,可能加快工程進度,但將冒構建無法集成到一起的風險
優點
能在較短的時間內向用戶提交可完成部分工作的產品
將待開發的軟件系統模塊化,可以分批次地提交軟件產品,使用戶可以及時了解軟件項目的進展
以組件為單位進行開發降低了軟件開發的風險。一個開發周期內的錯誤不會影響到整個軟件系統
開發順序靈活。開發人員可以對組件的實現順序進行優先級排序,先完成需求穩定的核心組件。當組件的優先級發生變化時,還能及時地對實現順序進行調整
缺點
由于各個構件是逐漸并入已有的軟件體系結構中的,所以加入構件必須不破壞已構造好的系統部分,這需要軟件具備開放式的體系結構
在開發過程中,需求的變化是不可避免的。增量模型的靈活性可以使其適應這種變化的能力大大優于瀑布模型和快速原型模型,但也很容易退化為邊做邊改模型,從而是軟件過程的控制失去整體性
如果增量包之間存在相交的情況且未很好處理,則必須做全盤系統分析,這種模型將功能細化后分別開發的方法較適應于需求經常改變的軟件開發過程
1、開發初期的需求定義只是用來確定軟件的基本結構,使得開發初期用戶只需要對軟件需求進行大概的描述;而對于需求的細節性描述,則可以延遲到增量構件開發時進行,以增量構件為單位逐個地進行需求補充。這種方式能夠有效適應用戶需求的變更
2、軟件系統可以按照增量構件的功能安排開發的優先順序,并逐個實現和交付使用。不僅有利于用戶盡早用上系統,能夠更好地適應新的軟件環境,而且在以增量方式使用系統的過程中,還能獲得對軟件系統后續構件的需求經驗
3、軟件系統是逐漸擴展的,因此開發者可以通過對諸多構件的開發,逐步積累開發經驗。實際上,增量式開發還有利于技術復用,前面構件中設計的算法、采用的技術策略、編寫的源碼等,都可以應用到后面將要創建的增量構件中去
4、增量式開發有利于從總體上降低軟件項目的技術風險。個別的構件或許不能使用,但一般不會影響到整個系統的正常工作
5、實際上,在采用增量模型時,具有最高優先權的核心增量構件將會被最先交付,而隨著后續構件不斷被集成進系統,這個核心構件將會受到最多次數的測試。這意味著軟件系統最重要的心臟部分將具有最高的可靠性,這將使得整個軟件系統更具健壯性