2.10 本章小結
除了上述7種軟件生命周期模型之外,另外還有演化模型(Evolutionary Model)和漸增模型(Incremental Model)。軟件生命周期模型雖然多種多樣,但是在本質上可以歸納為兩大類型,即瀑布類型和迭代類型。屬于前一類型的有瀑布模型、增量模型和噴泉模型等。屬于后一類型的有迭代模型、原型模型、螺旋模型、漸增模型、演化模型和XP模型等。現在的問題是:研究軟件生命周期模型對軟件企業有什么作用呢?回答是:
第一,作為軟件管理人員、項目經理、軟件工程師和軟件藍領,對軟件開發模型和軟件生命周期,要有一個完整、清晰的概念,在進入IT企業參與軟件開發或軟件管理時,首先要明確當前的項目或產品開發到底采用什么軟件生命周期模型,由此確定當前的軟件開發狀態,合理安排項目組成員的工作。只有這樣,才能迅速適應IT企業文化,并很快進入軟件開發或軟件管理的角色。
第二,作為軟件過程改進人員(CMMI工作人員),要明確過程改進就是優化軟件開發過程,為此必須按照軟件開發的常用模型,細化到模型中的各個階段,把具體的改進措施落實到每一個階段中。同時,結合CMMI軟件過程模型,把能力成熟度等級的概念,應用于軟件開發的每一個階段,從而進一步加強軟件的過程管理。這就是說,要將軟件生命周期模型的研究與過程改進模型CMMI的研究緊密結合起來,將CMMI的精神實質落實到軟件生命周期模型中去。
本章介紹了7 個軟件生命周期模型:瀑布模型、增量模型、迭代模型、原型模型、螺旋模型、噴泉模型和XP模型。其中最常用的是瀑布模型和原型模型,其次是增量模型,最難掌握的是迭代模型。因為這7 個模型各有所長,所以它們有各自的生存空間。因為它們各有所短,所以才會產生相互競爭。只有通過競爭,才能推動軟件生命周期模型研究的發展。7個模型的比較如表2-4所示。
表2-4 軟件開發模型比較表

一般而言,軟件企業選取軟件生命周期模型的方法是:軟件企業在創業時期,由于沒有項目或產品的積累,所以常常會選取瀑布模型和增量模型。一旦越過創業時期,由于積累了一些項目或產品,就會選取原型模型。至于迭代模型,只有當他們掌握了UML及其工具Rational Rose之后,才會加以考慮。
作為本章的結尾,現在介紹軟件組織定制“軟件生命周期模型裁剪指南”的重要概念。在一個成熟的IT企業或軟件組織內部,根據上述通用模型的普遍性原則,結合本單位的開發經驗和行業特點的具體實際,還需要定制適合本單位的“軟件生命周期模型裁剪指南”,有針對性地對選定模型中定義的生命周期進行恰當的裁剪,使它完全適合于本單位的需求。所謂裁剪,就是對原模型中定義的內容進行增加、修改、刪除,去掉對本單位不適用的部分,增加對本單位適用的內容,同時進一步細化,從而構成完全適合本單位的“軟件生命周期模型裁剪指南”。該“指南”在軟件組織內部,專供高層經理和項目經理在軟件策劃中選取模型時使用。由此可見,實事求是地為軟件項目定制軟件生命周期模型,是最有效的模型選取方法。