iT邦幫忙

1

活動圖教程

活動圖類似於業務工作流程圖或簡單的流程圖,具有更豐富的語義。它描述了系統活動,或進行活動的人,以及這些活動的順序流程。活動圖是與面向對象方法相關的 UML 圖之一,通過它可以用於任何其他軟件開發範式

活動圖示例


什麼是 UML 中的活動圖?

活動圖可用於描述如何協調活動以提供不同抽象級別的服務。活動圖的強大之處在於它們支持和鼓勵並行行為。這使它們成為工作流建模和多線程編程的絕佳工具。活動圖還可以通過使用對象名稱標記活動或使用泳道來定義到對象的鏈接,這使得活動圖能夠基於職責進行結構化。

活動圖一覽

在我們深入研究活動圖中單個符號的細節之前,讓我們快速瀏覽一下一個非常通用的活動圖。以下是用於詳細說明業務用例的示例活動圖 - 在機場辦理登機手續:

活動圖示例(解釋)


活動圖符號

初始、最終和流程最終節點

初始節點(開始狀態)

  1. 活動發生之前的起始狀態使用初始狀態來描述。
  2. 除非我們描述嵌套活動,否則流程只能有一個初始狀態。我們使用黑色實心圓圈來描繪系統的初始狀態。
  3. UML 活動圖中的初始狀態標記了入口點和初始活動狀態。

最終節點(結束狀態)

在 UML 中,最終的動作狀態是使用一個圍繞著一個小的實心圓(一個靶心)的圓來顯示的。一個活動圖可能只有一個初始動作狀態,但可能有任意數量的最終動作狀態。

活動圖初始和最終節點示例

流最終節點

UML 2.0 有一個額外的控制節點類型,稱為 Flow Final,它用作 Activity Final 節點的替代方法來終止流。它是必需的,因為在 UML 2.0 中,當控製到達 Activity Final 節點的任何實例時,整個活動(包括所有流)都會終止。Flow Final 只是終止它所連接的流。

活動圖流最終節點示例

注意:由於運行到完成語義,這在 UML 1.5 中不是問題,但是使用 UML 2.0 的不受限制的並行性,您可能不希望所有流停止並銷毀所有標記。

動作和活動狀態

UML 活動圖上的活動(也稱為活動狀態)通常表示操作的調用、業務流程中的一個步驟或整個業務流程。

Action 是一個命名元素,它代表活動中的單個原子步驟,在活動沒有進一步分解

流動過渡

給定一組動作狀態,這些動作狀態如何相互關聯?流轉換解決了這個問題,流轉換顯示了動作狀態是如何排序或排序的。有各種類型的流轉換,包括控制流和對象流轉換。

控制流

動作流或控制流也稱為路徑和邊。它們用於顯示從一種活動狀態到另一種活動狀態的轉換。一個活動狀態可以有多個傳入和傳出的動作流。我們使用帶箭頭的線來描述控制流。如果在進行轉換時有要遵守的約束,它會在箭頭上註明。

在 UML 中,控制流轉換顯示為從源動作狀態到目標動作狀態的實線。

對象流

在 UML 中,對象流轉換顯示為動作狀態和對象之間的虛線箭頭。使用對像作為輸入的操作狀態顯示為對象流轉換箭頭從對象指向操作狀態。更新或生成對像作為輸出的操作狀態顯示為對象流轉換箭頭從操作狀態指向對象。

  1. 由動作產生或使用的對象。這允許我們對對象流進行建模。

活動圖控制流示例

決策節點和分支

當我們需要在決定控制流之前做出決定時,我們使用決策節點,例如一個傳入的轉換,以及多個傳出的並行轉換和/或對象流。

決策節點

  1. 決策節點接受傳入邊上的令牌並將它們呈現給多個傳出邊。
  2. 實際遍歷哪條邊取決於對輸出邊上的守衛的評估。

活動圖決策節點示例

合併節點

  1. 合併節點是一個控制節點,它匯集了多個備用流。
  2. 它不用於同步並發流,而是接受多個替代流中的一個。
  3. 合併節點具有多個傳入邊和單個傳出邊。

活動圖合併節點示例

分叉節點

  1. fork 節點是一個控制節點,它將一個流拆分為多個並發流
  2. 一個分叉節點有一個入邊和多個出邊。

活動圖分叉節點示例

加入節點

  1. 加入節點是同步多個流的控制節點。
  2. 一個連接節點有多個入邊和一個出邊。

活動圖加入節點示例

警衛

