UML建模——活動圖(Activity Diagram)


活動圖概述

•活動圖和交互圖是UML中對系統動態方面建模的兩種主要形式

•交互圖強調的是對象到對象的控制流,而活動圖則強調的是從活動到活動的控制流

•活動圖是一種表述過程基理、業務過程以及工作流的技術。它可以用來對業務過程、工作流建模,也可以對用例實現甚至是程序實現來建模

•UML 2.0而言,去除了“活動圖是狀態圖的一種特例”這一規定

【用途】活動圖是UML用於對系統的動態行為建模的另一種常用工具,它描述活動的順序,展現從一個活動到另一個活動的控制流。活動圖在本質上是一種流程圖。活動圖着重表現從一個活動到另一個活動的控制流,是內部處理驅動的流程。

 

一、活動圖的組成元素 Activity Diagram Element

1、活動狀態圖(Activity)——活動狀態用於表達狀態機中的非原子的運行

  活動狀態圖特點如下:

  (1)、活動狀態可以分解成其他子活動或者動作狀態。

  (2)、活動狀態的內部活動可以用另一個活動圖來表示。

  (3)、和動作狀態不同,活動狀態可以入口動作出口動作,也可以有內部轉移

  (4)、動作狀態是活動狀態的一個特例,如果某個活動狀態只包括一個動作,那么它就是一個動作狀態

  UML中活動狀態和動作狀態的圖標相同,但是活動狀態可以在圖標中給出入口動作和出口動作等信息

  【圖形】平滑的圓角矩形

                          

2、動作狀態(Actions)—— 動作狀態是指原子的,不可中斷的動作,並在此動作完成后通過完成轉換轉向另一個狀態。

  動作狀態有如下特點:

  (1)、動作狀態是原子的,它是構造活動圖的最小單位

  (2)、動作狀態是不可中斷的。

  (3)、動作狀態是瞬時的行為。

  (4)、動作狀態可以有入轉換,入轉換既可以是動作流,也可以是對象流。動作狀態至少有一條出轉換,這條轉換以內部的完成為起點,與外部事件無關

  (5)、動作狀態與狀態圖中的狀態不同,它不能有入口動作和出口動作,更不能有內部轉移

  (6)、在一張活動圖中,動作狀態允許多處出現。

  【圖形】平滑的圓角矩形

                           

3、動作狀態約束(Action Constraints)——動作狀態約束:用來約束動作狀態

  【圖形】如下圖展示了動作狀態的前置條件和后置條件

                     

4、動作流(Control Flow)——動作之間的轉換稱之為動作流活動圖的轉換

  【圖形】用帶箭頭的直線表示,箭頭的方向指向轉入的方向。

                    

5、開始節點(Initial Node)——活動開始節點
  【圖形】實心黑色圓點

                   

6、終止節點(Final Node)——分為活動終止節點activity final nodes流程終止節點(flow final nodes

  (1)、活動終止節點表示整個活動的結束

  【圖形】圓圈+內部實心黑色圓點

                               

  (2)、而流程終止節點表示是子流程的結束。

  【圖形】圓圈+內部十字叉

                               

7、對象(Objects)

  【圖形】矩形方框  

             

8、數據存儲對象(DataStore) ——使用關鍵字«datastore»

   【圖形】矩形方框,內含關鍵字

                               

9、對象流(Object Flows)——對象流是動作狀態或者活動狀態對象之間的依賴關系,表示動作使用對象或動作對對象的影響

  用活動圖描述某個對象時,可以把涉及到的對象放置在活動圖中並用一個依賴將其連接到進行創建、修改和撤銷的動作狀態或者活動狀態上,對象的這種使用方法就構成了對象流。

  對象流中的對象有以下特點:

  (1)、一個對象可以由多個動作操作

  (2)、一個動作輸出的對象可以作為另一個動作輸入的對象。

  (3)、在活動圖中,同一個對象可以多次出現,它的每一次出現表面該對象正處於對象生存期的不同時間點。

  【圖形】用帶有箭頭的虛線表示。如果箭頭是從動作狀態出發指向對象,則表示動作對對象施加了一定的影響。施加的影響包括創建、修改和撤銷等。如果箭頭從對象指向動作狀態,則表示該動作使用對象流所指向的對象。

  狀態圖中的對象用矩形表示矩形內是該對象的名稱名稱下的方括號表明對象此時的狀態

              

10、分支與合並(Decision and Merge Nodes)——選擇分支
  【圖形】分支與合並用菱形表示,它有一個進入轉換(箭頭從外指向分支符號),一個或多個離開轉換(箭頭從分支符號指向外)。而每個離開轉換上都會有一個監護條件,用來表示滿足什么條件的時候執行該轉換。

                                         

11、分叉與匯合(Fork and Join Nodes)——分叉用於將動作流分為兩個或多個並發運行的分支,而匯合則用於同步這些並發分支,以達到共同完成一項事務的目的。

  對象在運行時可能會存在兩個或多個並發運行的控制流,為了對並發的控制流建模,UML中引入了分叉與匯合的概念。

  【圖形】分為水平風向和垂直方向。

12、時間信號

                             

13、發送信號

                         

14、接收信號

                       

14、泳道(Partition)——泳道將活動圖中的活動划分為若干組,並把每一組指定給負責這組活動的業務組織,即對象。
在活動圖中,泳道區分了負責活動的對象,它明確地表示了哪些活動是由哪些對象進行的。在包含泳道的活動圖中,每個活動只能明確地屬於一個泳道。

泳道是用垂直實線繪出,垂直線分隔的區域就是泳道。在泳道的上方可以給出泳道的名字或對象的名字,該對象負責泳道內的全部活動。泳道沒有順序,不同泳道中的活動既可以順序進行也可以並發進行,動作流和對象流允許穿越分隔線

               

二、活動圖案例分析

例1.購物用例圖

1、  泳道分為:會員泳道和系統泳道。會員選擇商品並加入購物車,系統完成訂單生成及其支付完畢。

2、  開始節點:會員添加商品到購物車,點擊【訂單確認】,開始交於系統處理訂單流程

3、  結束節點:商品發送完畢和付款成功,訂單處理流程結束

4、  活動狀態:產生訂單、Check Credit Cart核對信用卡、Check Stock 核對庫存量、Deliver Goods 發送商品、Process Credit Cart付款

5、  分叉與匯合:【產生訂單】份叉為檢查庫存量和會員支付金額是否足夠,如果不足,取消訂單,如過庫存量和支付金額足夠,發送商品和付款,最后匯合為訂單完成。

 

例2. 帶有發送信號與接收信號的活動圖

image 

 

例3.帶對象流的活動圖

image

 

 

例4.輔助活動圖

image


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM