Software Prototyping o validate requirements 1 prototyping in

  • Slides: 40
Download presentation
軟體原型 (Software Prototyping) o 軟體快速發展以驗證其需求(validate requirements)

軟體原型 (Software Prototyping) o 軟體快速發展以驗證其需求(validate requirements)

主題 1. 軟體行程中的原型 (prototyping in the software process ) 2. 原型技術 (prototyping techniques) 3.

主題 1. 軟體行程中的原型 (prototyping in the software process ) 2. 原型技術 (prototyping techniques) 3. 使用者介面原型 (user interface prototyping)

n 原型可視為用以推導系統規格(deriving system specification)的基礎 n 系統能支援使用者訓練(user training)及系 統測試(system testing)

n 原型可視為用以推導系統規格(deriving system specification)的基礎 n 系統能支援使用者訓練(user training)及系 統測試(system testing)

o 原型化步驟 n 丟棄式原型(throw-away prototyping) n 演化式原型(evolutionary prototyping)

o 原型化步驟 n 丟棄式原型(throw-away prototyping) n 演化式原型(evolutionary prototyping)

Approaches to Prototyping (原型化步驟)

Approaches to Prototyping (原型化步驟)

o 丟棄式原型不應被視為是最終系統(final system),因為 n 某些系統特性(system characteristics)可能被 遺漏(left out) n 沒有長期維護的規格(no specification for long-term maintenance)

o 丟棄式原型不應被視為是最終系統(final system),因為 n 某些系統特性(system characteristics)可能被 遺漏(left out) n 沒有長期維護的規格(no specification for long-term maintenance) n 不佳的結構(poorly structured)及不易維護 (difficult to maintain) n 難以將原型調整(tune the prototype)到能符 合非功能性需求