守衛是為了遍歷轉換必須為真的條件。

對象節點

UML 2.0 活動建模還支持對象節點。對象節點是一個活動節點,它指示可能處於特定狀態的特定分類器的實例可能在活動的特定點可用(例如,作為動作的輸出或輸入)。對象節點充當特定類型(並且可能處於特定狀態)的對象可能流入和流出的容器。

活動圖對象節點示例

數據存儲

數據存儲是持久存儲對象的對象的構造型。

活動圖數據存儲示例

筆記

  1. 註釋(註釋)提供了將各種註釋附加到元素的能力。
  2. 評論不帶有語義力量,但可能包含對建模者有用的信息。

活動圖註釋示例

泳道

泳道活動圖將活動分組到泳道列中,這些列包含適合該泳道所代表的類別的所有活動。泳道可以代表許多類別的信息,例如執行活動的參與者(即角色或部門)、活動發生的過程階段,或者文檔創建者認為應該由文檔作者強調和傳達的任何其他信息。泳道圖。由於圖表的水平行與游泳池內的泳道在視覺上相似,因此採用術語泳道。

活動圖泳道示例

在 UML 中,泳道顯示為通過兩側垂直實線與相鄰泳道分開的視覺區域,並在頂部標記為負責泳道內動作狀態的元素。

時間事件和事件信號

當時間表達式為真時,時間事件流動,而事件發生時事件信號流動。沙漏符號可用於表示接受時間事件。

活動圖時間事件示例

接受事件操作是活動圖中業務流程的重要元素。接受動作等待事件發生。接受事件後,將執行來自此操作的流程。

發送信號動作是發送給接受活動的信號,該活動可以做出相應的反應。

活動圖接受事件並發送信號示例


什麼時候畫活動圖?

活動圖用於對描述條件、約束、順序和並發活動的工作流進行建模。另一方面,用例的目的只是描述功能,即係統做什麼而不是如何完成。因此,簡單來說,活動圖顯示“如何”,而用例顯示特定係統的“內容”,因此,活動圖通常與用例成對出現。

就UML而言,我們可以將活動圖用於以下目的,例如:

  1. 在高級活動圖中對複雜活動和業務工作流進行建模
  2. 通過檢查業務工作流,確定候選用例以及用例的前置和後置條件
  3. 單個用例中的事件如何相互關聯,特別是活動可能重疊並需要用例之間的協調
  4. 用例集合如何協調為組織創建工作流
  5. 用例之間/內部的模型工作流

注意:活動圖可用於說明業務流程(高級實現)到獨立算法(底層實現)。


活動圖示例

此示例顯示了劇院辦公室的活動圖。此圖顯示了策劃演出所涉及的活動。

  1. 箭頭顯示順序相關性——例如,必須在安排節目之前選擇節目。
  2. 粗條顯示分叉或控制連接。例如,演出安排好後,劇院就可以開始宣傳、購​​買劇本、聘請藝術家、搭建佈景、設計燈光和製作服裝,所有這些都可以同時進行。但是,在開始排練之前,必須訂購腳本並聘請藝術家。

活動圖有助於理解系統的高級執行行為,而無需涉及協作圖所需的消息傳遞的內部細節。

活動圖示例:計劃表演

運輸流程

以下示例描述了訂單處理的業務流活動。在下圖中,請求的訂單是活動的輸入參數。接受訂單並填寫所有必需信息後,接受付款並發貨。 活動圖示例

示例 – 活動圖 – 業務提案流程

活動圖還可用於描述業務中的角色和職責範圍——換句話說,誰負責在業務中做什麼。角色和職責範圍記錄為活動圖中的列(UML 泳道)。泳道顯示哪些業務人員參與了工作流的實現

此活動圖記錄了企業如何執行提案流程,具有三個職責範圍(客戶銷售界面、提案所有者和報價所有者) 活動圖示例:商業提案

更多類圖示例:

示例 1:文章提交流程

活動圖示例

示例 2:多維泳道

UML 2.0 將這種分區功能擴展到活動圖的多個維度,並提供了額外的表示法,以便可以用它們所屬的分區的名稱來標記各個動作。

下圖顯示了根據 UML 2.0 出現的多維泳道示例,其中動作根據位置和職責進行分組。

活動圖示例:多維泳道


通过研究不同应用程序的更多示例,您可以更详细地了解活动图。VisualParadigm Online是一个免费工具,允许您立即编辑和修改示例,无需事先注册。如果你喜欢它,你可以永远免费使用它!


尚未有邦友留言

立即登入留言