Skip to content
Read this post in: de_DEen_USes_ESfr_FRid_IDjapl_PLpt_PTru_RUvizh_CNzh_TW
Home » UML » 理解UML中的活動圖:全面指南

理解UML中的活動圖:全面指南

介紹

統一建模語言(UML)是一種強大的工具,可用於視覺化和記錄軟體系統。在各種UML圖表中,活動圖是用於模擬和描述系統行為動態方面的多功能且不可或缺的工具。無論您是軟體開發人員、系統分析師還是專案經理,理解活動圖都能顯著提升您設計和溝通系統內複雜流程的能力。在本文中,我們將探討活動圖是什麼、其組成部分,以及如何建立和解讀它們。

什麼是活動圖?

活動圖是UML中的一種行為圖,用於模擬系統的動態方面。它專注於展示系統或流程中活動、動作和決策的工作流程或順序。這些圖表特別適用於模擬業務流程、軟體演算法和工作流程情境,使其成為軟體設計、系統分析和流程優化的寶貴工具。

活動圖的好處

活動圖在軟體開發和系統建模過程中提供多項好處:

  1. 清晰度: 它們提供複雜流程的清晰且直觀的視覺化表示,使利益相關者更容易理解並討論。
  2. 溝通: 活動圖作為開發人員、分析師和專案經理等不同利益相關者之間的有效溝通工具。
  3. 流程改善: 它們有助於識別瓶頸、低效率以及流程改善的領域。
  4. 文件化: 活動圖可用於系統文件中,以說明流程如何運作。
  5. 驗證: 它們允許在實施前驗證業務和系統流程。

活動圖的組成部分

要有效使用活動圖,必須了解其關鍵組成部分:

  1. 活動: 活動是活動圖中的一個基本工作單元。它代表流程中執行的任務、動作或操作。活動通常以圓角矩形表示。
  2. 起始節點: 起始節點標示活動圖的起點。通常以一個小圓圈加向外的箭頭表示,連接到第一個活動。
  3. 終止節點: 終止節點代表活動圖的終點。它以圓圈內帶小點或較大的圓圈表示,標示流程的結束。
  4. 控制流程: 控制流程箭頭,通常稱為控制邊,連接活動並顯示其執行順序。這些箭頭顯示執行順序,有助於理解流程的流動。
  5. 決策節點: 決策節點以菱形表示,用於標示流程中出現決策或分支的點。根據條件或標準,流程可沿不同路徑進行。
  6. 合併節點: 合併節點(也以菱形表示)用於在決策或分支點之後將多個流程重新合併為單一流程。它們確保多條路徑會匯聚。
  7. 分叉節點: 分叉節點表示一個流程分裂為多個並行流程的點,表明多個活動可以同時發生。
  8. 匯聚節點: 匯聚節點表示多個並行流程重新合併為單一流程的點,表明並行活動已結束。
  9. 泳道: 泳道用於將活動圖中的活動進行區分,通常用來表明每個任務由哪個實體或參與者負責。它們以垂直或水平的容器形式表示。

建立活動圖

要建立活動圖,請遵循以下步驟:

  1. 識別流程:明確定義您想要建模的流程。這可能包括理解參與的參與者、執行的活動,以及流程中的任何決策點。
  2. 識別活動:將流程分解為需要在圖中表示的單個活動或任務。
  3. 添加起始和終止節點:將起始節點放在圖的開頭,終止節點放在圖的結尾。
  4. 連接活動:使用控制流箭頭按活動發生的順序連接它們。
  5. 添加決策節點: 如果您的流程中有決策點,請添加決策節點(菱形),並用控制流箭頭連接它們。
  6. 添加合併節點: 對於每個決策節點,添加一個對應的合併節點,以顯示分叉路徑重新匯合的位置。
  7. 使用分叉和匯聚節點: 如果您的流程中存在並行活動,請添加分叉和匯聚節點,以表示流程的分裂與合併。
  8. 使用泳道進行區分: 如有必要,使用泳道根據負責的實體或參與者來區分活動。
  9. 標記活動: 為活動和決策節點添加標籤,以清楚描述每個節點所代表的內容。
  10. 指定條件: 如適用,請在控制流箭頭上包含條件或守衛,以標示決策結果。

解讀活動圖

解讀活動圖需要理解活動的順序、決策點以及圖中控制流的走向。以下是需要考慮的一些重點:

  • 沿著從起始節點到終止節點的控制流箭頭,追蹤活動的順序。
  • 留意決策節點;根據所指定的條件,流程可能採取不同的路徑。
  • 尋找分叉與匯合節點,以識別平行活動,並理解它們何時分離與匯合。
  • 泳道有助於識別每個任務的負責實體或參與者。
  • 活動與決策節點上的標籤應提供清晰的描述,說明每個節點所代表的內容。

活動圖範例

下圖展示了一個工作流程,詳細說明了在劇院售票處處理訂單所涉及的各個步驟。此流程包含一個分支決策,並根據訂單是否屬於訂閱或單張票券而進行後續的合併。此外,還有一個分叉機制,啟動了概念上同時發生的並行活動,儘管它們實際執行時可能重疊也可能不重疊。這種並行性最終由一個匹配的匯合點結束。

當過程中僅有一人參與時,並行活動可以按任何順序執行,假設它們無法同時進行(儘管模型允許同時執行,但在實際情況中可能不切實)。例如,劇院售票處的工作人員可以先分配座位,再發放獎勵,最後扣款;或者也可以先發放獎勵,再分配座位,最後扣款。然而,必須注意的是,只有在座位分配完成後,才能進行帳戶扣款。

在此流程中,從分叉點產生了一條條件性線程。該線程會評估訂閱者是否為會員,作為一個保護條件。只有當保護條件滿足時才會啟動。如果訂閱者不是會員,則僅激活一條線程,負責座位分配與帳戶扣款,而無需在匯合點等待同步。

泳道活動圖範例

下圖展示了一個使用泳道將活動劃分為三個不同區段的範例,每個區段對應流程中不同的利益相關者。儘管UML並不要求這些區段必須與物件對齊,但在本例中,明顯可見某些類別與各區段完美對應。這些類別通常會負責執行最終模型中與各活動相關的操作。

此外,該圖表還包含物件流符號,用以描述「訂單」物件在穿越活動網絡時的不同狀態。例如,「Order[placed]」符號表示在計算的此一階段,訂單已轉換至「請求服務」活動中的「已提交」狀態,但尚未被「接單」活動消耗。在「接單」活動結束後,訂單轉移到「已輸入」狀態,這由「接單」活動後的物件流符號所證實。在此情境中,所有物件流均代表同一物件在不同生命階段的狀態。由於它們代表同一物件,因此無法同時存在,且由一個順序控制路徑相連,如圖所示。

物件流用於表示作為動作輸入或輸出的物件。這些符號標示物件在計算特定時刻的狀態,此時它既可作為輸入,也可剛被產生為輸出(通常,一個物件同時扮演這兩種角色)。虛線箭頭將活動狀態的輸出轉移連結至物件流,作為其輸出之一。相反地,另一個虛線箭頭將物件流連結至活動狀態的輸入轉移,表示該物件作為其輸入之一。通常,同一物件可以既是某個活動的輸出,也是後續一個或多個活動的輸入。

結論

UML中的活動圖是建模與視覺化系統或流程動態方面的強大工具。透過理解活動圖的組成要素與原則,您能有效建模複雜的工作流程,改善利益相關者之間的溝通,並優化流程。無論您參與的是軟體開發、業務流程分析,還是系統設計,活動圖都可成為您工具箱中的寶貴組成部分,幫助您建立更高效且文件完善的系統。

發佈留言