一、生存期模型定義
軟件生存期模型特征
- 描述了開發的主要階段
- 定義每一個階段要完成的主要過程和活動
- 確定每一個階段的輸入和輸出
軟件生存期模型分類
- 預測模型
- 迭代模型
- 增量模型
- 敏捷模型
- 混合模型
二、傳統生存期模型
1. 預測型模型
要求項目是高確定性的、有明確的需求順序執行。包括瀑布模型和V模型。

1.1 瀑布模型
瀑布模型是將軟件生存周期的各項活動規定為按固定順序而連接的若干階段工作,形如瀑布流水,最終得到軟件產品。


優點:管理簡單、順序執行
缺點:不能適應需求的快速變化
1.2 V模型
V模型是瀑布模型的一個變種,強調測試與開發的一一對應關系。


適用:適合對性能、安全等要求非常嚴格的場景。
2. 迭代模型
迭代模型也叫原型模型,是指在需求階段快速構造系統或一部分系統的一種策略,可很好地應對需求不確定的問題。


適用:需求不明確、需要包含界面的系統。
3. 增量模型
增量模型是把一個項目分為多個增量來開發,每個增量都是一個可交付成果。

要點:分增量優先開發核心功能,多次交付。

三、敏捷生存期模型
敏捷模型(Agile)
敏捷開發中,軟件項目在構建初期被切分成多個子項目,各個子項目的成果都經過測試,具備可視、可集成和可運行使用的特征。換言之,就是把一個大項目分為多個相互聯系,但也可獨立運行的小項目,並分別完成,在此過程中軟件一直處於可使用狀態。

敏捷 = 4個價值 + 12個原則 + 很多實踐

傳統模型:不考慮后期需求的變化就預測用戶的需求,按照凍結的需求指定計划,根據制定的計划執行項目開發。
敏捷模型:通過不斷的反饋動態地修改用戶需求來達到客戶的目標,是一個自適應的過程。


1. Scrum 模型
1990年代初,肯.施瓦伯在其公司使用了一種方法 Advanced Development Methods(先進開發方法),這種方法后來發展為 Scrum。


2. XP(eXtreme Programming)
極限編程是由 KentBeck 提出的一套針對業務需求和軟件開發實踐的規則。

3. 精益(Lean)
精益模式提倡持續不斷地改進,減少流程中的浪費。
4. 持續交付(Continuous delivery)
讓軟件產品的產出過程在一個短周期內完成,以保證軟件可以穩定、持續的保持在隨時可以釋出的狀況。


描述:個人向整體代碼的交付過程

描述:集成之后代碼盡快向可運行環境的交付過程

描述:盡快向用戶的交付過程
4. DevOps
DevOps 是一組過程、方法與系統的統稱,用於促進開發、技術運營和質量保障部門之間的溝通、協作與整合。


