UML建模之活动图介绍
活動圖是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、??分叉與匯合:【產生訂單】份叉為檢查庫存量和會員支付金額是否足夠,如果不足,取消訂單,如過庫存量和支付金額足夠,發送商品和付款,最后匯合為訂單完成。
三、總結
總結
以上是生活随笔為你收集整理的UML建模之活动图介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 又一道软通动力7K月薪面试题——银行业务
- 下一篇: 例解基于UML的面向对象分析与设计