Use Case Diagram 的妙用


1 Use Case Diagram 的妙用 HSDc 軟體設計顧問中心 (http://www.hsdc.com.tw) 簡報:王克明 (Kenming Wang) Software Architect kenming.wang@gmail.com 2005/03/19 2 Objective • 為何要凸顯 UCD? • UCD 的核心思維 • UCD(Use Case Diagram)的價值 • 從UCD能看到與不能看到什麼? • Use Case 的 Realization 3 為何要凸顯 UCD? • 引述 Martin Folwer 的一段話: – 看過越多的使用案例之後,自己就越覺得使用案例圖其 實是不太具有價值的。對於使用案例,請把自己的精力 放在說明文字,而不要放在圖上。 – 系統的複雜度主因往往是由 “開發者” 自行造成的。所 以,使用案例危險之處即在於:大家很容易把使用案例 弄得太複雜,而被這些複雜的使用案例困住。 » Martin,UML-Distilled v3 中譯版,p9-11 • 反思: – 透過 ”鳥瞰” UCD,可以先區隔系統範圍(System Boundary),可以先瞭解參與者(Actor)參與系統的目的 (Goal)。這些都是封裝 ”複雜度” 的最佳利器。而後,因 確立系統範圍及目的,更可以專注於核心問題,切中要 題以文字來描述使用案例(Use Case)。 4 UCD 的核心思維 • 封裝(Encapsulation) – 利用 Package(套件)圖封裝系統範圍。 – 利用 Use Case 封裝系統 “How-to”。 • 凸顯目的 –“What(Goal) can I(System) do for you(Actor)?” • 描述 Actor 與系統互動的過程 – 如何 “How-to”? • 由系統內部 “Realize(實現)” Use Case。 5 UCD的價值 • 一圖勝過千言萬語 – 透過 UCD,從鳥瞰的觀點來看系統的外觀。 – 非從 Developer View 探索系統內部。 • 綜觀系統全局,瞭解系統的: – 廣度 • 定出系統的內與外。 • 定出系統範圍(System Boundary)。 – 深度,或稱之為層次(level)或觀點(viewpoint) • Business level Use Case Diagram。 • User-Goal level Use Case Diagram。 • Sub-function level Use Case Diagram。 • 最大的價值,乃在於,決定什麼是內?什麼是 外?;什麼該作、什麼不需作。 6 UCD 的組成元素 • Actor(參與者) – 實際參與系統的參與者(或稱之為角色比較理想)。 – 區分為Primary Actor(驅動系統、要求系統提供服務), Supporting Actor(提供服務給系統的外部系統)。 – 可以是實際參與的人以及外部系統所擔任。 • Use Case (使用案例) – 系統與 Actor 之間的一種 “契約(Contract)”。 – 為履行完成 Actor 操作系統的目標(Goal)。 – 隱含系統的行為需求,或系統所需擔負的責任。 • Association (連結) – Actor與Use Case之間的連結關係。可以以箭頭表達方向 性(Actor 驅動系統或系統通知(傳送)資訊給 Actor)。 • Package (套件) – 界定系統範圍,區分系統的 ”內” 與 “外”。 7 鳥瞰的觀點看 Use Case;非從 Developer 角度從內往外看 8 廣度—決定系統範圍 Example-1 P.S. 在 UCD 中未畫出 Package,其假設點在於系統範圍已很明確, 且設計範圍為單一的系統。若為系統整合設計,設計範圍涵蓋多個系 統,未使用 Package 表達系統範圍,很容易會造成混淆的現象。 9 廣度—決定系統範圍 Example-2 影片租借系統 Banking System <> Primary Actor Supporting Actor 10 深度、層次、觀點—Business level • Business level UCD – 系統設計範圍為企業流程(Business Process) – 企業層次的使用案例著重於描述企業內部的流 程;非著重於描述系統的行為。 – 通常會以白箱式(White-box)的作法打開企業內 部,以瞭解內部 internal worker的互動情形。 – 企業層次的 UCD 所適合觀看的對象為 • Stakeholder(利益關係人),如高階經理人、 BPR(Business Process Re-engineering)決策者、IT 高階主管等。 11 Business level UCD—Example 12 • User-Goal level UCD – 系統範圍經常是指軟體應用系統,也是經常被討論的層 次。 – 為滿足主要參與者(Primary Actor)來使用系統的目的。 – 通常是使用者在某一段時間(3~30分鐘)操作系統後所完 成的目標。 – 單一系統會以”黑箱(black-box)”的方式來描述使用案 例;而設計範圍涵蓋多個子系統時,則可能會以”灰箱 (gray-box)”的方式畫出子系統之間的連結及互動情形。 – 企業層次的 UCD 所適合觀看的對象為 • Primary Actor(主要參與者),一般即指操作系統的使用者 (operator)。 深度、層次、觀點—User-Goal level 13 User goal level UCD—Example 黑箱式的表達 P.S.此範例為黑箱式的表達方式,亦即整個焦點專注於看診系統,而把 掛號、藥劑系統以 Actor 表達,視為外部系統(不一定是涵蓋於此專案 的設計範圍內)。 14 User goal level UCD—Example 灰箱式的表達 P.S.此範例為灰箱式的表達方式,設計範圍涵蓋多個子系統。此種表達方 式,特別凸顯子系統之間的連結關係,適於從 Architect 的角度來鳥瞰。 15 深度、層次、觀點—Sub-function level • Sub-function level UCD – 偏重於系統低階(low-level)層次的目標。 – 避免因表達於 ”User-goal” 層次中而將圖畫得 太過繁雜。 –“Logon(登入)”、”CRUD 的操作”、”搜尋產品”等 Use Case,適合放置於此一層次。 16 Sub function level UCD— Example 看診系統 Logon User goal level Sub function level 17 UCD 的設計意涵—觀察下列兩張 UC 圖的表達 圖A 圖B 18 UCD 的設計意涵 — 說明上頁兩張 UC 圖的表達 • 圖A的表達隱含了 HR 系統需擔負流程簽核的責任。 – 亦即,未來 HR 系統的實做可能需要實做流程簽核的功 能。 • 圖 B 則顯明地表達流程簽核係外部 Workflow 系統 的責任。 – 把 Workflow 當作外部系統,明顯表達 HR 系統不需實做 流程簽核功能。可以是其它外購產品(如 Ultimus)、 OpenSource(如 jBPM)。 – 當定義出與外部 Workflow 系統溝通的介面 (Interface),例如依循 WFMC 的規格,即可造成 “Plug- and-Play” 效果。 19 從 UCD 能看到與不能看到什麼? • 能看到 – 誰(Actor)來使用系統。 – 系統要做的”事(系統行為或系統責任)”。 • 無法看到 – 系統 ”如何” 完成 Use Case 的細節。 – Actor與系統之間的操作對話互動過程(紀錄於 Use Case 敘述)。 20 Use Case Realization—Example a Customer :Customer :System 1.輸入金融卡號碼 2.證實輸入密碼無誤 3.列出金融選項 4.選擇提款項目 5.列出提款選項 6.提款(提款金額) 7.更新顧客餘額 8.吐出現鈔及金融卡 9.結束交易 Customer ATM <> do what? how to? 描述與系統 的互動 21 從上圖觀察系統的特性 • 系統擔負實現(Realize) “提款” Use Case 的責任。 • 從上圖仍未能看出系統是如何實做 ”提款” UC(未描述系統內 部的結構)。亦即,未來系統的實做是以2-tier、3-tier、物 件導向等方式來實做尚未決定。 • 再次強調,Use Case 與物件導向沒有直接關聯,但會是導入 物件導向技術重要的需求捕捉關鍵技術。 • Actor 與系統的對話(Dialogue)過程期間(Session),系統必 須保存其對話過程的狀態(State),亦即,從 Actor 的角度 來看待系統時,系統為 “Stateful”。(但不代表系統內部所參 與的物件均必須為 Stateful)。 • 為確保及滿足關係人的利益,系統需描述出其系統私有動 作。 – 證實用動作。例如,上圖動作3(保障),系統證實輸入密碼無誤。 – 內部狀態變化。例如,上圖動作7(滿足),系統更新顧客餘額。 22 Q&A 歡迎指教及問題提問
还剩21页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 15 金币 [ 分享pdf获得金币 ] 0 人已下载

下载pdf

pdf贡献者

danny_ku

贡献于2011-11-03

下载需要 15 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf