活動圖(Activity Diagram)是統一建模語言(UML)中的一種圖形化表示方法,用於描述系統中的動態行為和工作流程,類似於流程圖,但更強調物件的行為和並行活動的處理。
活動圖的主要目的是幫助開發者和設計者理解系統中的動態行為和工作流程,並作為系統設計、業務流程建模和工作流管理的工具。它可以用於需求分析、系統設計、業務流程重組和文檔編寫等階段。
活動圖的基本元素
起始節點:表示活動的起點,以實心圓表示。一個活動圖通常只有一個起始節點。
活動:表示一個執行的步驟或任務,以圓角矩形表示。活動名稱應使用動詞片語描述,例如「驗證使用者」、「處理訂單」、「寄送通知」。
控制流程:表示活動之間的執行順序,以箭頭連接活動。箭頭的方向表示控制的流向。
決策節點:表示流程中的分支點,根據條件判斷選擇不同的執行路徑,以菱形表示。菱形中通常會標示判斷條件。
合併節點:表示多個分支流程的匯合點,以菱形表示。合併節點有多個輸入邊和一個輸出邊。
分支節點:表示流程中的並行執行點,一個輸入邊有多個輸出邊,表示多個活動可以同時執行,以粗橫線表示。
結合節點:表示並行執行流程的匯合點,所有並行活動都完成後,流程才會繼續往下執行,以粗橫線表示。
物件節點:表示流程中物件的輸入或輸出,以矩形表示,矩形內標示物件的類別或名稱。物件節點連接活動和物件,表示活動使用或產生物件。
泳道:用於將活動劃分到不同的負責者或執行單位,以垂直或水平的區域表示。泳道名稱通常表示角色、部門或系統元件。
結束節點:表示活動的終點,以帶有實心圓的圓圈表示。一個活動圖可以有多個結束節點。
活動圖的用途
描述業務流程: 活動圖可以清晰地展示業務流程中的各個步驟和決策點。
分析系統行為: 活動圖可以幫助開發團隊理解系統的行為流程,並找出潛在的問題。
設計使用者介面: 活動圖可以作為使用者介面設計的參考,確保使用者介面的操作流程符合使用者的習慣。
程式碼設計的參考: 活動圖可以作為程式碼設計的參考,幫助開發人員理解程式碼的執行流程。
活動圖的注意事項
著重於活動流程: 活動圖的核心是描述活動的執行順序和控制流程,而不是物件之間的訊息傳遞。
使用清晰的活動名稱: 活動名稱應該清晰易懂,使用動詞片語描述活動的行為。
避免過度複雜: 避免在一個圖中包含過多的活動和分支,可以將複雜的流程分解成多個較小的圖表。
活動圖實踐
明確定義流程和目的:
針對特定的流程或使用案例繪製: 活動圖應該針對特定的業務流程或使用案例繪製,而不是試圖用一張圖涵蓋所有可能的流程。
明確圖表的目的: 在繪製之前,先確定圖表要表達的重點,例如:展示某個業務流程的完整步驟、分析某個流程的瓶頸、設計某個功能的執行流程。
選擇適當的活動:
使用動詞或動詞片語描述活動: 使用動詞或動詞片語清楚地表達活動的行為,例如「驗證使用者」、「處理訂單」、「寄送通知」。
活動的粒度要適中: 活動的粒度不應過大或過小。過大的活動會使圖表過於抽象,無法提供足夠的細節;過小的活動會使圖表過於繁瑣,難以理解。
避免使用名詞描述活動: 活動是執行中的動作,應該使用動詞描述,而不是名詞。
正確使用控制流程:
清晰地表達活動的執行順序: 使用箭頭清晰地連接活動,表達活動的執行順序。
避免流程線交叉: 盡量避免流程線交叉,以保持圖表的清晰易讀。
使用適當的箭頭樣式: 使用實線箭頭表示正常的控制流程。
恰當地使用決策和合併節點:
清晰地標示決策條件: 在決策節點的菱形中或箭頭旁標示判斷條件,例如「訂單金額 > 1000」、「庫存足夠?」。
確保每個決策節點都有明確的分支: 每個決策節點都應該有至少兩個輸出邊,分別對應不同的判斷結果。
使用合併節點匯合分支流程: 使用合併節點將多個分支流程匯合到一個共同的後續活動。
正確使用分支和結合節點:
使用分支節點表達並行活動: 使用分支節點表示多個活動可以同時執行。
使用結合節點同步並行活動: 使用結合節點確保所有並行活動都完成後,流程才會繼續往下執行。
避免不必要的並行: 只在真正需要並行執行的情況下使用分支和結合節點,避免過度使用導致圖表複雜。
有效地使用物件節點:
表示活動的輸入和輸出: 使用物件節點表示活動使用或產生的物件,例如「訂單」、「商品」、「客戶資料」。
清晰地標示物件的類別或名稱: 在物件節點的矩形內標示物件的類別或名稱。
使用流程線連接活動和物件節點: 使用流程線連接活動和物件節點,表示活動如何使用或產生物件。
善用泳道:
將活動劃分到不同的負責者或執行單位: 使用泳道將活動劃分到不同的角色、部門或系統元件,清楚地表達每個單位在流程中的職責。
泳道的名稱要清晰: 泳道的名稱應該清晰地表達其代表的角色或單位。
避免過多泳道: 過多的泳道會使圖表變得複雜難懂,應根據實際需要選擇適當的泳道數量。
保持圖表的簡潔和清晰:
避免在一個圖中包含過多的元素: 如果流程過於複雜,可以將其分解成多個較小的活動圖。
使用適當的圖表大小: 避免圖表過大或過小,以方便閱讀和列印。
使用一致的佈局和排版: 使圖表易於閱讀和理解。