Read this post in: de_DEen_USes_ESfr_FRhi_INid_IDjapl_PLpt_PTru_RUvizh_CN

UML活動圖的全面指南

活動圖有助於描述目標系統的控制流程,例如探索複雜的業務規則和操作、描述用例以及建模業務流程。

簡介

活動圖是統一建模語言(UML)的基本組成部分,用於建模系統的動態方面。它們著重於 協調底層行為的順序與條件,而非這些行為由哪些分類器所擁有。這些通常被稱為 控制流程 以及 物件流程模型.

這些模型所協調的行為可以因為以下原因而啟動:

  • 其他行為完成執行

  • 物件與資料變得可用

  • 流程外部發生事件

    visual Paradigm Activity Diagram Tool
    visual Paradigm 活動圖工具


目的與應用

活動圖具有多種建模用途:

🔹 程序式計算:活動作為方法,對應於物件導向模型中類別上的操作。

🔹 業務流程工程:應用於組織建模以設計工作流程,其中事件可能來自系統內部(任務完成)或外部(客戶互動)。

🔹 資訊系統建模:用於指定系統層級的流程並協調複雜的業務規則。

🔹 用例詳述:協助描述用例情境中的內部操作流程。


活動圖範例

Activity Diagram Sample

一個典型的活動圖範例,顯示控制流程、決策點和並行處理。


完整的符號參考

以下是所有活動圖符號的完整參考,包括視覺圖示、定義和關鍵屬性。

核心元素

活動

Activity

定義: 活動指定使用控制與資料流程模型來協調次級行為的執行。執行流程被建模為透過活動邊連接的活動節點。

關鍵屬性:

屬性 描述
名稱 活動的名稱
使用的建模語言 使用的建模語言
調用時必須滿足的約束條件 調用時必須滿足的約束條件
執行完成後滿足的約束條件 執行完成後滿足的約束條件
單一執行 若為真,所有呼叫均由同一執行處理
唯讀 若為真,活動無法進行非本機變更
可重入 行為是否可在執行中再次被調用
參數 調用時參數的順序與類型

活動參數節點

Activity Parameter Node

定義: 流程起點和終點的物件節點,透過活動參數提供接受活動輸入和提供活動輸出的方式。

主要屬性:

屬性 描述
參數 節點接受/提供值的參數
上限 節點允許的最大標記數
排序類型 標記選擇時的排序方式
方向 指示參數是輸入還是輸出(預設:輸入)
類型 活動參數節點的類型
必須隔離 若為真,則動作會獨立執行(預設:假)

動作

Action

定義: 表示活動中不可再分解的單一步驟。只有當所有輸入條件都滿足時,動作才會開始執行。

主要屬性:

屬性 描述
名稱 動作的名稱
可見性 命名空間內的可存取性
類型 呼叫行為動作或呼叫操作動作
效果 完成動作的影響
必須隔離 將群組外動作的影響隔離

事件處理動作

接受事件動作

Accept Event Action

定義: 一種等待符合指定條件之事件發生的動作。


接受時間事件動作

Accept Time Event Action

定義: 如果發生的是時間事件,結果值會包含該事件發生的時間。非正式地稱為「等待時間動作」。


發送訊號動作

Send Signal Action

定義: 從輸入建立訊號實例,並傳送到目標物件,可能導致狀態機轉換或活動執行。請求者立即繼續;忽略回應。


控制節點

初始節點

Initial Node

定義: 當活動被調用時,流程開始的控制節點。一個活動可以有超過一個初始節點。


活動結束節點

Activity Final Node

定義: 一個活動可以有超過一個活動結束節點。第一個到達的會停止所有流程活動中的所有流程。


流程結束節點

Flow Final Node

定義: 流程結束節點會銷毀所有到達的標記。它對活動中的其他流程無影響無影響活動中的其他流程。


判斷節點

Decision Node

定義: 接收來自傳入邊的標記,並將其呈現給多個傳出邊。所 traversed 的邊取決於傳出邊上守衛的評估結果。


合併節點

Merge Node

定義: 將多個替代流程合併。不用于同步並行流程,而是用於接受 多個中的其中之一 替代流程。


分叉節點

Fork Node

定義: 一個將流程分割成 多個並行流程。有一個進入邊和多個輸出邊。


匯聚節點

Join Node

定義: 一個用於 同步多個流程。有多個進入邊和一個輸出邊。


物件節點與流程

物件節點

Object Node

定義: 指示某個特定分類器的實例,可能在活動中的某個特定點處於某種狀態,可供使用。


輸入針

Input Pin

定義: 通過物件流程從其他動作接收值的物件節點。


輸出針

Output Pin

定義: 通過物件流程將值傳遞給其他動作的物件節點。


值針

Value Pin

定義: 提供值給動作的輸入針,該值並非來自進入的物件流程邊。 來自進入的物件流程邊。


