博主按:這一系列博文為本博主原創(chuàng),請(qǐng)使用者注明出處并征得博主同意,博主保留由此產(chǎn)生的版權(quán),謝謝大家。
原型法是指在實(shí)際制造產(chǎn)品之前,先造出該產(chǎn)品的實(shí)用模型,并據(jù)此征求對(duì)需求的反饋意見。原型是有形的實(shí)物,它使干系人有機(jī)會(huì)體驗(yàn)最終產(chǎn)品的模型,而不是只討論抽象的需求陳述。原型法符合漸進(jìn)明細(xì)的理念,因?yàn)樵托枰貜?fù)經(jīng)過制作、試用、反饋、修改等過程。在經(jīng)過足夠的重復(fù)之后,就可以從原型中獲得足夠完整的需求,并進(jìn)而進(jìn)入設(shè)計(jì)或制造階段。
原型是一個(gè)系統(tǒng),它具有了一個(gè)未來系統(tǒng)的本質(zhì)特征。原型系統(tǒng)通常被構(gòu)造為一個(gè)不完整的系統(tǒng),以在將來進(jìn)行改進(jìn)、補(bǔ)充和替代。
原型法主要價(jià)值是可視化,強(qiáng)化溝通,降低風(fēng)險(xiǎn),節(jié)省后期變更成本,提高項(xiàng)目成功率。一般來說,采用原型法后可以改進(jìn)需求質(zhì)量;雖然投入了較多先期的時(shí)間,但可以顯著減少后期變更的時(shí)間;原型投入的人力成本代價(jià)并不大,但可以節(jié)省后期成本;對(duì)于較復(fù)雜的產(chǎn)品來說,原型系統(tǒng)可以成為開發(fā)團(tuán)隊(duì)的藍(lán)圖;另外,原型通過充分和客戶交流,還可以提高客戶滿意度。
特別的,原型法在軟件行業(yè)得到了廣泛的應(yīng)用,把系統(tǒng)主要功能和接口通過快速開發(fā)制作為“軟件樣機(jī)”,以可視化的形式展現(xiàn)給用戶,及時(shí)征求用戶意見,從而明確無誤地確定用戶需求。同時(shí),原型也可用于征求內(nèi)部意見,作為分析和設(shè)計(jì)的接口之一,可方便于溝通。本章將重點(diǎn)以軟件領(lǐng)域?qū)υ头ǖ膽?yīng)用為例進(jìn)行介紹。
原型的處理方法基本上有2種不同類型,即拋棄型和演化型(不同的軟件工程書籍稱發(fā)不同,實(shí)質(zhì)意義則類似)。
l 拋棄型原型,在取得的明確需求基礎(chǔ)上重新開始設(shè)計(jì)與開發(fā);
l 演化型原型,在原型的基礎(chǔ)上繼續(xù)開發(fā),原型最終迭代成產(chǎn)品或系統(tǒng)。
一般小項(xiàng)目不采用拋棄型原型,否則成本和代價(jià)似乎會(huì)偏高。
一般將原型的開發(fā)方法分為三類:
【探索式】
如果開發(fā)者對(duì)用戶的一些問題和需求有了一定的了解,但是了解的內(nèi)容非常模糊或者不充分,那么開發(fā)者就可能會(huì)依據(jù)已經(jīng)了解的內(nèi)容開發(fā)出一些小初始原型,然后獲取用戶對(duì)這些原型的反饋,并不斷調(diào)整原型,最終澄清模糊的需求,發(fā)現(xiàn)未知的需求。這種以缺陷需求開始繼而不斷調(diào)整和修正需求的原型開發(fā)方式稱為探索式。探索式的原型方法通常要盡可能地調(diào)整各種設(shè)計(jì)選項(xiàng),并比較多種設(shè)計(jì)方案下的用戶反饋以得到理想的用戶需求。探索式的原型方法能夠幫助開發(fā)者更深入地了解用戶的業(yè)務(wù)、問題和期望。
【實(shí)驗(yàn)式】
和探索式的原型方法相比,實(shí)驗(yàn)式的原型方法初始時(shí)就擁有清晰的用戶需求,但是開發(fā)者對(duì)這些需求的實(shí)現(xiàn)方法、實(shí)現(xiàn)效果和可行性沒有太大的把握。實(shí)驗(yàn)式的原型方法需要首先定義一個(gè)對(duì)原型的評(píng)估方法,確定評(píng)估的屬性(例如可行性、適用性、效率、吞吐量等),據(jù)此評(píng)估各種技術(shù)方案下的原型,明確需求的可行性和有效性的技術(shù)實(shí)現(xiàn)方案。
【演化式】
在演化式的原型方法中,原型的開發(fā)并不是一個(gè)獨(dú)立的活動(dòng),而是整個(gè)項(xiàng)目的持續(xù)開發(fā)過程中的一個(gè)部分。原型開發(fā)的初始點(diǎn)擊有要求原型化的需求,也有項(xiàng)目積累下來的原型資產(chǎn)。要求原型化的需求往往是積累下的原型資產(chǎn)所沒有實(shí)現(xiàn)的需求,而且往往是清晰的需求。在開發(fā)原型時(shí),還要能夠以一個(gè)整體的方式傳遞給下一個(gè)原型開發(fā)過程。這個(gè)被不斷傳遞和不斷增強(qiáng)的原型資產(chǎn)將成為最終的產(chǎn)品或系統(tǒng)。通過持續(xù)開發(fā)過程當(dāng)中使用原型方法,可以使得在產(chǎn)品開發(fā)過程中更好地處理用戶需求的不斷變動(dòng)。
探索式和實(shí)驗(yàn)式又稱作拋棄型原型。這兩種方法產(chǎn)生的原型往往是經(jīng)歷了很多次錯(cuò)誤的嘗試之后才產(chǎn)生的。這些錯(cuò)誤的嘗試過程會(huì)在最終的原型產(chǎn)品當(dāng)中留下痕跡,它們會(huì)使原型產(chǎn)品的質(zhì)量很差。不能因?yàn)閽仐壭驮突ㄙM(fèi)了成本和人力就將它整合到最終的產(chǎn)品中,這樣是得不償失的。因?yàn)閽仐壭驮褪且蛔罱K丟棄的,所以在構(gòu)建時(shí)應(yīng)該以最小的代價(jià),爭取最快的速度。為此,開發(fā)者可能會(huì)使用一些簡易的開發(fā)工具和不成熟的構(gòu)造技術(shù),也可能忽略或簡化一些和原型目標(biāo)不相關(guān)的功能特征。
與拋棄型原型相反,演化式原型要求原型產(chǎn)品作為資產(chǎn)沿著開發(fā)過程向后傳遞,并可能被后繼過程修改和增強(qiáng),最后成功系統(tǒng)或產(chǎn)品的一個(gè)部分,因此演化模型必須具有健壯性,需要采用好的體系架構(gòu)和設(shè)計(jì)原則,利用成熟的技術(shù)和熟練的工具構(gòu)建。
原型的開發(fā)是一個(gè)技術(shù)過程,可能會(huì)采用多種不同的構(gòu)建技術(shù),這些構(gòu)建技術(shù)從原理上可分為以下兩種:
l 水平構(gòu)建原型法
該方法僅僅實(shí)現(xiàn)選定功能所有層次中的某些特定層次,例如用戶界面層,他能夠處理較大范圍的功能,建立的原型產(chǎn)品成為水平原型。
l 垂直原型法
該方法會(huì)觸及選定功能實(shí)現(xiàn)的所有層次,處理的功能范圍較小,建立的原型產(chǎn)品成為垂直原型。
為了探索和論證未來產(chǎn)品的某個(gè)方面,開發(fā)者可以基于多種介質(zhì)建立原型,常見的代表有紙質(zhì)介質(zhì)、幻燈動(dòng)畫、快速仿真工具、程序源碼、實(shí)物模型等等。
在需求收集的過程中使用原型法的典型過程如圖14-1所示,它的主要步驟包括:
第一步:確定原型需求。搞清楚為什么開發(fā)原型,擁有的起點(diǎn)是什么,期望的結(jié)束標(biāo)準(zhǔn)是什么?
第二步:原型開發(fā)。依據(jù)原型的需求特點(diǎn)和開發(fā)目的,選擇原型的開發(fā)方法和構(gòu)建技術(shù),建立初始原型。
第三步:原型評(píng)價(jià)。對(duì)上一階段產(chǎn)生的原型進(jìn)行評(píng)估,根據(jù)評(píng)估者的反饋判斷原型是否滿足結(jié)束標(biāo)準(zhǔn)。評(píng)估者一般是用戶和開發(fā)者。
第四步:原型修正。如果已經(jīng)建立的原型達(dá)到了目的,就結(jié)束原型方法過程。否則根據(jù)評(píng)估者反饋的不足進(jìn)行原型調(diào)整,調(diào)整完成后準(zhǔn)備再次進(jìn)行原型評(píng)估。
相關(guān)博文:軟件開發(fā)方法之原型法