UML建模之活動圖介紹(Activity Diagram)

原文地址:http://www.cnblogs.com/ywqu/archive/2009/12/14/1624082.html


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

1、活動狀態圖(Activity)

2、動作狀態(Actions)

3、動作狀態約束(Action Constraints)

4、動作流(Control Flow)

5、開始節點(Initial Node)

6、終止節點(Final Node)

7、對象(Objects)

8、數據存儲對象(DataStore)

9、對象流(Object Flows)

10、分支與合併(Decision and Merge Nodes)

11、分叉與匯合(Fork and Join Nodes)

12、異常處理(Exception Handler)

13、活動中斷區域(Interruptible Activity Region)

14、泳道(Partition)

二、活動圖案例分析

三、總結

 

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

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

1、活動狀態圖(Activity)

活動狀態用於表達狀態機中的非原子的運行,其特點如下:

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

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

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

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

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

 

 

2、動作狀態(Actions)

動作狀態是指原子的,不可中斷的動作,並在此動作完成後通過完成轉換轉向另一個狀態。動作狀態有如下特點:

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

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

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

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

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

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

UML中的動作狀態圖用平滑的圓角矩形表示,如下:

 

3、動作狀態約束(Action Constraints)

動作狀態約束:用來約束動作狀態。如下圖展示了動作狀態的前置條件和後置條件

4、動作流(Control Flow)

動作之間的轉換稱之爲動作流,活動圖的轉換用帶箭頭的直線表示,箭頭的方向指向轉入的方向。

5、開始節點(Initial Node)
開始節點:表示成實心黑色圓點

 

6、終止節點(Final Node)
分爲活動終止節點(activity final nodes)和流程終止節點(flow final nodes)。

活動終止節點表示整個活動的結束

而流程終止節點表示是子流程的結束。

7、對象(Objects

  

8、數據存儲對象(DataStore

使用關鍵字«datastore»

 

9、對象流(Object Flows

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

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

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

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

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

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

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

10、分支與合併(Decision and Merge Nodes
分支與合併用菱形表示


11、分叉與匯合(Fork and Join Nodes

分爲水平風向和垂直方向。

對象在運行時可能會存在兩個或多個併發運行的控制流,爲了對併發的控制流建模,UML中引入了分叉與匯合的概念。分叉用於將動作流分爲兩個或多個併發運行的分支,而匯合則用於同步這些併發分支,以達到共同完成一項事務的目的。

12、異常處理(Exception Handler

當受保護的活動發生異常時,觸發異常處理節點。

 

 

13、活動中斷區域(Interruptible Activity Region

活動中斷區域圍繞一些可被中斷的動作狀態圖。比如下圖,正常情況下【Process Order】順序流轉到【Close Order】,訂單處理流程完畢;但在【Process Order】過稱中,會發送【Cancel Order】請求,這時會流轉到【Cancel Order】,從而訂單處理流程結束

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

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

 

二、活動圖案例分析

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

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

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

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

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

三、總結

活動圖描述的是對象活動的順序關係所遵循的規則,它着重表現的是系統的行爲,而非系統的處理過程。活動圖能夠表示併發活動的情形,活動圖是面向對象的。

 

版權

作者:靈動生活

出處:http://www.cnblogs.com/ywqu

如果你認爲此文章有用,請點擊底端的【推薦】讓其他人也瞭解此文章,

你也可以加我的新浪微博,以便實時瞭解我的動態:http://weibo.com/ywqu

WOWO Mandarin(英語培訓):http://www.wowomandarin.com 

本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章