二、快速原型模型
快速原型是快速建立起來的可以在計(jì)算機(jī)上運(yùn)行的程序,它所能完成的功能往往是最終產(chǎn)品能完成的功能的一個(gè)子集
快速原型模型是增量模型的另一種形式,在開發(fā)真實(shí)系統(tǒng)之前,迅速建造一個(gè)可以運(yùn)行的軟件原型 ,以便理解和澄清問題,在該原型的基礎(chǔ)上,逐漸完成整個(gè)系統(tǒng)的開發(fā)工作
它允許在需求分析階段對軟件的需求進(jìn)行初步而非完全的分析和定義,快速設(shè)計(jì)開發(fā)出軟件系統(tǒng)的原型,該原型向用戶展示待開發(fā)軟件的全部或部分功能和性能;用戶對該原型進(jìn)行測試評定,給出具體改進(jìn)意見以豐富細(xì)化軟件需求;開發(fā)人員據(jù)此對軟件進(jìn)行修改完善,直至用戶滿意認(rèn)可之后,進(jìn)行軟件的完整實(shí)現(xiàn)及測試、維護(hù)
優(yōu)點(diǎn)
克服瀑布模型的缺點(diǎn),減少由于軟件需求不明確帶來的開發(fā)風(fēng)險(xiǎn)
適合預(yù)先不能確切定義需求的軟件系統(tǒng)的開發(fā)
缺點(diǎn)
所選用的開發(fā)技術(shù)和工具不一定符合主流的發(fā)展;快速建立起來的系統(tǒng)結(jié)構(gòu)加上連續(xù)的修改可能會導(dǎo)致產(chǎn)品質(zhì)量低下
使用前提是要有一個(gè)展示性的產(chǎn)品原型,一定程度上可能會限制開發(fā)人員的創(chuàng)新
2.3快速原型模型的思想產(chǎn)生、原理及運(yùn)用方式
1、思想產(chǎn)生
在需求分析階段得到完全、一致、準(zhǔn)確、合理的需求說明十分困難
獲得一組基本需求說明后,就快速地使其“實(shí)現(xiàn)”,通過原型反饋,加深對系統(tǒng)的理解滿足用戶基本要求,使用戶在試用后對需求說明進(jìn)行補(bǔ)充和精確化,從而獲得合理完整、現(xiàn)實(shí)可行的需求說明
再把快速原型思想用到軟件開發(fā)的其他階段,向軟件開發(fā)的全過程擴(kuò)展
先用相對少的成本,較短的周期開發(fā)一個(gè)簡單的、但可以運(yùn)行的系統(tǒng)原型向用戶演示或讓用戶試用,以便及早澄清并檢驗(yàn)一些主要設(shè)計(jì)策略,在此基礎(chǔ)上再開發(fā)實(shí)際的軟件系統(tǒng)
2、原理
利用原型輔助軟件開發(fā)
經(jīng)過簡單快速分析快速實(shí)現(xiàn)一個(gè)原型,用戶與開發(fā)者在試用原型過程中加強(qiáng)通信與反饋,通過反復(fù)評價(jià)和改進(jìn)原型,減少誤解,彌補(bǔ)漏洞,最終提高軟件質(zhì)量
3、運(yùn)用方式
由于運(yùn)用原型的目的和方式不同,在使用原型時(shí)也采取不同的策略
拋棄策略:將原型用于開發(fā)過程的某個(gè)階段,促使該階段的開發(fā)結(jié)果更加完整、準(zhǔn)確、一致、可靠,該階段結(jié)束后,原型隨之作廢。探索型和實(shí)驗(yàn)型就是采用此策略的
附加策略:將原型用于開發(fā)的全過程,原型由最基本的核心開始,逐步增加新的功能和新的需求,反復(fù)修改反復(fù)擴(kuò)充,最后發(fā)展為用戶滿意的最終系統(tǒng),演化型快速原型就是采用此策略
采用何種形式、何種策略運(yùn)用快速原型主要取決于軟件項(xiàng)目的特點(diǎn)、可供支持的原型開發(fā)工具和技術(shù)等,根據(jù)實(shí)際情況的特點(diǎn)決定
在軟件開發(fā)中,原型是軟件的一個(gè)早期可運(yùn)行的版本,它反映最終系統(tǒng)的部分重要特性
探索型
這種原型目的是要弄清對目標(biāo)系統(tǒng)的要求,確定所希望的特性,并探討多種方案的可行性
實(shí)驗(yàn)型
這種原型用于大規(guī)模開發(fā)和實(shí)現(xiàn)之前,考核方案是否合適,規(guī)格說明是否可靠
進(jìn)化型
這種原型的目的不在于改進(jìn)規(guī)格說明,而是將系統(tǒng)建造得易于變化,在改進(jìn)原型的過程中,逐步將原型進(jìn)化成最終系統(tǒng)
1、快速分析
在分析人員與用戶密切配合下,迅速確定系統(tǒng)的基本需求,根據(jù)原型需要體現(xiàn)的特征描述基本需求以滿足開發(fā)原型的需要
2、構(gòu)造原型
在快速分析的基礎(chǔ)上,根據(jù)基本需求說明盡快實(shí)現(xiàn)一個(gè)可行的系統(tǒng)
要求具有強(qiáng)有力的軟件工具的支持,并忽略最終系統(tǒng)在某些細(xì)節(jié)上的要求,主要考慮原型系統(tǒng)能夠充分反映所要評價(jià)的特性
3、運(yùn)行原型
發(fā)現(xiàn)問題,消除誤解,開發(fā)者與用戶充分協(xié)調(diào)
4、評價(jià)原型
在運(yùn)行的基礎(chǔ)上,考核評價(jià)原型的特性,分析運(yùn)行效果是否滿足用戶的愿望,糾正過去交互中的誤解與分析中的錯(cuò)誤,增添新的要求,并滿足因環(huán)境變化或用戶的新想法引起的系統(tǒng)要求變動,提出全面的修改意見
5、修改
根據(jù)評價(jià)原型的活動結(jié)果進(jìn)行修改
若原型未滿足需求說明的要求,說明對需求說明存在不一致的理解或?qū)崿F(xiàn)方案不夠合理,根據(jù)明確的要求迅速修改原型
快速原型模型不帶反饋環(huán),軟件產(chǎn)品的開發(fā)基本上是線性順序進(jìn)行的
快速原型的本質(zhì)是"快速"。開發(fā)人員應(yīng)盡可能地建造出原型系統(tǒng),以加速軟件開發(fā)過程,節(jié)約軟件開發(fā)成本
原型的用途是獲知用戶的真正需求,一旦需求確定了,原型將被拋棄