什麼是活動圖

活動圖描述活動如何協調以提供不同抽象層級的服務。通常,一個事件需要透過某項操作來實現,特別是在該操作旨在達成多項不同目標且需要協調時,或描述單一使用案例中各事件之間的關聯性,特別是活動可能重疊且需要協調的使用案例。它也適用於模擬一組使用案例如何協調以建立組織的工作流程。

何時使用活動圖?

開發人員使用活動圖來理解程式的高階流程。它還能幫助他們識別觸發特定事件的限制和條件。

  1. 表示業務工作流程
  2. 透過檢視業務工作流程來識別候選使用案例
  3. 識別使用案例的前置與後置條件(情境)
  4. 模擬使用案例之間或內部的工作流程
  5. 在物件的操作中模擬複雜的工作流程
  6. 在高階活動圖中詳細模擬複雜的活動

活動圖的基本元件

活動圖基本上是一種流程圖,用以表示從一個活動到另一個活動的流程。活動可被描述為系統的一項操作。活動圖的基本目的在於捕捉系統的動態行為。它也稱為物件導向流程圖。

活動圖的符號與狀態機圖非常相似。事實上,根據UML規格,活動圖是狀態機圖的一種變體。

動作

動作是代表活動中單一原子步驟的命名元素,也就是在活動內部不再進一步分解的步驟。

Action

活動

活動代表由單獨元素組成的行為,這些元素是活動節點,可能包括:

  1. 動作
  2. 物件
  3. 控制流程

控制流程

控制流程代表從一個動作到另一個動作的執行控制轉移。

它以一條實線表示,一端帶有箭頭,指向下一個動作。

範例填訂單動作結束時,執行控制會轉移到出貨訂單動作。

Control flow

開始與終止

它們代表活動中動作執行序列的起始點與結束點。開始符號與終止符號也稱為初始狀態符號與終止狀態。

  1. 開始元素繪製為一個小實心圓圈。
  2. 終止元素繪製為一個被外圓包圍的小實心圓圈。

範例

Start and final

判斷

它代表一個判斷動作,用於評估某些條件,並決定繼續執行哪條動作路徑。

判斷符號繪製為一個小菱形,具有一個流入的控制流與多個流出的控制流。

每個流出的控制流應標示導致該流程的條件。

範例

在「接收訂單」動作後,用於檢查庫存的判斷動作,可如圖所示繪製:

Decision

合併

它代表多條替代執行路徑會匯集並繼續的合併點。

它繪製為一個小菱形,具有多個流入的控制流與一個流出的控制流。

範例

發貨訂單」與「保留訂單」匯集的合併點,可如圖所示以合併符號繪製:

Merge

分支

它代表一個分支動作,將單一執行流程分割為多個並行執行流程。

它繪製為一條短實線,一側有一個流入的控制流,另一側有多個流出的控制流。

範例

在「接收訂單」動作後,用於啟動「發貨訂單 動作和 發送發票 動作可以並行繪製在下方所示的圖表中:

Fork

合併

它代表一個合併動作,等待多個並行執行流程完成。

它繪製為一條短的實線,一側有多个流入的控制流,另一側有一個流出的控制流。

範例

在以下動作之前執行的合併動作:關閉訂單 動作,以等待以下兩者:發貨訂單 動作和 發送發票 動作完成後,可以繪製為下方所示的圖表:

Join

物件

它代表一個可能是動作的輸入和/或輸出的物件。在此情況下,物件被視為特定狀態下類的一個實例。

它以一個矩形表示,其名稱位於內部。

它也可以通過在名稱下方括號內書寫的狀態來加以限定。

範例

訂單 [已填寫] 由以下動作產生的物件:填寫訂單 動作將被以下動作消耗:發貨訂單 動作。此物件可以繪製為 UML 活動圖中的物件符號,如下方所示:

Object不同符號但具有相同語義:

Object (Semantic)

訊號與事件

它代表一個將訊號發送到活動外部的訊號動作。發送訊號動作不會等待訊號接收者的任何回應。它自行結束,並將執行控制傳遞給下一個動作。

它繪製為一個凸五邊形,其名稱位於內部。

範例

這個 通知客戶在訂單處理活動中,發送訊號動作可以繪製為 UML 活動圖中的發送訊號符號,如下所示:

Singal and evnet

泳道與區段

  1. 區段呈現一組具有某些共同特性的動作與物件。
  2. 它以兩條平行線繪製,區段名稱位於其中一端。
  3. 位於兩條線之間的任何動作與物件都被視為屬於該組。
  4. 如果一個動作或物件可能位於多個區段的邊界上,則被視為屬於多個群組。
  5. 區段可以嵌套,以形成區段的層級結構。

範例

訂單處理活動中的動作與物件可分為三組:

  1. 訂單部門動作群組
  2. 會計部門動作群組
  3. 客戶動作群組,根據動作所有權

這些群組可以繪製為 UML 活動圖中的區段符號,如下所示:

Swimlane and partition

參數化活動

參數化活動可接受活動的輸入,或提供活動的輸出。

活動參數顯示在邊界上,並列在活動名稱下方,格式為:參數名稱:參數類型。

範例

以下範例描述了為活動定義的兩個輸入參數和一個輸出參數。

Parameterized activity

活動框

它在 UML 活動圖中用於提供一個邊界,以包圍活動的所有動作與物件。

它繪製為一個圓角的大矩形。活動名稱、輸入參數和輸出參數寫在矩形左上角附近。

代表輸入參數和輸出參數的物件符號可以放置在矩形的邊上。

為什麼要使用活動圖?

UML 中的活動圖允許您將事件創建為活動,該活動包含由邊連接的一組節點。活動可以附加到任何建模元素上以模擬其行為。活動圖常被用於詳細說明。

  • 用例
  • 類別
  • 組件與子系統
  • 工作流程與業務流程

更多活動圖範例

Activity frame

範例:活動圖 – 記號

Activity notatins explained

範例:活動圖 – 流程順序

Activity diagram example - Process Order

範例:活動圖 – 建立運輸

Activity diagram example - Create shipment

範例:活動圖泳道

Activity diagram example - Process Order (Swimlane)

資源

  1. 如何在UML中繪製活動圖? – Visual Paradigm
  2. Visual Paradigm Online – Google Workspace Marketplace
  3. Visual Paradigm 中的UML圖示介紹 – ArchiMetric
  4. Visual Paradigm 子活動圖圖示 – Stack Overflow
  5. 線上UML圖示工具
  6. 活動圖 – 統一模型語言 (UML) – GeeksforGeeks
  7. 建立 UML 活動圖 – Microsoft 支援
  8. UML 類別圖教程
  9. 領域模型與活動圖之間的差異 – Stack Overflow

Leave a Reply