中央緩衝節點

Central Buffer Node

定義: 接收來自上游物件節點的標記,並將其傳遞給下游物件節點。作為多個輸入/輸出流程的緩衝。不直接連接到動作。


資料儲存節點

Data Store Node

定義: 代表活動流程中物件的持久化儲存位置。


控制流程

Control Flow

定義: 在前一個節點完成後啟動活動節點的邊。

主要屬性:

屬性 描述
來源/目標 由流程連接的節點
權重 必須同時通過的最少標記數
守衛 用於判斷可 traversability 的執行時期規範

物件流程

Object Flow

定義: 可以讓物件或資料沿其傳遞的活動邊。

主要屬性:

屬性 描述
選擇 從來源物件節點選擇標記
轉換 更改或替換沿邊流動的資料標記
多播/多接收 控制物件傳遞方法

結構化活動節點

條件節點規格

Conditional Node Specification

定義: 代表一種結構化活動節點,用以表示一個排他性選擇在多個選項之間的選擇。

主要屬性:

屬性 描述
確保 若為真,則至少有一個測試會成功(預設值:假)
明確 若為真,則最多只有一個測試會成功(預設值:假)
子句 構成條件的子句
結果 構成資料流輸出的輸出接腳

迴圈節點

Loop Node

定義: 代表一個具有設定、測試和主體區段的迴圈。測試區段可位於主體區段之前或之後。

主要屬性:

屬性 描述
決策者 其值決定迴圈是否繼續的輸出接腳
首先進行測試 如果為真,則在第一次執行主體之前進行測試
設定/測試/主體部分 迴圈元件的子區域
迴圈變數 在迭代之間維持的值

擴展區域

Expansion Region

定義: 一個嚴格嵌套的區域,具有明確的輸入/輸出(以擴展節點建模)。針對輸入集合中的每個元素執行一次。

執行模式:

  • 平行: 所有互動都是獨立的

  • 迭代: 互動按照元素的順序發生

  • 串流: 一串值流進單一執行


擴展節點

Expansion Node

定義: 用於指示擴展區域邊界上流動的物件節點。輸入集合在內部被拆分成單獨的元素;輸出將元素重新組合為集合。


序列節點

Sequence Node

定義: 一個結構化活動節點,依序執行其動作依序.


結構化活動節點

Structured Activity Node

定義: 一個容器節點,用於將具有明確執行語義的其他活動節點分組。


進階構造

可中斷活動區域

Interruptible Activity Region

定義: 一個支援終止活動中部分流程的流程群組。當流程代幣透過中斷邊緣離開時,所有代幣與行為該區域內的所有項目均被終止。


例外處理程序

Exception Handler

定義: 指定當受保護節點執行期間發生指定例外時要執行的程式碼區塊。

主要屬性:

屬性 描述
受保護節點 由處理程序保護的節點
處理程序主體 若處理程序捕獲例外,則執行的節點
例外輸入 接收例外代幣的物件節點
例外類型 處理程序所捕獲例外的分類

支援元素

泳道

Swimlane

定義: 用於在活動圖中分割子元素,通常用以顯示由參與者、部門或系統組件所承擔的責任。

屬性:

  • 水平分割

  • 垂直分割


註解

Note

定義: 一種可附加註解至元素的註解。不具語義意義,但可能包含有用的建模資訊。


約束

Constraint

定義:以自然語言或機器可讀語言表達的條件或限制,用於宣告元素的語義。

屬性:

屬性 描述
名稱 約束的可選名稱
表示式 滿足條件時必須為真的條件

相關的UML圖表

活動圖在與其他UML圖表類型搭配使用時效果最佳:

圖表類型 目的 連結
 用例圖 捕捉功能需求與參與者互動 檢視
類別圖 模擬靜態結構與關係 檢視
序列圖 顯示物件在時間上的互動 檢視
通訊圖 強調互動中的物件關係 檢視
狀態機圖 模擬物件狀態與轉換 檢視
組件圖 顯示實體組件及其依賴關係 檢視
部署圖 模擬硬體拓撲結構與元件部署 檢視
套件圖 將模型元素組織成命名空間 檢視
物件圖 顯示某一時刻的實例與連結 檢視
複合結構圖 顯示分類器的內部結構 檢視
時序圖 著重於時間限制與狀態變更 檢視
互動概觀圖 結合活動圖與互動圖 檢視

參考資料


ℹ️符號定義引用自物件管理小組 統一模型語言(OMG UML)超結構版本 2.2 及舊版(適用於最新規格中已不存在的符號)。


本指南旨在為尋求使用 UML 活動圖來建模複雜工作流程與業務流程的軟體架構師、業務分析師與系統設計師而設。所有視覺資產與定義皆源自 Visual Paradigm 官方 UML 圖庫。