演化模型
1.什么是演化模型
演化模型主要針對(duì)事先不能完整定義需求的軟件開發(fā)。用戶可以給出待開發(fā)系統(tǒng)的核心需求,并且當(dāng)看到核心需求實(shí)現(xiàn)后,能夠有效地提出反饋,以支持系統(tǒng)的最終設(shè)計(jì)和實(shí)現(xiàn)。軟件開發(fā)人員根據(jù)用戶的需求,首先開發(fā)核心系統(tǒng)。當(dāng)該核心系統(tǒng)投入運(yùn)行后,用戶試用之,完成他們的工作,并提出精化系統(tǒng)、增強(qiáng)系統(tǒng)能力的需求。軟件開發(fā)人員根據(jù)用戶的反饋,實(shí)施開發(fā)的迭代過程。第一迭代過程均由需求、設(shè)計(jì)、編碼、測(cè)試、集成等階段組成,為整個(gè)系統(tǒng)增加一個(gè)可定義的、可管理的子集。
在開發(fā)模式上采取分批循環(huán)開發(fā)的辦法,每循環(huán)開發(fā)一部分的功能,它們成為這個(gè)產(chǎn)品的原型的新增功能。于是,設(shè)計(jì)就不斷地演化出新的系統(tǒng)。 實(shí)際上,這個(gè)模型可看作是重復(fù)執(zhí)行的多個(gè)“瀑布模型”。
“演化模型”要求開發(fā)人員有能力把項(xiàng)目的產(chǎn)品需求分解為不同組,以便分批循環(huán)開發(fā)。這種分組并不是絕對(duì)隨意性的,而是要根據(jù)功能的重要性及對(duì)總體設(shè)計(jì)的基礎(chǔ)結(jié)構(gòu)的影響而作出判斷。有經(jīng)驗(yàn)指出,每個(gè)開發(fā)循環(huán)以六周到八周為適當(dāng)?shù)拈L度。
2.演化模型的優(yōu)缺點(diǎn)
1、演化模型的優(yōu)點(diǎn)
1)任何功能一經(jīng)開發(fā)就能進(jìn)入測(cè)試以便驗(yàn)證是否符合產(chǎn)品需求。
2)幫助導(dǎo)引出高質(zhì)量的產(chǎn)品要求。如果沒有可能在一開始就弄清楚所有的產(chǎn)品需求,它們可以分批取得。而對(duì)于已提出的產(chǎn)品需求,則可根據(jù)對(duì)現(xiàn)階段原型的試用而作出修改。
3)風(fēng)險(xiǎn)管理可以在早期就獲得項(xiàng)目進(jìn)程數(shù)據(jù),可據(jù)此對(duì)后續(xù)的開發(fā)循環(huán)作出比較切實(shí)的估算。提供機(jī)會(huì)去采取早期預(yù)防措施,增加項(xiàng)目成功的機(jī)率。
4)大大有助于早期建立產(chǎn)品開發(fā)的配置管理,產(chǎn)品構(gòu)建(build ),自動(dòng)化測(cè)試,缺陷跟蹤,文檔管理。均衡整個(gè)開發(fā)過程的負(fù)荷。
5)開發(fā)中的經(jīng)驗(yàn)教訓(xùn)能反饋應(yīng)用于本產(chǎn)品的下一個(gè)循環(huán)過程,大大提高質(zhì)量與效率。
6)如果風(fēng)險(xiǎn)管理發(fā)現(xiàn)資金或時(shí)間已超出可承受的程度,則可以決定調(diào)整后續(xù)的開發(fā),或在一個(gè)適當(dāng)?shù)臅r(shí)刻結(jié)束開發(fā),但仍然有一個(gè)具有部分功能的,可工作的產(chǎn)品。
7)心理上,開發(fā)人員早日見到產(chǎn)品的雛型,是一種鼓舞。
8)使用戶可以在新的一批功能開發(fā)測(cè)試后,立即參加驗(yàn)證,以便提供非常有價(jià)值的反饋。
9)可使銷售工作有可能提前進(jìn)行,因?yàn)榭梢栽诋a(chǎn)品開發(fā)的中后期取得包含了主要功能的產(chǎn)品原型去向客戶作展示和試用。
2、演化模型的缺點(diǎn)
1)如果所有的產(chǎn)品需求在一開始并不完全弄清楚的話,會(huì)給總體設(shè)計(jì)帶來困難及削弱產(chǎn)品設(shè)計(jì)的完整性,并因而影響產(chǎn)品性能的優(yōu)化及產(chǎn)品的可維護(hù)性。
2)如果缺乏嚴(yán)格的過程管理的話,這個(gè)生命周期模型很可能退化為一種原始的無計(jì)劃的“試-錯(cuò)-改”模式。
3)心理上,可能產(chǎn)生一種影響盡最大努力的想法,認(rèn)為雖然不能完成全部功能,但還是造出了一個(gè)有部分功能的產(chǎn)品。
4)如果不加控制地讓用戶接觸開發(fā)中尚未測(cè)試穩(wěn)定的功能,可能對(duì)開發(fā)人員及用戶都產(chǎn)生負(fù)面的影響。