經驗雛型法(Prototyping)
Prototyping:經驗雛型
基本理論
Prototyping(經驗雛型方法)是在1980年代初期興起的一種軟體發展模式,其動機是希 望能在限定期限內,以最經濟而快速的方法開發出系統的原型,以便即早澄清或驗證 不明確的系統需求。
雛型方法的種類
1. 腳本法(Scenario):
依照使用者的使用腳本,利用傳統的非電腦媒體來模擬或 敘述系統的使用情形。
2. 摹仿式(Mock-ups):指先製作系統的部份用戶界面,針對一些需求不確定的系統 功能,預先設定固定的輸入與輸出資料,然後以作假的方式來模擬該特定的系統功能。
3. 示範式(Demonstration):指實際開發一部份的關鍵功能,並製作相當的完整的 用戶界面,讓使用者有限度的實際操作,並從實際演練的過程中去確定系統是否滿足 重要的功能需求。
4. 遞增式(Incremental):將整個系統分為多個子系統,定義各個子系統之間的 界面關係,然後由最關鍵的子系統開始雛型的工作,在確定了該子系統的需求之後, 完成該子系統的開發,並先將該子系統交付客戶上線使用。隨後以同樣方法逐步開 發其他子系統,直到系統完整為止。
5. 螺旋式(Spiral):是指由系統的核心功能開始,先製作系統的第一版本,交付 給客戶使用,並收集使用者之經驗及回饋,將原係統加以修改、擴充,為次一版本。每 個版本都是一完整系統,功能與品質逐漸趨於完整。
雛型方法的優點有
1.增進用戶與分析師之間的溝通-document is hard to read2. user-oriented (用戶互導) analysis and design3. identify 衍生式之用戶需求-大部份時間,使用者並清楚他要的是什麼4. 降低風險
另一種分類方式
1. 丟棄式 (Throwaway):品質較佳2. 演進式 (Evolutionary):減短SDLC
開發雛型之步驟
依 Connell and
Shafer(1989)之方法,開發雛型之步驟可分為三大步驟或七小驟。 前三個小步驟又稱為開發初始雛型;第四個到第六個小步驟也稱 示範評估雛型;最後一個小步驟稱為完善規格需求書。
- Step1:快速規劃 (Rapid Planning)
產生物為「雛型計劃書」(prototype statement) 雖不列入正式的系統文件,但去是整個雛型過程的依據,大約5頁,而抱括以下項目:
1. 雛型目的:必要性及目標
2. 雛型範圍:系統功能的範圍及原因
3. 使用方法:方法及原因
4. 使用工具:工具及原因
5. 用戶責任:明確規定用戶在參與人員、資料提供與溝通之責任與義務
6. 交付項目:工作完成後必須交付之項目,通常抱括雛型本身,評估意見彙整,使用手冊初稿以及修正後之需求規格書 (software
requirement specification)
7. 時程規劃:GANTT chart
- Step2:快速分析 (Rapid Analysis)
在幾天或幾星期內,完成功能分析,資料模式分析,與用戶界面分析
- Step3:快速開發 (Rapid Development)
一般在兩週內完成。由於時間壓力,對結構化及文件的要求不高,通常會使用非常 高階的軟體工具(因此工具的使用與選擇非常重要,其要求為高速且易於修改)。 開發的步驟分為:
1. 建立資料結構庫:統一規定共用資料的結構
2. 製作用戶界面:
§ 界面的風格與佈局
§ 重要的選單內容、按鈕
§ 重要信息提示
§ 基本錯誤信息
3. 撰寫功能程式:開發關鍵部分,並與 (1)、(2) 銜接起來
4. 整合與測試
雛型的開發工具:
5. user-interface management system (用戶界面管理系統) Visual Basic, Powerbuilder, ToolBook 與 Java & HTML 之 FORM
6. 第四代語言:dBase
7. 資料庫系統:Access
8. 可執行之高階語言 (Executable
Specification Languages)
- Step4:示範與評估 (Demonstration & Evaluation)
由於雛型方法的目標是要即早確定不確定性,因此這個步驟和 下一個步驟(Prototype Revision)是雛型發展最重要的步驟。
- Step5:雛型修改 (Prototype Revision)
針對step4的結果,進行修改
- Step6:確定需求 (Requirement Approval)
將 step 5 之成果再次給使用者確認「是否已將上次的缺點與問題解決了」,若發現 新問題,需不斷進行修改,直到滿意為止。 (分析師需特別注意,前一次被接受的功能,是不是在修改過程中被破壞了??)
- Step7:完善規格需求書
軟體工程師要心理建設
- 不習慣與使用者一起工作
- 與使用者非敵對的,認認需求
第二個大步驟所需要進行的工作項目整理如下表
步驟
|
工作項目
|
備註
|
1.準備雛型示範
|
1. 辨認不同使用者角色
2. 募集示範對象
3. 選定示範的範圍
4. 準備示範腳本與講義
|
|
2.示範趨型
|
1. 描述示範的目的
2. 解釋示範內容及範圍
3. 開始示範
1. 開發者示範
2. 用戶自由操作
|
|
3.收集與分析使用者回饋
|
1. 收集使用者回饋
2. 記錄並分類回饋信息
3. 分析
i. 區分主要與次要需求
ii. 解決有衝突之需求(避免現場解決)
|
主要的四項問題
1. 那些功能不符需求?
2. 還缺那些功能?
3. 上次的問題是否修改?
4. 修改後,是否產生新問題?
|
4.修改雛型
|
1. 決定修改範圍
2. 修改雛型
3. 適時停止遞迴
|
應有預估時間,以避免無止境的繼續下去
|
5.核定需求
|
1. 使用者逐步核定系統需求
2. 完成正式之需求規格書
|
管理上應注意的問題
雛型方法在管理上應注意的問題:
1. 表面上,似乎增加了工作,可是實際上 Prototype 可減短 SDLC,提高系統正確性 與可用性,也因此降低了開發及維護成本。2. 人員組成約三至五位,及這些人員須兼具分析師與程式員的專長(這方面的人 員很少,專案經理須注重人才之培訓)3. User-Oriented,因此使用者之參與及其投入之時間須列入專案成本。4. 雛型之困難
雛型之困難
1. 缺乏prototyping之自動化工具。2. 雛型系統缺乏一個有效的評估準則。3. 雛型開發人在修改雛型的過程容易偏離目標。4. 雛型需要大量用戶的參與,易使客戶方面的管理人卻步。
5. 專案經理人常有直接將雛型轉換成最終產品之傾向。
6. 專案經理人常有直接將雛型轉換成最終產品之傾向,犧牲的產品品質。7. 雛型不適用之範圍
雛型不適用之範圍
- 系統軟體 (OS or DB) 因無特定之使用群
- 即時性控制系統 (realtime control system) (如捷運控制系統及航空控制系統)
- Embeded System (嵌入式系統) 因沒有直接的用戶界面 (AWT,PACKAGE,API)
留言