1、瀑布模型
軟件計劃 -> 需求分析 -> 軟件設計 -> 程序編碼 -> 軟件測試 -> 運行維護,按照這樣的流程一個階段一個階段的進行,發現問題返回上一階段修改,
這種模型出來之后得到廣泛使用,在實際開發中慢慢地淡出視線,幾乎被淘汰,因為他有重大缺陷,這種缺陷可能導致項目的失敗,成本超支,延期。瀑布模型適用于需求明確的項目,結構化中的方法。
2、快速原型模型
由瀑布模型和構建化開發模型組成的模型(業務建模軟件工程培訓,數據建模,過程建模,應用生成,測試與交付),能夠快速地構建應用系統,所以得以廣泛應用
3、原型
用戶對系統有心里預期,可以是一個簡易的系統演示給用戶看,讓用戶看到開發出來的系統什么樣,東西做出來之后用戶發現很多問題和提出問題,通過檢疫系統的方式,以比較低的成本,只適用于需求階段
4、演化模型
將原型通過演化最后的得到完整的系統
5、增量模型
由原型的思想加上瀑布模型的思想得到增量模型,用戶有多種多樣的需求,先將核心部分做出來,給用戶使用并修改,然后在開發下一功能,一步一步完成系統,強調的是分功能開發,可按功能重要性來排序
6、螺旋模型
以原型為核心,將一個項目分為若干個小項目,每個小項目以瀑布模型為主,在瀑布模型前加上風險評估,缺點是較大項目中未能及時標識風險可能趙成重大損失,過多的迭代增加了成本
7、構件組裝模型(CBSD)
各個模塊都可考慮作為構件建,將各個構件組裝得到應用系統,極大程度地提高了軟件開發的復用性,極大地減小的開發時間,降低軟件開發成本,提高軟件可靠性,步驟:
需求分析與定義 -> 軟件架構設計 -> 構件庫的建立(構件獲取和構件管理) -> 應用軟件構建 -> 測試和發布
8、噴泉模型
面向對象模型,正因為他是面向對象模型所以有迭代和無間隙,多個階段同步進行,需大量開發人員,不利于項目管理,嚴格管理文檔,審核難度加大
9、V模型
和瀑布模型非常接近,在V模型中測試更加重要,細分了測試環節,需求和驗收測試有著對應關系,在需求分析階段就可以寫驗收測試和系統測試報告軟件工程培訓,這樣可以提前發現問題,避免了瀑布模型在最后的測試階段發現問題再修改需求的問題。概要設計階段同步做集成測試,集成測試主要是測試模塊間的銜接,提前發現模塊劃分的問題,詳細設計階段同步單元測試,V模型是強調測試的模型。
需求分析 -> 概要設計 -> 詳細設計 -> 編碼 -> V模型 -> 單元測試 -> 集成測試 -> 系統測試 -> 驗收測試
10、統一過程(UP)
目前應用比較廣泛的模型,了解模型特點,模型階段,模型核心人物,統一過程有三大特點:用例驅動,通過需求分析挖掘出用例,整個開發過程由用例把各階段串起來并推動各個階段,強調先要把架構設計好,然后再填充相應的構件,迭代與增量形成環狀,每個循環完成會有一個增量。
初始階段:確定項目范圍和邊界,識別系統關鍵用例(2-8定理,80%的人使用20%的系統功能),展示系統的候選架構,估計項目費用和時間,評估項目風險
細化階段:分析系統問題領域,建立軟件架構基礎,淘汰最高風險元素
構建階段:將構件組裝起來并測試,開發剩余的構件
交付階段:進行β測試,制作發布版本,文檔定稿,確認新系統,培訓調整產品,終上所述統一過程也不是一次性完成系統,也需要逐步完善
敏捷開發方法:
屬于比較年輕的開發方法,最初沒有開發方法,發現開發出來的軟件質量很難控制,發展出來了開發模型,開發方法,慢慢規范后發現重量級模型(注重流程和文檔)開發得不到很好的效果,去掉不必要的文檔和流程
敏捷開發包括:自適應開發,水晶方法,特征驅動開發,SCRUM,極限編程XP。
基本原則:短平快的會議(砍掉不必要的會議,縮短會議控制時長),小型版本發布,較少的文檔,合作為重,客戶直接參與,自動化測試,自適應計劃調整,結對編程,測試驅動開發,持續集成,重構
極限編程4大價值觀:溝通、簡單、反饋、勇氣
極限編程5大原則:快速反饋、簡單性假設、逐步修改、提倡更改、優質工作
極限編程12個最佳實踐:小型發布、簡單設計、測試先行、結對編程、計提代碼所有制、每周工作40小時、現場客戶,編碼標準