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