n 原型難免缺乏文件記錄 (inevitably undocumented) n 系統結構在發展期間會因改變(changes)而 受影響(degraded through changes made) n 一般的組織內質化標準(normal organisational quality

n 原型難免缺乏文件記錄 (inevitably undocumented) n 系統結構在發展期間會因改變(changes)而 受影響(degraded through changes made) n 一般的組織內質化標準(normal organisational quality standards)可能無法適 用

丟棄式原型 (Throw-Away Prototyping)

丟棄式原型 (Throw-Away Prototyping)

n 驗證是不可能的(verification is impossible) n 驗證意味著顯示系統的適當性(adequacy of the system) n 規格(specification)、設計(design)和實施 (implementation)是糾結(intertwined)在一塊的 n 發展過程是陸續以遞增(increments)方式交付給使

n 驗證是不可能的(verification is impossible) n 驗證意味著顯示系統的適當性(adequacy of the system) n 規格(specification)、設計(design)和實施 (implementation)是糾結(intertwined)在一塊的 n 發展過程是陸續以遞增(increments)方式交付給使 用者

o 優點 n 加速系統交付(accelerated delivery of the system) o 迅速的交付(delivery)和建置(deployment) n 使用者參與系統開發(user engagement with

o 優點 n 加速系統交付(accelerated delivery of the system) o 迅速的交付(delivery)和建置(deployment) n 使用者參與系統開發(user engagement with the system) o 較可能滿足使用者需求

演化式原型 (Evolutionary Prototyping)

演化式原型 (Evolutionary Prototyping)

以原型當作規格 (Prototypes as Specifications) o 部份需求(e. g. safety-critical functions)可能無法 用原型來表示 o 非功能性需求在系統原型中無法測試(cannot be adequately

以原型當作規格 (Prototypes as Specifications) o 部份需求(e. g. safety-critical functions)可能無法 用原型來表示 o 非功能性需求在系統原型中無法測試(cannot be adequately tested)

遞增式開發 (Incremental Development)

遞增式開發 (Incremental Development)

2. 快速原型技術 (Rapid Prototyping Techniques) o 用於迅速發展的技術 n 動態高階語言(dynamic high-level language ) n 資料庫程式設計

2. 快速原型技術 (Rapid Prototyping Techniques) o 用於迅速發展的技術 n 動態高階語言(dynamic high-level language ) n 資料庫程式設計 (database programming) n 元件及應用組合(component and application assembly) o 視覺化程式設計(visual programming)是繼承大多數原 型開發系統的方法

動態高階語言 (Dynamic High-Level Language) o 包括功能強大之資料管理 具(powerful data management facilities)的語言 o 需要在執行時能提供大量支援的系統(large run-time support

動態高階語言 (Dynamic High-Level Language) o 包括功能強大之資料管理 具(powerful data management facilities)的語言 o 需要在執行時能提供大量支援的系統(large run-time support system) o 提供極佳的UI (User Interface)發展 具 (facilities)的語言 o 具有一個整合式的支援環境(integrated support environment),其 具(facilities)可用於原型系 統的語言

原型語言 (Prototyping Languages)

原型語言 (Prototyping Languages)

原型語言的選擇 o 應用領域的問題是什麼(application domain of the problem)? o 需與使用者進行怎樣的互動(user interaction)? o 該語言需要怎樣的支援環境(support environment)? o

原型語言的選擇 o 應用領域的問題是什麼(application domain of the problem)? o 需與使用者進行怎樣的互動(user interaction)? o 該語言需要怎樣的支援環境(support environment)? o 系統的不同部分可由不同語言開發 (different parts of the system may be programmed in different languages)

資料庫程式語言 (Database Programming Languages) o 用於開發商業系統之領域相關特定語言(domain specific language)需建立在資料庫管理系統(database management system)之上 o 通常包含資料庫查詢語言(database query language),

資料庫程式語言 (Database Programming Languages) o 用於開發商業系統之領域相關特定語言(domain specific language)需建立在資料庫管理系統(database management system)之上 o 通常包含資料庫查詢語言(database query language), 螢幕產生程式(screen generator),報表產生程式 (report generator)及試算表(spreadsheet) o 可與CASE toolset整合 o 語言(Language)+環境(environment)被稱為第四代語 言(4 GL)

資料庫程式設計 (Database Programming)

資料庫程式設計 (Database Programming)

元件及應用組合 (Component and Application Assembly) o 原型可由下列項目迅速被建立 n 再利用元件(a set of reusable components) n

元件及應用組合 (Component and Application Assembly) o 原型可由下列項目迅速被建立 n 再利用元件(a set of reusable components) n 接合這些元件的機制(mechanism to‘glue’these components) o 合成機制(composition mechanism)需包含 n 控制 具(control facilities) n 元件溝通機制(component communication mechanism)

o 元件層開發(component level development) n 個別元件(individual component)都整合在一 個可實作系統的標準架構(standard framework) n 架構(framework)可能是 o 腳本語言(a scripting

o 元件層開發(component level development) n 個別元件(individual component)都整合在一 個可實作系統的標準架構(standard framework) n 架構(framework)可能是 o 腳本語言(a scripting language)

組合再利用元件 (Reusable Component Composition)

組合再利用元件 (Reusable Component Composition)

在複合文件中應用程式的連結 (Application Linking in Compound Documents)

在複合文件中應用程式的連結 (Application Linking in Compound Documents)

o 一個原型系統由包括文字元素(text elements), 表格(tables)和聲音檔(sound files)的複合文件 組成 o 關連性應用(associated applications) n 處理文字元素的文書處理器(word processor for text

o 一個原型系統由包括文字元素(text elements), 表格(tables)和聲音檔(sound files)的複合文件 組成 o 關連性應用(associated applications) n 處理文字元素的文書處理器(word processor for text elements) n 處理表格的試算表(spreadsheet for tables) n 播放聲音檔的音效播放器(audio player for sound files)

視覺化程式設計 (Visual Programming) o 腳本語言(scripting languages)如Visual Basic支 援視覺化程式設計 n 原型是藉著從標準項目(standard items)所建 立的使用者界面(user interface)及與這些項 目相關的元件(associating

視覺化程式設計 (Visual Programming) o 腳本語言(scripting languages)如Visual Basic支 援視覺化程式設計 n 原型是藉著從標準項目(standard items)所建 立的使用者界面(user interface)及與這些項 目相關的元件(associating components with these items)所開發出來 o 需要大型元件庫(large library of components)來 支援這類發展

再使用的視覺化程式設計 (Visual Programming with Reuse)

再使用的視覺化程式設計 (Visual Programming with Reuse)

o 上圖表示元件及相關的顯示元素(the components associated with some of the display elements)

o 上圖表示元件及相關的顯示元素(the components associated with some of the display elements)

3. 使用者介面原型 (User Interface Prototyping) o 無法有效(effective)地預先指定(pre-specify)使 用者界面的外觀和感覺(look and feel)(原型 (prototype)是必要的) o 使用者界面產生器可用來”畫”(draw)使用 者界面及模擬界面元件的功能(simulate

3. 使用者介面原型 (User Interface Prototyping) o 無法有效(effective)地預先指定(pre-specify)使 用者界面的外觀和感覺(look and feel)(原型 (prototype)是必要的) o 使用者界面產生器可用來”畫”(draw)使用 者界面及模擬界面元件的功能(simulate its functionality with components associated with interface entities) o Web界面可用網站編輯器(web site editor)以產 生其原型

參考資料 o Ian Sommerville, Software Engineering, 7 th ed. , Addison-Wesley,2004.

參考資料 o Ian Sommerville, Software Engineering, 7 th ed. , Addison-Wesley,2004.