何時使用活動圖?
開發人員使用活動圖來理解程式的高階流程。它還能幫助他們識別觸發特定事件的限制和條件。
- 表示業務工作流程
- 透過檢視業務工作流程來識別候選使用案例
- 識別使用案例的前置與後置條件(情境)
- 模擬使用案例之間或內部的工作流程
- 在物件的操作中模擬複雜的工作流程
- 在高階活動圖中詳細模擬複雜的活動
活動圖的基本元件
活動圖基本上是一種流程圖,用以表示從一個活動到另一個活動的流程。活動可被描述為系統的一項操作。活動圖的基本目的在於捕捉系統的動態行為。它也稱為物件導向流程圖。
活動圖的符號與狀態機圖非常相似。事實上,根據UML規格,活動圖是狀態機圖的一種變體。
動作
動作是代表活動中單一原子步驟的命名元素,也就是在活動內部不再進一步分解的步驟。
![]()
活動
活動代表由單獨元素組成的行為,這些元素是活動節點,可能包括:
- 動作
- 物件
- 控制流程
控制流程
控制流程代表從一個動作到另一個動作的執行控制轉移。
它以一條實線表示,一端帶有箭頭,指向下一個動作。
範例當填訂單動作結束時,執行控制會轉移到出貨訂單動作。
![]()
開始與終止
它們代表活動中動作執行序列的起始點與結束點。開始符號與終止符號也稱為初始狀態符號與終止狀態。
- 開始元素繪製為一個小實心圓圈。
- 終止元素繪製為一個被外圓包圍的小實心圓圈。
範例
![]()
判斷
它代表一個判斷動作,用於評估某些條件,並決定繼續執行哪條動作路徑。
判斷符號繪製為一個小菱形,具有一個流入的控制流與多個流出的控制流。
每個流出的控制流應標示導致該流程的條件。
範例
在「接收訂單」動作後,用於檢查庫存的判斷動作,可如圖所示繪製:

合併
它代表多條替代執行路徑會匯集並繼續的合併點。
它繪製為一個小菱形,具有多個流入的控制流與一個流出的控制流。
範例
「發貨訂單」與「保留訂單」匯集的合併點,可如圖所示以合併符號繪製:

分支
它代表一個分支動作,將單一執行流程分割為多個並行執行流程。
它繪製為一條短實線,一側有一個流入的控制流,另一側有多個流出的控制流。
範例
在「接收訂單」動作後,用於啟動「發貨訂單 動作和 發送發票 動作可以並行繪製在下方所示的圖表中:

合併
它代表一個合併動作,等待多個並行執行流程完成。
它繪製為一條短的實線,一側有多个流入的控制流,另一側有一個流出的控制流。
範例
在以下動作之前執行的合併動作:關閉訂單 動作,以等待以下兩者:發貨訂單 動作和 發送發票 動作完成後,可以繪製為下方所示的圖表:

物件
它代表一個可能是動作的輸入和/或輸出的物件。在此情況下,物件被視為特定狀態下類的一個實例。
它以一個矩形表示,其名稱位於內部。
它也可以通過在名稱下方括號內書寫的狀態來加以限定。
範例
訂單 [已填寫] 由以下動作產生的物件:填寫訂單 動作將被以下動作消耗:發貨訂單 動作。此物件可以繪製為 UML 活動圖中的物件符號,如下方所示:
不同符號但具有相同語義:
![]()
訊號與事件
它代表一個將訊號發送到活動外部的訊號動作。發送訊號動作不會等待訊號接收者的任何回應。它自行結束,並將執行控制傳遞給下一個動作。
它繪製為一個凸五邊形,其名稱位於內部。
範例
這個 通知客戶在訂單處理活動中,發送訊號動作可以繪製為 UML 活動圖中的發送訊號符號,如下所示:
![]()
泳道與區段
- 區段呈現一組具有某些共同特性的動作與物件。
- 它以兩條平行線繪製,區段名稱位於其中一端。
- 位於兩條線之間的任何動作與物件都被視為屬於該組。
- 如果一個動作或物件可能位於多個區段的邊界上,則被視為屬於多個群組。
- 區段可以嵌套,以形成區段的層級結構。
範例
訂單處理活動中的動作與物件可分為三組:
- 訂單部門動作群組
- 會計部門動作群組
- 客戶動作群組,根據動作所有權
這些群組可以繪製為 UML 活動圖中的區段符號,如下所示:

參數化活動
參數化活動可接受活動的輸入,或提供活動的輸出。
活動參數顯示在邊界上,並列在活動名稱下方,格式為:參數名稱:參數類型。
範例
以下範例描述了為活動定義的兩個輸入參數和一個輸出參數。

活動框
它在 UML 活動圖中用於提供一個邊界,以包圍活動的所有動作與物件。
它繪製為一個圓角的大矩形。活動名稱、輸入參數和輸出參數寫在矩形左上角附近。
代表輸入參數和輸出參數的物件符號可以放置在矩形的邊上。
為什麼要使用活動圖?
UML 中的活動圖允許您將事件創建為活動,該活動包含由邊連接的一組節點。活動可以附加到任何建模元素上以模擬其行為。活動圖常被用於詳細說明。
- 用例
- 類別
- 組件與子系統
- 工作流程與業務流程
更多活動圖範例

範例:活動圖 – 記號

範例:活動圖 – 流程順序

範例:活動圖 – 建立運輸

範例:活動圖泳道

資源
- 如何在UML中繪製活動圖? – Visual Paradigm
- Visual Paradigm. (無日期). 如何在UML中繪製活動圖? – Visual Paradigm .
- Visual Paradigm Online – Google Workspace Marketplace
- Google Workspace Marketplace. (無日期). Visual Paradigm Online – Google Workspace Marketplace .
- Visual Paradigm 中的UML圖示介紹 – ArchiMetric
- ArchiMetric. (2024年8月23日). Visual Paradigm 中的UML圖示介紹 – ArchiMetric .
- Visual Paradigm 子活動圖圖示 – Stack Overflow
- Stack Overflow. (無日期). Visual Paradigm 子活動圖圖示 – Stack Overflow .
- 線上UML圖示工具
- Visual Paradigm. (無日期). 線上UML圖示工具.
- 活動圖 – 統一模型語言 (UML) – GeeksforGeeks
- GeeksforGeeks. (2017年10月27日). 活動圖 – 統一模型語言 (UML) – GeeksforGeeks.
- 建立 UML 活動圖 – Microsoft 支援
- Microsoft 支援。(n.d.). 建立 UML 活動圖 – Microsoft 支援.
- UML 類別圖教程
- Visual Paradigm。(n.d.). UML 類別圖教程 .
- 領域模型與活動圖之間的差異 – Stack Overflow
- Stack Overflow。(n.d.). 領域模型與活動圖之間的差異 – Stack Overflow .