UML Unified Modeling Language David Li CTO, DigitalSesame
UML Overview 統一塑模語言(Unified Modeling Language) 將系統視覺化和文件規格所用的符號加以統一 由 Rational Three Amigos所制定而成 Grady Booch Ivar Jacobson Jim Rumbaugh 1997年11月, 由物件管理協會(OMG) 正式宣佈為物件導向視覺化塑模的標準.
從 UML 的觀點看軟體架構 個案觀點 (Use Case View) 邏輯觀點 (Logical View) 元件觀點 (Component View) 佈署觀點 (Deployment View) 同步觀點 (Concurrency View) 佈署觀點 (Deployment View)
UML 中常用圖表 (1/3) 個案圖 (Use Case Diagram) 類別圖 (Class Diagram) 敘述一個系統的功能,以及此系統的使用者與此系統之間的互動關係 類別圖 (Class Diagram) 敘述一個系統的功能,以及此系統的使用者與此系統之間的 互動關係 物件圖 (Object Diagram) 描述某一特定情況下系統的靜態結構
UML 中常用圖表 (2/3) 狀態圖(State Diagram) 序列圖(Sequence Diagram) 敘述一個類別的狀態(state)與回應(response), 它描述一個類別對於外部事件的反應. 序列圖(Sequence Diagram) 敘述物件之間的互動關係, 強調的是 class 之間所交換的 message, 藉以達成某些預期行為 合作圖(Collaboration Diagram) 敘述 class 彼此之間相互作用的關係,並藉由類別之間的結合關係來進行訊息的交換.
UML 中常用圖表 (3/3) 活動圖 (Activity Diagram) 元件圖 (Component Diagram) 敘述一個 class 回應內部處理的行為. 元件圖 (Component Diagram) 敘述軟體實作 component 的組織結構及其相依關係. 佈署圖 (Deployment Diagram) 表示工作元(process)或執行緒(thread)對應到主機(processor)或裝置(device)的實際狀況
個案觀點 (Use Case View) 以使用個案圖表達軟體功能需求 包含 : 對象 : 個案圖 (Use Cacse Diagram) Customer Designer Developer Tester
個案圖 (Use Case Diagram) 名詞及圖形解釋 Actor Use case 使用者在系統中所扮演的一個角色 (role) 一個 actor 與電腦系統 (system) 之間彼此互動的情形
個案圖 (Use Case Diagram) <<uses>> <<extends>> 與共用模組的連結 <<extends>> 與例外部分的連結 <<includes>> 與 sub use case 的連結
製作 use case 步驟 (1/3) 決定 actor : 有哪些角色將會使用此系統 以 actor 的角度找出最普遍存在的一些 use cases
製作 use case 步驟 (2/3) 為需要進一步說明的 use cases 填上 description actor 做了A 系統回應了B 接著 actor 做了C 系統回應了D 檢視每一個 use case 是否會有例外的狀況發生,如果有,為它加上 extended use case(用 “extends” 連結)
製作 use case 步驟 (3/3) 檢視每一個 use case description, 找出其中有重複的部分, 將其提取出來成為共用的 use cases(用 “uses” 連結) 檢視每一個 use case 是否有包含需要被進一步抽離出來的 use cases 在裡面, 如果有, 為它加上 sub use cases (用 “includes” 連結)
Use Case Diagram Example
Use Case Exercise 學生成績記錄系統 3-5 人一組 一人扮演需要此系統的使用者 其餘的人扮演系統開發的工程師 使用者提出系統的功能需求 工程師用 Use Case 將功能需求紀錄下 每組用 10 分鐘來展現及解釋產生的 Use Case
Use case 注意事項 每個 use case 要能達成 actor 所要求某個獨立的任務 一個 user 可以擔任許多個 actor, 而好幾個 user 也可同時擔任一個 actor, 因此要以 “角色(role)” 來決定需有哪些 actor actors 及 use cases 系統的範圍(system boundary) 可由此來估量系統開發的scope 及時間
Use case 注意事項 Use case 不見得第一次就能完備 Use case 的目的就是要解構一個系統,以得到 high level 的使用者功能需求, 這是使用上最大的前提
邏輯觀點 (Logical View) 以物件的觀念,表達軟體設計結果。 包含 : 類別圖 (Class Diagram) 序列圖 (Sequence Diagram) 合作圖 (Collaboration Diagram) 對象 Designer Developer
元件觀點 (Component View) 整個軟體開發的程式架構 包含 對象 元件圖 (Component Diagram) Developer
佈署觀點 (Deployment View) 整個系統對應到主機或裝置的實際狀況 包含 佈署圖 (Deployment Diagram) 對象 Developer Integrator Tester
佈署圖 (Deployment Diagram) 用途 表示工作元(process)或執行緒(thread)對應到主機(processor)或裝置(device)的實際狀況 組成單位 Processors 具運作能力的硬體組成單元 Devices 不具運作能力的硬體組成單元 Connections 各組成單元間的連結
Deployment Diagram