軟件生命週期管理
![本頁使用了標題或全文手工轉換](http://upload.wikimedia.org/wikipedia/commons/thumb/c/cd/Zh_conversion_icon_m.svg/35px-Zh_conversion_icon_m.svg.png)
軟件開發 |
---|
核心行動 |
範式與模式 |
方法論與框架 |
支援行為 |
實踐 |
工具 |
標準與知識體系 |
軟件生命週期管理(Software Development LifeCycle Management)是軟件生命週期中的管理計劃。軟件生命週期(Software Development LifeCycle)是指軟件的產生直到成熟的全部過程(軟件開發過程)。
生命週期是事物發展的客觀規律,軟件同樣存在生命週期。早期的軟件生命週期往往是說「軟件從計劃、需求開始,經歷分析設計、實現、部署、維護,直到最後逐漸消亡的」。這是受到了第一個軟件生命週期模型---瀑布模型[1]影響,上述陳述式實質上簡要的描述了瀑布型生命週期。 現在的軟件生命週期不再只考慮瀑布型生命週期,另外常見的軟件生命週期模型有原型模型、螺旋模型[2]、迭代模型。所以現在的軟件生命週期說明應當不再包括瀑布型生命週期中的典型階段。
因此,現在對軟件生命週期及軟件生命週期模型採用如下定義:
- 軟件生命週期是指軟件的產生直到成熟的全部過程。
- 軟件生命週期模型是指人們為開發更好的軟件而歸納總結的軟件生命週期的典型實踐參考。
最近幾年來,給軟件生命週期帶來最多活力的是敏捷軟件開發[3],使得這個領域呈現出勃勃生機,出現了一些更好響應變化、迎接競爭的生命週期模型。
敏捷軟件開發明確對生命週期模型提出了要求:短迭代開發[4][5]。迭代模型的歷史可以追溯到上世紀50年代,但以往的迭代模型並沒有對迭代週期長度提出要求。而在敏捷軟件開發中,迭代週期長度一般不超過2個月,而常見的迭代週期是2周到4周,因此可以稱之為「短迭代」。
有些敏捷軟件開發在主開發過程前安排有預研或計劃或架構或需求階段等等,在主開發過程後安排有系統整合測試或驗收測試或試執行等等,這樣做並不違反敏捷開發原則,但其主開發過程應當採用短迭代開發,而且主開發過程的工期應當佔有顯著的比例,形成多個短迭代。
敏捷開發講究固定的節奏,建議按照固定的節奏開發,所以短迭代的週期長度在開始選定之後,一般不作改變。同樣的原因,敏捷迭代與迭代之間一般不安排緩衝期,上個迭代未完成的內容放到下個迭代中進行處理。
敏捷開發迭代與瀑布生命週期的階段是不同的。瀑布型中需求分析階段的產物一般是需求規格說明書,不同階段的產物是不同的;而敏捷開發迭代的產物是軟件本身,前期迭代的產物也許不完整,但各個敏捷開發迭代的產物是一致的、逐步改進完善的軟件本身。
參考資料
[編輯]- ^ Royce W W. Managing the development of large software systems[C]//proceedings of IEEE WESCON. 1970, 26(8).
- ^ Boehm B W. A spiral model of software development and enhancement[J]. Computer, 1988, 21(5): 61-72.
- ^ Manifesto for Agile Software Development. [2021-05-14]. (原始內容存檔於2021-03-27).
- ^ Principles behind the Agile Manifesto. [2014-05-18]. (原始內容存檔於2010-06-14).
- ^ Lindvall, Mikael, et al. "Agile software development in large organizations." Computer 37.12 (2004): 26-34.