第2章 軟件生命周期與開發模型
本章導讀
開發一個軟件項目,首先要選擇并確定一個適合于該項目的軟件生命周期模型,然后按照該軟件生命周期模型的開發路線圖,進行有條不紊地開發,以到達成功的彼岸。
軟件生命周期模型是軟件工程課程研究的4 項內容之一,它雖然不是軟件工程課程研究的重點,但是在宏觀上特別重要。因為軟件的生命周期與選擇的開發模型有關,不同的開發模型,對應不同的生命周期。本章將討論軟件生命周期模型,首先介紹IT企業常用的4種模型:瀑布模型、增量模型、迭代模型和原型模型,然后再介紹其他幾種模型,最后進一步論述各個模型之間的關系。表2-1列出了讀者在本章學習中要了解、理解和掌握的主要內容。
表2-1 本章對讀者的要求

2.1 軟件生命周期模型概論
任何有生命的動物、植物和人,都有一個生命周期(Life Cycle)。例如,人的生命周期如表2-2所示。
表2-2 人的生命周期

即使是沒有生命的事物或實體,如PC、路由器、家具、房子、汽車,它們也有一個生命周期,這個生命周期就是使用壽命,即使用周期。
在計算機技術發展的初期,人們把軟件開發簡單地理解為編寫程序,很少考慮需求分析和系統設計等。隨著軟件復雜性的增加,開發人員不知不覺地陷入到“邊做邊改”的困境。這樣的開發模式必然導致質量低下、進度延誤、成本高昂等問題。后來,人們逐漸認識到,若要把軟件開發工作做好,必須將其劃分為分析、設計、編碼、測試、維護等若干活動,并將這些活動以適當的方式分配到不同的階段中去完成,于是產生了“軟件生命周期模型”。
從字面上理解,“軟件生命周期”應該涵蓋軟件產品、項目或軟件系統從產生、投入使用到被淘汰的全部過程。由于早期人們關注的是技術開發活動,還沒有考慮到管理活動,因此“軟件生命周期模型”主要描述的還是軟件開發的過程及其活動和任務。目前,比較常見的軟件生命周期模型有:瀑布模型、原型模型、迭代模型、增量模型。
與人不同的是,軟件的生命周期與軟件生命周期模型有關:不同的軟件生命周期模型,可能對應著不同的生命周期。生命周期不同,該軟件的開發階段劃分、評審次數、基線標準都有所不同。軟件公司的項目組在開發一個大項目或產品時,首先在技術上必須選擇一個軟件生命周期模型,使該模型非常適合這個項目或產品的生命周期;隨后通過對軟件生命周期模型的裁剪,給出適用于本項目或產品的軟件生命周期定義;以生命周期定義為標準,在需求定義之后,編制詳細的軟件開發計劃;然后,項目組按計劃進行軟件開發,軟件工程管理部門按計劃進行軟件過程跟蹤與管理。
軟件生命周期模型能清晰、直觀地表達軟件開發全過程,明確規定了要完成的主要活動和任務,用來作為軟件項目工作的基礎。一般來說,若以時間為序,軟件的生命周期可詳細地劃分為9個階段,如表2-3所示。
表2-3 軟件生命周期的9個階段

現在,讓我們回顧一下第1 章中對軟件生命周期模型的定義。定義指出:軟件生命周期模型是指在整個軟件生命周期中,軟件開發過程應遵循的開發路線圖。或者說,軟件生命周期模型是軟件開發全部過程、活動和任務的結構框架。顯而易見,這個定義不但非常全面,而且十分準確,它符合所有軟件生命周期模型對生命周期的定義與解釋。