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