UML活动图实例
一、活動(dòng)圖的組成元素 Activity Diagram Element
1、活動(dòng)狀態(tài)圖(Activity)
2、動(dòng)作狀態(tài)(Actions)
3、動(dòng)作狀態(tài)約束(Action Constraints)
4、動(dòng)作流(Control Flow)
5、開始節(jié)點(diǎn)(Initial Node)
6、終止節(jié)點(diǎn)(Final Node)
7、對(duì)象(Objects)
8、數(shù)據(jù)存儲(chǔ)對(duì)象(DataStore)
9、對(duì)象流(Object Flows)
10、分支與合并(Decision and Merge Nodes)
11、分叉與匯合(Fork and Join Nodes)
12、異常處理(Exception Handler)
13、活動(dòng)中斷區(qū)域(Interruptible Activity Region)
14、泳道(Partition)
二、活動(dòng)圖案例分析
三、總結(jié)
?
活動(dòng)圖是UML用于對(duì)系統(tǒng)的動(dòng)態(tài)行為建模的另一種常用工具,它描述活動(dòng)的順序,展現(xiàn)從一個(gè)活動(dòng)到另一個(gè)活動(dòng)的控制流。活動(dòng)圖在本質(zhì)上是一種流程圖。活動(dòng)圖著重表現(xiàn)從一個(gè)活動(dòng)到另一個(gè)活動(dòng)的控制流,是內(nèi)部處理驅(qū)動(dòng)的流程。
一、活動(dòng)圖的組成元素 Activity Diagram Element
1、活動(dòng)狀態(tài)圖(Activity)
活動(dòng)狀態(tài)用于表達(dá)狀態(tài)機(jī)中的非原子的運(yùn)行,其特點(diǎn)如下:
(1)、活動(dòng)狀態(tài)可以分解成其他子活動(dòng)或者動(dòng)作狀態(tài)。
(2)、活動(dòng)狀態(tài)的內(nèi)部活動(dòng)可以用另一個(gè)活動(dòng)圖來表示。
(3)、和動(dòng)作狀態(tài)不同,活動(dòng)狀態(tài)可以有入口動(dòng)作和出口動(dòng)作,也可以有內(nèi)部轉(zhuǎn)移。
(4)、動(dòng)作狀態(tài)是活動(dòng)狀態(tài)的一個(gè)特例,如果某個(gè)活動(dòng)狀態(tài)只包括一個(gè)動(dòng)作,那么它就是一個(gè)動(dòng)作狀態(tài)。
UML中活動(dòng)狀態(tài)和動(dòng)作狀態(tài)的圖標(biāo)相同,但是活動(dòng)狀態(tài)可以在圖標(biāo)中給出入口動(dòng)作和出口動(dòng)作等信息。
?
?
2、動(dòng)作狀態(tài)(Actions)
動(dòng)作狀態(tài)是指原子的,不可中斷的動(dòng)作,并在此動(dòng)作完成后通過完成轉(zhuǎn)換轉(zhuǎn)向另一個(gè)狀態(tài)。動(dòng)作狀態(tài)有如下特點(diǎn):
(1)、動(dòng)作狀態(tài)是原子的,它是構(gòu)造活動(dòng)圖的最小單位。
(2)、動(dòng)作狀態(tài)是不可中斷的。
(3)、動(dòng)作狀態(tài)是瞬時(shí)的行為。
(4)、動(dòng)作狀態(tài)可以有入轉(zhuǎn)換,入轉(zhuǎn)換既可以是動(dòng)作流,也可以是對(duì)象流。動(dòng)作狀態(tài)至少有一條出轉(zhuǎn)換,這條轉(zhuǎn)換以內(nèi)部的完成為起點(diǎn),與外部事件無關(guān)。
(5)、動(dòng)作狀態(tài)與狀態(tài)圖中的狀態(tài)不同,它不能有入口動(dòng)作和出口動(dòng)作,更不能有內(nèi)部轉(zhuǎn)移。
(6)、在一張活動(dòng)圖中,動(dòng)作狀態(tài)允許多處出現(xiàn)。
UML中的動(dòng)作狀態(tài)圖用平滑的圓角矩形表示,如下:
?
3、動(dòng)作狀態(tài)約束(Action Constraints)
動(dòng)作狀態(tài)約束:用來約束動(dòng)作狀態(tài)。如下圖展示了動(dòng)作狀態(tài)的前置條件和后置條件
4、動(dòng)作流(Control Flow)
動(dòng)作之間的轉(zhuǎn)換稱之為動(dòng)作流,活動(dòng)圖的轉(zhuǎn)換用帶箭頭的直線表示,箭頭的方向指向轉(zhuǎn)入的方向。
5、開始節(jié)點(diǎn)(Initial Node)
開始節(jié)點(diǎn):表示成實(shí)心黑色圓點(diǎn)
?
6、終止節(jié)點(diǎn)(Final Node)
分為活動(dòng)終止節(jié)點(diǎn)(activity final nodes)和流程終止節(jié)點(diǎn)(flow final nodes)。
活動(dòng)終止節(jié)點(diǎn)表示整個(gè)活動(dòng)的結(jié)束
而流程終止節(jié)點(diǎn)表示是子流程的結(jié)束。
7、對(duì)象(Objects)
8、數(shù)據(jù)存儲(chǔ)對(duì)象(DataStore)
使用關(guān)鍵字?datastore?
?
9、對(duì)象流(Object Flows)
對(duì)象流是動(dòng)作狀態(tài)或者活動(dòng)狀態(tài)與對(duì)象之間的依賴關(guān)系,表示動(dòng)作使用對(duì)象或動(dòng)作對(duì)對(duì)象的影響。用活動(dòng)圖描述某個(gè)對(duì)象時(shí),可以把涉及到的對(duì)象放置在活動(dòng)圖中并用一個(gè)依賴將其連接到進(jìn)行創(chuàng)建、修改和撤銷的動(dòng)作狀態(tài)或者活動(dòng)狀態(tài)上,對(duì)象的這種使用方法就構(gòu)成了對(duì)象流。
對(duì)象流中的對(duì)象有以下特點(diǎn):
(1)、一個(gè)對(duì)象可以由多個(gè)動(dòng)作操作。
(2)、一個(gè)動(dòng)作輸出的對(duì)象可以作為另一個(gè)動(dòng)作輸入的對(duì)象。
(3)、在活動(dòng)圖中,同一個(gè)對(duì)象可以多次出現(xiàn),它的每一次出現(xiàn)表面該對(duì)象正處于對(duì)象生存期的不同時(shí)間點(diǎn)。
對(duì)象流用帶有箭頭的虛線表示。如果箭頭是從動(dòng)作狀態(tài)出發(fā)指向?qū)ο?#xff0c;則表示動(dòng)作對(duì)對(duì)象施加了一定的影響。施加的影響包括創(chuàng)建、修改和撤銷等。如果箭頭從對(duì)象指向動(dòng)作狀態(tài),則表示該動(dòng)作使用對(duì)象流所指向的對(duì)象。
狀態(tài)圖中的對(duì)象用矩形表示,矩形內(nèi)是該對(duì)象的名稱,名稱下的方括號(hào)表明對(duì)象此時(shí)的狀態(tài)。
10、分支與合并(Decision and Merge Nodes)
分支與合并用菱形表示
11、分叉與匯合(Fork and Join Nodes)
分為水平風(fēng)向和垂直方向。
對(duì)象在運(yùn)行時(shí)可能會(huì)存在兩個(gè)或多個(gè)并發(fā)運(yùn)行的控制流,為了對(duì)并發(fā)的控制流建模,UML中引入了分叉與匯合的概念。分叉用于將動(dòng)作流分為兩個(gè)或多個(gè)并發(fā)運(yùn)行的分支,而匯合則用于同步這些并發(fā)分支,以達(dá)到共同完成一項(xiàng)事務(wù)的目的。
12、異常處理(Exception Handler)
當(dāng)受保護(hù)的活動(dòng)發(fā)生異常時(shí),觸發(fā)異常處理節(jié)點(diǎn)。
?
?
13、活動(dòng)中斷區(qū)域(Interruptible Activity Region)
活動(dòng)中斷區(qū)域圍繞一些可被中斷的動(dòng)作狀態(tài)圖。比如下圖,正常情況下【Process Order】順序流轉(zhuǎn)到【Close Order】,訂單處理流程完畢;但在【Process Order】過稱中,會(huì)發(fā)送【Cancel Order】請(qǐng)求,這時(shí)會(huì)流轉(zhuǎn)到【Cancel Order】,從而訂單處理流程結(jié)束
14、泳道(Partition)
泳道將活動(dòng)圖中的活動(dòng)劃分為若干組,并把每一組指定給負(fù)責(zé)這組活動(dòng)的業(yè)務(wù)組織,即對(duì)象。在活動(dòng)圖中,泳道區(qū)分了負(fù)責(zé)活動(dòng)的對(duì)象,它明確地表示了哪些活動(dòng)是由哪些對(duì)象進(jìn)行的。在包含泳道的活動(dòng)圖中,每個(gè)活動(dòng)只能明確地屬于一個(gè)泳道。
泳道是用垂直實(shí)線繪出,垂直線分隔的區(qū)域就是泳道。在泳道的上方可以給出泳道的名字或?qū)ο蟮拿?#xff0c;該對(duì)象負(fù)責(zé)泳道內(nèi)的全部活動(dòng)。泳道沒有順序,不同泳道中的活動(dòng)既可以順序進(jìn)行也可以并發(fā)進(jìn)行,動(dòng)作流和對(duì)象流允許穿越分隔線。
?
二、活動(dòng)圖案例分析
1、? 泳道分為:會(huì)員泳道和系統(tǒng)泳道。會(huì)員選擇商品并加入購(gòu)物車,系統(tǒng)完成訂單生成及其支付完畢。
2、? 開始節(jié)點(diǎn):會(huì)員添加商品到購(gòu)物車,點(diǎn)擊【訂單確認(rèn)】,開始交于系統(tǒng)處理訂單流程
3、? 結(jié)束節(jié)點(diǎn):商品發(fā)送完畢和付款成功,訂單處理流程結(jié)束
4、? 活動(dòng)狀態(tài):產(chǎn)生訂單、Check Credit Cart核對(duì)信用卡、Check Stock 核對(duì)庫(kù)存量、Deliver Goods 發(fā)送商品、Process Credit Cart付款
5、? 分叉與匯合:【產(chǎn)生訂單】份叉為檢查庫(kù)存量和會(huì)員支付金額是否足夠,如果不足,取消訂單,如過庫(kù)存量和支付金額足夠,發(fā)送商品和付款,最后匯合為訂單完成。
三、總結(jié)
活動(dòng)圖描述的是對(duì)象活動(dòng)的順序關(guān)系所遵循的規(guī)則,它著重表現(xiàn)的是系統(tǒng)的行為,而非系統(tǒng)的處理過程。活動(dòng)圖能夠表示并發(fā)活動(dòng)的情形,活動(dòng)圖是面向?qū)ο蟮摹?/span>總結(jié)
- 上一篇: UML建模之数据建模
- 下一篇: 数单词 (AC自动机模板题)