uml 基礎(chǔ)教程 第七章活動(dòng)圖_第1頁(yè)
uml 基礎(chǔ)教程 第七章活動(dòng)圖_第2頁(yè)
uml 基礎(chǔ)教程 第七章活動(dòng)圖_第3頁(yè)
uml 基礎(chǔ)教程 第七章活動(dòng)圖_第4頁(yè)
uml 基礎(chǔ)教程 第七章活動(dòng)圖_第5頁(yè)
已閱讀5頁(yè),還剩76頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、實(shí)例講解網(wǎng)上書(shū)店的訂單對(duì)象為例 訂單對(duì)象有確認(rèn)訂單、等待到款、等待受理、已受理、已發(fā)貨、交易成功和取消7種狀態(tài)。 (1)“確定訂單”后根據(jù)訂單的付款方式?jīng)Q定向下一個(gè)狀態(tài)的轉(zhuǎn)換。若付款方式=網(wǎng)銀支付,則訂單對(duì)象進(jìn)入“等待到款”狀態(tài),若付款方式=貨到付款,則訂單對(duì)象直接進(jìn)入“等待受理”狀態(tài);用戶付款成功后,訂單對(duì)象可由“等待到款”狀態(tài)轉(zhuǎn)換為“等待受理”狀態(tài); (2)訂單對(duì)象處于“等待到款”或“等待受理”狀態(tài)時(shí),用戶可取消交易,由此訂單對(duì)象轉(zhuǎn)換為“取消”狀態(tài); (3)訂單對(duì)象處于“等待受理”狀態(tài),若書(shū)店銷售管理員受理了訂單,則更新訂單狀態(tài),訂單對(duì)象轉(zhuǎn)換為“已受理”狀態(tài); (4)訂單對(duì)象處于“已受理”

2、狀態(tài),書(shū)店發(fā)貨,銷售管理員更新訂單狀態(tài)訂單對(duì)象轉(zhuǎn)換為“已發(fā)貨”狀態(tài); (5)用戶收到貨物,書(shū)店確認(rèn)后“交易成功”。確認(rèn)訂單等待到款等待受理取消已受理已發(fā)貨交易成功取消訂單付款 付款成功 / 更新訂單狀態(tài)付款方式=網(wǎng)銀支付付款方式=貨到付款取消訂單放棄提交受理訂單書(shū)店發(fā)貨/更新訂單狀態(tài)收貨并確認(rèn)/更新訂單狀態(tài)第七章 活動(dòng)圖本章要點(diǎn): 活動(dòng)圖的定義 活動(dòng)圖中各種標(biāo)記符的含義基礎(chǔ)內(nèi)容:活動(dòng)圖中的活動(dòng)、轉(zhuǎn)換和泳道重點(diǎn)掌握:活動(dòng)圖中的動(dòng)作一般了解:活動(dòng)圖中的對(duì)象流 為什么要引入活動(dòng)圖? 從系統(tǒng)任務(wù)的觀點(diǎn)來(lái)看,系統(tǒng)的執(zhí)行過(guò)程是由一系列有序活動(dòng)組成的。 活動(dòng)圖可以有效地描述整個(gè)系統(tǒng)的流程,即活動(dòng)圖描述的是系

3、統(tǒng)的全局的動(dòng)態(tài)行為。 活動(dòng)圖是唯一能夠描述并發(fā)活動(dòng)的活動(dòng)圖是唯一能夠描述并發(fā)活動(dòng)的uml圖。圖。 活動(dòng)圖還描述了系統(tǒng)中各種活動(dòng)的執(zhí)行順序,刻畫(huà)一個(gè)方法中所要活動(dòng)圖還描述了系統(tǒng)中各種活動(dòng)的執(zhí)行順序,刻畫(huà)一個(gè)方法中所要進(jìn)行的各項(xiàng)活動(dòng)的執(zhí)行流程?;顒?dòng)圖的應(yīng)用非常廣泛,它既可用來(lái)描進(jìn)行的各項(xiàng)活動(dòng)的執(zhí)行流程?;顒?dòng)圖的應(yīng)用非常廣泛,它既可用來(lái)描述過(guò)程或操作(類的方法)的工作步驟,也可以描述用例和對(duì)象內(nèi)部述過(guò)程或操作(類的方法)的工作步驟,也可以描述用例和對(duì)象內(nèi)部的工作流程,并可用于表示并行過(guò)程。的工作流程,并可用于表示并行過(guò)程?;顒?dòng)圖的作用活動(dòng)圖的作用(1)描述一個(gè)操作執(zhí)行過(guò)程中所完成的工作;)描述一個(gè)操

4、作執(zhí)行過(guò)程中所完成的工作;(2)描述對(duì)象內(nèi)部的工作;)描述對(duì)象內(nèi)部的工作;(3)顯示如何執(zhí)行一組相關(guān)的動(dòng)作以及這些動(dòng)作如何影響)顯示如何執(zhí)行一組相關(guān)的動(dòng)作以及這些動(dòng)作如何影響它們周圍的對(duì)象;它們周圍的對(duì)象;(4)顯示用例的實(shí)例是如何執(zhí)行動(dòng)作以及如何改變對(duì)象狀)顯示用例的實(shí)例是如何執(zhí)行動(dòng)作以及如何改變對(duì)象狀態(tài)。態(tài)。(5)說(shuō)明一次活動(dòng)中角色、工作流、組織和對(duì)象是如何工)說(shuō)明一次活動(dòng)中角色、工作流、組織和對(duì)象是如何工作的。作的。7.1 活動(dòng)圖的定義 活動(dòng)圖是一種用于描述系統(tǒng)行為的模型視圖,它可用來(lái)描述動(dòng)作和動(dòng)作導(dǎo)致對(duì)象狀態(tài)改變的結(jié)果,而不用考慮引發(fā)狀態(tài)改變的事件。 uml中,活動(dòng)圖被設(shè)計(jì)用于用來(lái)描述

5、一個(gè)過(guò)程或者操作中,活動(dòng)圖被設(shè)計(jì)用于用來(lái)描述一個(gè)過(guò)程或者操作的工作步驟。的工作步驟。uml圖的表示 在uml中,活動(dòng)的起點(diǎn)用來(lái)描述活動(dòng)圖的開(kāi)始狀態(tài),用黑色實(shí)心圓表示。 活動(dòng)的終點(diǎn)描述活動(dòng)圖的終止?fàn)顟B(tài),用一個(gè)含有實(shí)心圓的空心圓表示。 活動(dòng)圖中的活動(dòng)用圓角矩形表示?;顒?dòng)圖中的轉(zhuǎn)換描述一個(gè)活動(dòng)轉(zhuǎn)向另一個(gè)活動(dòng),用帶箭頭的實(shí)線段表示,箭頭指向轉(zhuǎn)向的活動(dòng),可在轉(zhuǎn)換上用文字標(biāo)識(shí)轉(zhuǎn)換發(fā)生的條件。活動(dòng)圖中還包括分支與合并、分叉與匯合等模型元素分支和合并的圖標(biāo)和狀態(tài)圖中判定的圖標(biāo)相同,分叉與匯合分叉與匯合用一條加粗的線段表示,是用來(lái)描述并發(fā)處理行為用一條加粗的線段表示,是用來(lái)描述并發(fā)處理行為。如圖7-1活動(dòng)活動(dòng)前

6、置和后置條件分支與合并(decision and merge nodes)分支與合并用菱形表示分叉與匯合(fork and join nodes)分為水平風(fēng)向和垂直方向。活動(dòng)圖的主要目的是描述動(dòng)作及對(duì)象的改變結(jié)果,而活動(dòng)圖的主要目的是描述動(dòng)作及對(duì)象的改變結(jié)果,而狀態(tài)圖則是以狀態(tài)的概念描述對(duì)象、子系統(tǒng)、系統(tǒng)在生命狀態(tài)圖則是以狀態(tài)的概念描述對(duì)象、子系統(tǒng)、系統(tǒng)在生命周期中的各種行為。周期中的各種行為。與正常的狀態(tài)圖不同,活動(dòng)圖中的狀態(tài)轉(zhuǎn)換不需任何與正常的狀態(tài)圖不同,活動(dòng)圖中的狀態(tài)轉(zhuǎn)換不需任何觸發(fā)事件,活動(dòng)圖中的動(dòng)作可以放在泳道中,而狀態(tài)圖則觸發(fā)事件,活動(dòng)圖中的動(dòng)作可以放在泳道中,而狀態(tài)圖則不可以。不

7、可以?;顒?dòng)圖著重表現(xiàn)從一個(gè)活動(dòng)到另一個(gè)活動(dòng)的控制流,活動(dòng)圖著重表現(xiàn)從一個(gè)活動(dòng)到另一個(gè)活動(dòng)的控制流,是內(nèi)部處理驅(qū)動(dòng)的流程;狀態(tài)圖著重描述從一個(gè)狀態(tài)到另是內(nèi)部處理驅(qū)動(dòng)的流程;狀態(tài)圖著重描述從一個(gè)狀態(tài)到另一個(gè)狀態(tài)的流程,主要有外部事件的參與。一個(gè)狀態(tài)的流程,主要有外部事件的參與?;顒?dòng)圖和狀態(tài)圖活動(dòng)圖和狀態(tài)圖(1)圖標(biāo)不完全一樣,活動(dòng)圖中的活動(dòng)是用比狀態(tài)圖的圓角矩形)圖標(biāo)不完全一樣,活動(dòng)圖中的活動(dòng)是用比狀態(tài)圖的圓角矩形更加橢圓的矩形表示;更加橢圓的矩形表示;(2)活動(dòng)圖是以活動(dòng)為中心,而狀態(tài)圖是以狀態(tài)為中心的;)活動(dòng)圖是以活動(dòng)為中心,而狀態(tài)圖是以狀態(tài)為中心的;(3)二者觸發(fā)一個(gè)系統(tǒng)或?qū)ο蟮臓顟B(tài)(或活動(dòng)

8、)發(fā)生遷移的機(jī)制)二者觸發(fā)一個(gè)系統(tǒng)或?qū)ο蟮臓顟B(tài)(或活動(dòng))發(fā)生遷移的機(jī)制不同;不同;(4)二者描述對(duì)個(gè)對(duì)象共同完成一個(gè)操作的機(jī)制不同。)二者描述對(duì)個(gè)對(duì)象共同完成一個(gè)操作的機(jī)制不同。(5)活動(dòng)圖用來(lái)描述一個(gè)過(guò)程中的一系列連續(xù)的活動(dòng)的順序,而)活動(dòng)圖用來(lái)描述一個(gè)過(guò)程中的一系列連續(xù)的活動(dòng)的順序,而狀態(tài)圖更適合于描述一個(gè)對(duì)象在一個(gè)生命周期中的離散的不連狀態(tài)圖更適合于描述一個(gè)對(duì)象在一個(gè)生命周期中的離散的不連續(xù)的某些狀態(tài)。續(xù)的某些狀態(tài)?;顒?dòng)圖和狀態(tài)圖的區(qū)別活動(dòng)圖和狀態(tài)圖的區(qū)別活動(dòng)圖和傳統(tǒng)的流程圖也很相似,往往流程圖所能表活動(dòng)圖和傳統(tǒng)的流程圖也很相似,往往流程圖所能表達(dá)的內(nèi)容,大多數(shù)情況下活動(dòng)圖也可以表達(dá)。達(dá)

9、的內(nèi)容,大多數(shù)情況下活動(dòng)圖也可以表達(dá)。 不過(guò)兩者間還是有明顯區(qū)別的。首先活動(dòng)圖是面向?qū)ο蟛贿^(guò)兩者間還是有明顯區(qū)別的。首先活動(dòng)圖是面向?qū)ο蟮?,而流程圖是面向過(guò)程的;其次,活動(dòng)圖不僅能表達(dá)順的,而流程圖是面向過(guò)程的;其次,活動(dòng)圖不僅能表達(dá)順序流程控制,還能表達(dá)并發(fā)流程控制。序流程控制,還能表達(dá)并發(fā)流程控制?;顒?dòng)圖和流程圖的區(qū)別活動(dòng)圖和流程圖的區(qū)別7.2 活動(dòng)圖中的標(biāo)記符 構(gòu)成活動(dòng)圖的標(biāo)記符主要有動(dòng)作、活動(dòng)、轉(zhuǎn)換和組合活動(dòng)等,其中活動(dòng)是活動(dòng)圖中的核心概念。7.2.1 動(dòng)作動(dòng)作是一種原子操作,它不能被外部事件的轉(zhuǎn)換所中斷。動(dòng)作不可以分解成更小的部分,它是構(gòu)造活動(dòng)圖的最小單位。執(zhí)行動(dòng)作就會(huì)產(chǎn)生結(jié)果,可以

10、用一組相關(guān)動(dòng)作來(lái)描述操作的實(shí)現(xiàn),然后將這些動(dòng)作轉(zhuǎn)換成代碼行。動(dòng)作通常有一個(gè)輸出的完成轉(zhuǎn)換,如果有監(jiān)護(hù)條件也可以有多個(gè)輸出的完成轉(zhuǎn)換。不過(guò)動(dòng)作和狀態(tài)圖中的狀態(tài)不同,它不能有入口動(dòng)作和出口動(dòng)作,也不能有內(nèi)部轉(zhuǎn)移。7.2.2 活動(dòng) 活動(dòng)是構(gòu)成活動(dòng)圖的核心元素,是具有內(nèi)部動(dòng)作的狀態(tài),由隱含的事件觸發(fā)活動(dòng)的轉(zhuǎn)移。 要注意的是,活動(dòng)是一個(gè)程序的執(zhí)行過(guò)程的狀態(tài)而不是一個(gè)普通對(duì)象的狀態(tài)。離開(kāi)一個(gè)活動(dòng)的轉(zhuǎn)換通常不包括事件觸發(fā)器。轉(zhuǎn)換可以包括動(dòng)作和監(jiān)護(hù)條件,如果有多個(gè)監(jiān)護(hù)條件賦值為真,那么將無(wú)法預(yù)料最終的選擇結(jié)果。活動(dòng)是由一個(gè)或多個(gè)動(dòng)作組成的行為。動(dòng)作是活動(dòng)中的一個(gè)步驟,但是,動(dòng)作并不是組成活動(dòng)的最小單位,每個(gè)動(dòng)

11、作只是相對(duì)它的活動(dòng)而言,如果把一個(gè)動(dòng)作作為一個(gè)活動(dòng)。那么,這個(gè)動(dòng)作又可以分為更多個(gè)組成這個(gè)活動(dòng)的動(dòng)作。 動(dòng)作是一種特殊的活動(dòng),即它只有一個(gè)入口動(dòng)作,并且它活動(dòng)時(shí)不會(huì)被轉(zhuǎn)換所中斷。動(dòng)作一般用于描述簡(jiǎn)短的操作,而活動(dòng)用于描述持續(xù)事件或復(fù)雜性的計(jì)算?;顒?dòng)和動(dòng)作的區(qū)別活動(dòng)邊在活動(dòng)圖中,僅有動(dòng)作是沒(méi)有意義的,因?yàn)榛顒?dòng)圖需要表現(xiàn)動(dòng)作與動(dòng)作之間、動(dòng)作與數(shù)據(jù)之間、數(shù)據(jù)與動(dòng)作之間的關(guān)聯(lián)和方向。 uml2.0 稱這些出現(xiàn)在活動(dòng)中的信息之間的關(guān)聯(lián)為活動(dòng)邊(activity edge)。uml2.0 的活動(dòng)邊為一條帶有開(kāi)放式箭頭的實(shí)線,其箭頭指向下一個(gè)動(dòng)作或下一個(gè)節(jié)點(diǎn)。活動(dòng)邊所連的點(diǎn)(動(dòng)作或節(jié)點(diǎn))不同,所形成的信息流

12、也不同。在活動(dòng)圖中,由活動(dòng)邊關(guān)聯(lián)起來(lái)的信息流程可分為兩在活動(dòng)圖中,由活動(dòng)邊關(guān)聯(lián)起來(lái)的信息流程可分為兩大類,即活動(dòng)圖的邊包括控制流和對(duì)象流。大類,即活動(dòng)圖的邊包括控制流和對(duì)象流。1. 控制流控制流 在活動(dòng)圖中,控制流表示一個(gè)操作完成后對(duì)其后續(xù)操在活動(dòng)圖中,控制流表示一個(gè)操作完成后對(duì)其后續(xù)操作的觸發(fā)。作的觸發(fā)。 當(dāng)活動(dòng)邊連接的是兩個(gè)動(dòng)作時(shí),這種活動(dòng)邊稱為控制流??刂屏饕话惆l(fā)生在兩種情況:在活動(dòng)邊控制下,活動(dòng)由一個(gè)動(dòng)作直接轉(zhuǎn)變?yōu)榱硪粋€(gè)動(dòng)作時(shí),或者由一個(gè)動(dòng)作經(jīng)過(guò)一個(gè)邏輯判斷條件轉(zhuǎn)變?yōu)榱硪粋€(gè)動(dòng)作。表示控制流的活動(dòng)邊的箭頭指明下一個(gè)動(dòng)作。 如 圖2. 對(duì)象流對(duì)象流 當(dāng)活動(dòng)邊連接動(dòng)作與數(shù)值或活動(dòng)與數(shù)值時(shí),u

13、ml2.0 稱這類活動(dòng)邊為對(duì)象流,對(duì)象流用于描述活動(dòng)中的數(shù)據(jù)輸入輸出。 如 圖活動(dòng)節(jié)點(diǎn)在活動(dòng)圖中,流動(dòng)的信息不僅僅只有動(dòng)作,uml2.0把除了動(dòng)作外的其他活動(dòng)信息稱為活動(dòng)節(jié)點(diǎn)。這些活動(dòng)節(jié)點(diǎn)主要分為3大類: 參數(shù)節(jié)點(diǎn) 對(duì)象節(jié)點(diǎn) 控制節(jié)點(diǎn)1.參數(shù)節(jié)點(diǎn) 參數(shù)節(jié)點(diǎn)用來(lái)表示一個(gè)參數(shù)進(jìn)入一個(gè)活動(dòng)或者一個(gè)參數(shù)從一個(gè)活動(dòng)中輸出。參數(shù)節(jié)點(diǎn)用一個(gè)直角的長(zhǎng)方形來(lái)表示 如圖 參數(shù)節(jié)點(diǎn)是出現(xiàn)在活動(dòng)框上的長(zhǎng)方形,活動(dòng)框上可以有一個(gè)或多個(gè)參數(shù)節(jié)點(diǎn),它的一個(gè)邊通常與活動(dòng)框內(nèi)的某個(gè)動(dòng)作相連以表示它是這個(gè)動(dòng)作的輸入或輸出數(shù)據(jù),參數(shù)的輸入來(lái)源于活動(dòng)之外,參數(shù)的輸出表示參數(shù)將輸出到活動(dòng)之外。2. 對(duì)象節(jié)點(diǎn) 當(dāng)uml活動(dòng)圖表達(dá)一個(gè)復(fù)雜

14、的數(shù)據(jù)試圖通過(guò)一個(gè)活動(dòng)時(shí),這個(gè)穿越活動(dòng)的數(shù)據(jù)包被稱為對(duì)象節(jié)點(diǎn)。對(duì)象節(jié)點(diǎn)用于表示活動(dòng)中移動(dòng)的數(shù)據(jù)。對(duì)象節(jié)點(diǎn)用矩形框表示,對(duì)象節(jié)點(diǎn)名可以加在矩形框內(nèi)或外部,框內(nèi)標(biāo)明數(shù)據(jù)的名稱。 如圖 對(duì)象節(jié)點(diǎn)與參數(shù)節(jié)點(diǎn)的差別是,對(duì)象節(jié)點(diǎn)與動(dòng)作相連,參數(shù)節(jié)點(diǎn)是在活動(dòng)框上的數(shù)據(jù)。3. 控制節(jié)點(diǎn) 用于表示活動(dòng)中的控制判斷、同步運(yùn)算、路徑分叉、路徑合并等特殊節(jié)點(diǎn)??刂乒?jié)點(diǎn)主要包括起始節(jié)點(diǎn)、判斷節(jié)點(diǎn)、匯合節(jié)點(diǎn)、分叉節(jié)點(diǎn)、結(jié)合節(jié)點(diǎn)以及終點(diǎn)節(jié)點(diǎn)。 如 圖控制節(jié)點(diǎn)控制節(jié)點(diǎn)說(shuō)明說(shuō)明表示起始節(jié)點(diǎn)起始節(jié)點(diǎn)表示活動(dòng)的開(kāi)始節(jié)點(diǎn)表示活動(dòng)的開(kāi)始節(jié)點(diǎn) 判斷節(jié)點(diǎn)判斷節(jié)點(diǎn)判斷節(jié)點(diǎn)是通過(guò)布爾值的選擇給出不同的輸出流的控判斷節(jié)點(diǎn)是通過(guò)布爾值的選擇給出不

15、同的輸出流的控制節(jié)點(diǎn),在判斷節(jié)點(diǎn)中,需要根據(jù)不同的條件執(zhí)行不制節(jié)點(diǎn),在判斷節(jié)點(diǎn)中,需要根據(jù)不同的條件執(zhí)行不同的動(dòng)作序列,這些條件被稱為警戒條件。同的動(dòng)作序列,這些條件被稱為警戒條件。 匯合節(jié)點(diǎn)匯合節(jié)點(diǎn)與決策節(jié)點(diǎn)相反,匯合節(jié)點(diǎn)具有多個(gè)輸入邊和一個(gè)輸與決策節(jié)點(diǎn)相反,匯合節(jié)點(diǎn)具有多個(gè)輸入邊和一個(gè)輸出邊,它的兩個(gè)輸入邊并不需要并行到達(dá)匯合節(jié)點(diǎn),出邊,它的兩個(gè)輸入邊并不需要并行到達(dá)匯合節(jié)點(diǎn),也就是說(shuō)無(wú)論哪個(gè)邊先到達(dá)匯合節(jié)點(diǎn),都要進(jìn)入唯一也就是說(shuō)無(wú)論哪個(gè)邊先到達(dá)匯合節(jié)點(diǎn),都要進(jìn)入唯一的輸出邊的輸出邊 分叉節(jié)點(diǎn)分叉節(jié)點(diǎn)分叉節(jié)點(diǎn)是一個(gè)動(dòng)作在該點(diǎn)同時(shí)并行產(chǎn)生多個(gè)并發(fā)活分叉節(jié)點(diǎn)是一個(gè)動(dòng)作在該點(diǎn)同時(shí)并行產(chǎn)生多個(gè)并發(fā)

16、活動(dòng)邊動(dòng)邊 結(jié)合節(jié)點(diǎn)結(jié)合節(jié)點(diǎn)結(jié)合節(jié)點(diǎn)是指多個(gè)并發(fā)活動(dòng)邊在該點(diǎn)應(yīng)產(chǎn)生各自的返結(jié)合節(jié)點(diǎn)是指多個(gè)并發(fā)活動(dòng)邊在該點(diǎn)應(yīng)產(chǎn)生各自的返回值,當(dāng)所有返回值均正確產(chǎn)生后,傳遞給該節(jié)點(diǎn)的回值,當(dāng)所有返回值均正確產(chǎn)生后,傳遞給該節(jié)點(diǎn)的唯一輸出邊唯一輸出邊 終點(diǎn)節(jié)點(diǎn)終點(diǎn)節(jié)點(diǎn)有兩種類型的終點(diǎn)節(jié)點(diǎn):用于終止活動(dòng)圖的一個(gè)路徑有兩種類型的終點(diǎn)節(jié)點(diǎn):用于終止活動(dòng)圖的一個(gè)路徑而不是整個(gè)活動(dòng)的流終點(diǎn)節(jié)點(diǎn),用圓形加而不是整個(gè)活動(dòng)的流終點(diǎn)節(jié)點(diǎn),用圓形加 表示;用表示;用于結(jié)束整個(gè)活動(dòng)的終點(diǎn)節(jié)點(diǎn),用加圈的實(shí)心圓表示。于結(jié)束整個(gè)活動(dòng)的終點(diǎn)節(jié)點(diǎn),用加圈的實(shí)心圓表示。7.2.3 轉(zhuǎn)換 與狀態(tài)圖不同,活動(dòng)圖的轉(zhuǎn)換一般不需要特定事件的觸發(fā)。一個(gè)動(dòng)

17、作狀態(tài)執(zhí)行完本狀態(tài)需要完成的動(dòng)作后會(huì)自發(fā)轉(zhuǎn)換到另外一個(gè)狀態(tài)。 當(dāng)一個(gè)活動(dòng)結(jié)束時(shí),控制流就會(huì)馬上傳遞給下一個(gè)活動(dòng)結(jié)點(diǎn),在活動(dòng)圖中稱之為“轉(zhuǎn)換”,用一條帶箭頭的直線表示。箭頭上還可帶有監(jiān)護(hù)條件,用來(lái)發(fā)送短句和動(dòng)作表達(dá)式。監(jiān)護(hù)條件用來(lái)約束轉(zhuǎn)移,監(jiān)護(hù)條件為真時(shí)轉(zhuǎn)移才可以開(kāi)始,用菱形符號(hào)來(lái)表示分支。7.2.4 組合活動(dòng)一個(gè)活動(dòng)還可以分為若干個(gè)動(dòng)作或子活動(dòng),那么這些動(dòng)作和子活動(dòng)本身又可以組成一個(gè)活動(dòng)圖,嵌套了若干個(gè)動(dòng)作或子活動(dòng)的活動(dòng)稱為組合活動(dòng)。組合活動(dòng)是一種內(nèi)嵌活動(dòng)圖的狀態(tài)。把不含內(nèi)嵌活動(dòng)或動(dòng)作的活動(dòng)稱為簡(jiǎn)單活動(dòng),把嵌套了若干個(gè)活動(dòng)或動(dòng)作的活動(dòng)稱為組合活動(dòng)。 一個(gè)組合活動(dòng)在表面上看是一個(gè)狀態(tài),但其本質(zhì)卻

18、是一組子活動(dòng)的概括。一個(gè)組合活動(dòng)可以分解為多個(gè)活動(dòng)或者動(dòng)作的組合。每個(gè)組合活動(dòng)都有自己的名字和相應(yīng)的子活動(dòng)圖。一旦進(jìn)入組合活動(dòng),嵌套在其中的子活動(dòng)圖就開(kāi)始執(zhí)行,直到到達(dá)子活動(dòng)圖的最后一個(gè)狀態(tài),組合活動(dòng)結(jié)束。 如果一些活動(dòng)狀態(tài)比較復(fù)雜,就會(huì)用到組合活動(dòng) 使用組合活動(dòng)可以在一幅圖中展示所有的工作流程細(xì)節(jié),但是如果所展示的工作流程較為復(fù)雜,就會(huì)使活動(dòng)圖難以理解,所以當(dāng)流程復(fù)雜時(shí)也可將子圖單獨(dú)放在一個(gè)圖中,然后讓活動(dòng)狀態(tài)引用它。7.3 其他標(biāo)記符 在活動(dòng)圖中,除了前面介紹的動(dòng)作、活動(dòng)、轉(zhuǎn)換和組合活動(dòng)4個(gè)主要的標(biāo)記符以外,還存在幾個(gè)次要的標(biāo)記符: 分支與合并 分叉與匯合 泳道 對(duì)象流7.3.1 分支與合

19、并 分支在活動(dòng)圖中很常見(jiàn),它是轉(zhuǎn)換的一部分,它將轉(zhuǎn)換路徑分成多個(gè)部分,每一部分都有單獨(dú)的監(jiān)護(hù)條件和不同的結(jié)果。當(dāng)動(dòng)作流遇到分支時(shí),會(huì)根據(jù)監(jiān)護(hù)條件(布爾值)的真假來(lái)判定動(dòng)作的流向。 分支的每個(gè)路徑的監(jiān)護(hù)條件應(yīng)該是互斥的,這樣可以保證只有一條路徑的轉(zhuǎn)換被激發(fā)。在活動(dòng)圖中離開(kāi)一個(gè)活動(dòng)狀態(tài)的分支通常是完成轉(zhuǎn)換,它們是在狀態(tài)內(nèi)活動(dòng)完成時(shí)隱含觸發(fā)的。 要注意的是,分支應(yīng)該盡可能地包含所有的可能,否則可能會(huì)有一些轉(zhuǎn)換無(wú)法被激發(fā)。這樣最終會(huì)因?yàn)檩敵鲛D(zhuǎn)換不再重新激發(fā)。 合并指的是兩個(gè)或者多個(gè)控制路徑在此匯合的情況。合并是一種便利的表示法,省略它不會(huì)丟失信息。合并和分支常常成對(duì)使用,合并表示從對(duì)應(yīng)分支開(kāi)始的條件行

20、為的結(jié)束。 在活動(dòng)圖中,分支與合并都用空心的菱形表示。分支有一個(gè)輸入箭頭和兩個(gè)輸出箭頭,而合并有兩個(gè)輸入箭頭和一個(gè)輸出箭頭,如圖7-5所示。 需要注意區(qū)分合并和結(jié)合。合并匯合了兩個(gè)以上的控制路徑,在任何執(zhí)行中每次只走一條,不同路徑之間是互斥的關(guān)系。而結(jié)合則匯合了兩條或兩條以上的并行控制路徑。在執(zhí)行過(guò)程中,所有路徑都要走過(guò),先到的控制流要等其他路徑的控制流到達(dá)后才能繼續(xù)運(yùn)行。 在活動(dòng)圖中,分支與合并都是用空心的菱形表示。分支有一個(gè)輸入箭頭和兩個(gè)輸出箭頭,而合并有兩個(gè)輸入箭頭和一個(gè)輸出箭頭。7.3.2 分叉與匯合 在實(shí)際的控制流中,除了順序結(jié)構(gòu)、分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)之外,還可能存在并發(fā)的事件流。并發(fā)

21、指的是在同一時(shí)間并發(fā)指的是在同一時(shí)間間隔內(nèi),有兩個(gè)或者兩個(gè)以上的活動(dòng)執(zhí)行。間隔內(nèi),有兩個(gè)或者兩個(gè)以上的活動(dòng)執(zhí)行。 為了對(duì)并發(fā)的控制流建模,在為了對(duì)并發(fā)的控制流建模,在uml中引入了分叉和匯合中引入了分叉和匯合的概念。的概念。 分叉用來(lái)表示將一個(gè)控制流分成兩個(gè)或者多個(gè)并發(fā)運(yùn)行的分支,它有一個(gè)進(jìn)入轉(zhuǎn)換,有兩個(gè)或多個(gè)離開(kāi)轉(zhuǎn)換,也就是說(shuō)分叉表示一個(gè)控制流被兩個(gè)或多個(gè)控制流代替,經(jīng)過(guò)分叉后這些控制流是并發(fā)的;而匯合用來(lái)表示并行分支在此得到同步,有兩個(gè)或多個(gè)進(jìn)入轉(zhuǎn)換,一個(gè)離開(kāi)轉(zhuǎn)換,表示兩個(gè)或多個(gè)控制流被一個(gè)控制流代替。 分叉和匯合在uml中的表示法相似,都用粗黑線表示。分叉具有一個(gè)輸入轉(zhuǎn)換、兩個(gè)或者多個(gè)輸

22、出轉(zhuǎn)換,每個(gè)轉(zhuǎn)換都可以是獨(dú)立的控制流。 如圖7-6所示 匯合與分叉相反,結(jié)合具有兩個(gè)或者多個(gè)輸入轉(zhuǎn)換,只有一個(gè)輸出轉(zhuǎn)換。先完成的控制流需要在此等待,只有當(dāng)所有的控制流都到達(dá)結(jié)合點(diǎn)時(shí),控制才能繼續(xù)往下進(jìn)行。 如圖 7-7所示 要注意區(qū)分合并與匯合的不同。合并結(jié)合了兩個(gè)以上的控制路徑。在任何執(zhí)行中,每次只走一條路徑,不同路徑之間是互斥的關(guān)系。而匯合則結(jié)合了兩條或兩條以上的并行控制路徑。在執(zhí)行過(guò)程中,所有路徑都要走過(guò),先到的控制流要等其他路徑的控制流都到后,才能繼續(xù)運(yùn)行。7.3.3 泳道 為了表明活動(dòng)圖中各種元素的歸屬,uml用垂直線將不同歸屬的元素分開(kāi),將它稱為活動(dòng)劃分,由于這種劃分的外觀很像泳道

23、,所以也稱為活動(dòng)圖中的泳道。為了對(duì)活動(dòng)的職責(zé)進(jìn)行組織而在活動(dòng)圖中將活動(dòng)狀態(tài)分為為了對(duì)活動(dòng)的職責(zé)進(jìn)行組織而在活動(dòng)圖中將活動(dòng)狀態(tài)分為不同的組,稱為泳道。不同的組,稱為泳道?;顒?dòng)圖可以使用泳道根據(jù)每個(gè)活動(dòng)的職責(zé)對(duì)活動(dòng)進(jìn)行劃分,每個(gè)泳道是一個(gè)責(zé)任區(qū),代表特定含義的狀態(tài)職責(zé)部分。在活動(dòng)圖中,每個(gè)活動(dòng)只能明確地屬于一個(gè)泳道,泳道明確地表示了哪些活動(dòng)是由哪些對(duì)象進(jìn)行的。每個(gè)泳道都有一個(gè)與其他泳道不同的名稱。在活動(dòng)圖中,每個(gè)泳道通過(guò)垂直實(shí)線與它的鄰居泳道相分離。在泳道的上方是泳道的名稱,不同泳道中的活動(dòng)既可以順序進(jìn)行也可以并發(fā)進(jìn)行。雖然每個(gè)活動(dòng)狀態(tài)都指派了一條泳道,但是轉(zhuǎn)移則可能跨越數(shù)條泳道。每個(gè)泳道可能由一

24、個(gè)或者多個(gè)類實(shí)施,類所執(zhí)行的動(dòng)作或擁有的狀態(tài)按照發(fā)生的事件順序自上而下的排列在泳道內(nèi)。而泳道的排列順序并不重要,只要布局合理、減少線條交叉即可??紤]一個(gè)咨詢公司和該咨詢公司會(huì)見(jiàn)一個(gè)客戶時(shí)的業(yè)務(wù)過(guò)程?;顒?dòng)可能是像這樣發(fā)生的:公司業(yè)務(wù)員打電話給客戶,確定一個(gè)約定;如果約定地點(diǎn)是在公司之內(nèi),那么公司中的技術(shù)人員就要為會(huì)面準(zhǔn)備一間會(huì)議室;如果約定地點(diǎn)是公司之外,那么咨詢顧問(wèn)就要用膝上電腦準(zhǔn)備一份陳述報(bào)告;咨詢顧問(wèn)和業(yè)務(wù)員與客戶在約定的時(shí)間和地點(diǎn)見(jiàn)面;業(yè)務(wù)員隨后給他們準(zhǔn)備好會(huì)議用紙;如果會(huì)議產(chǎn)生了一個(gè)問(wèn)題陳述,咨詢顧問(wèn)就根據(jù)問(wèn)題陳述建立編寫(xiě)一個(gè)提案并把該提案發(fā)給客戶。每個(gè)泳道代表特定含義的狀態(tài)職責(zé)部分。

25、在活動(dòng)圖中,每個(gè)活動(dòng)只能明確地屬于一個(gè)泳道,泳道明確表示了哪些活動(dòng)是由哪些對(duì)象執(zhí)行的。每個(gè)泳道都有一個(gè)與其他泳道不同的名稱。 在活動(dòng)圖中,每個(gè)泳道通過(guò)垂直實(shí)線與它鄰居泳道相分離。在泳道的上方是泳道的名稱,不同泳道中的活動(dòng)既可以順序進(jìn)行也可以并發(fā)進(jìn)行。雖然每個(gè)活動(dòng)狀態(tài)都指派了一條泳道,但是轉(zhuǎn)移則可能跨越數(shù)條泳道. 如圖7-8所示7.3.4 對(duì)象流 活動(dòng)圖中交互的簡(jiǎn)單元素是活動(dòng)和對(duì)象,控制流就是對(duì)活動(dòng)和對(duì)象之間的關(guān)系的描述??刂屏鞅硎緞?dòng)作與其參與者和后繼動(dòng)作之間、動(dòng)作與輸入和輸出對(duì)象之間的關(guān)系。而對(duì)象流就是一種特殊的控制流。 在活動(dòng)圖中,對(duì)象可以作為活動(dòng)的輸入或輸出。活動(dòng)圖中的對(duì)象流表示活動(dòng)和對(duì)象

26、之間的關(guān)系?;顒?dòng)對(duì)對(duì)象施加了影響(如創(chuàng)建、修改、銷毀對(duì)象等),對(duì)象作為活動(dòng)的輸出,對(duì)象流箭頭從活動(dòng)指向?qū)ο蠡顒?dòng)圖中交互的簡(jiǎn)單元素是活動(dòng)和對(duì)象,控制流就是對(duì)活動(dòng)和對(duì)象之間的關(guān)系的描述,它表示了動(dòng)作與其參與者和后繼動(dòng)作之間以及動(dòng)作和其輸入或輸出對(duì)象之間的關(guān)系對(duì)象流是將對(duì)象流狀態(tài)作為輸入或輸出的控制流。在活動(dòng)圖中,對(duì)象流描述了動(dòng)作狀態(tài)或者活動(dòng)狀態(tài)與對(duì)象之間的關(guān)系,表示動(dòng)作使用對(duì)象以及動(dòng)作對(duì)對(duì)象的影響。對(duì)象流表示對(duì)象與對(duì)象、操作或產(chǎn)生它或使用它的轉(zhuǎn)換間的關(guān)系。為了在活動(dòng)圖中把它們與普通轉(zhuǎn)換區(qū)分開(kāi),用帶箭頭的虛線而非實(shí)線來(lái)表示對(duì)象流。如果虛線箭頭從活動(dòng)指向?qū)ο罅鳡顟B(tài),則表示輸出。輸出表示了動(dòng)作對(duì)象施加了

27、影響,影響包括創(chuàng)建、修改、撤銷等。如果虛線箭頭從對(duì)象流狀態(tài)指向活動(dòng),則表示輸入。輸入表示動(dòng)作使用了對(duì)象流所指向的對(duì)象流狀態(tài)。如果活動(dòng)有多個(gè)輸出值或后繼控制流,那么箭頭背向分叉符號(hào)。反之,如果有多個(gè)輸入箭頭,則指向結(jié)合符號(hào)。 如圖7-10所示總結(jié) 創(chuàng)建一個(gè)uml活動(dòng)圖,需要反復(fù)執(zhí)行下列步驟:(1)定義活動(dòng)圖要對(duì)什么建模單個(gè)用例一個(gè)用例的一部分一個(gè)包含多個(gè)用戶用例的業(yè)務(wù)流程一個(gè)類的單個(gè)方法(2)添加起始和結(jié)束點(diǎn)每個(gè)活動(dòng)圖有一個(gè)起始點(diǎn)和結(jié)束點(diǎn)。(3)添加活動(dòng)如果對(duì)一個(gè)用戶案例建模,應(yīng)該為每個(gè)參與者所發(fā)出的主要步驟添加一個(gè)活動(dòng)。如果對(duì)一個(gè)高層的業(yè)務(wù)流程建模,應(yīng)為每個(gè)主要流程引入一個(gè)活動(dòng),通常為一個(gè)用例

28、或用例包。如果為一個(gè)方法建模,那么引入一個(gè)活動(dòng)圖是很常見(jiàn)的。(4)添加活動(dòng)間的轉(zhuǎn)換(5)添加決策點(diǎn)有時(shí)候,所建模的邏輯需要做出一個(gè)決策。有可能是需要檢查某些事務(wù)或比較某些事務(wù),可以選擇使用控制節(jié)點(diǎn)。(6)找出可并行活動(dòng)之處 當(dāng)兩個(gè)活動(dòng)間沒(méi)有直接的聯(lián)系,而且它們都必須在第3個(gè)活動(dòng)開(kāi)始前結(jié)束,那它們是可以并行運(yùn)行的。并行活動(dòng)可以按任意次序進(jìn)行,但是它們都得在結(jié)束整個(gè)流程前完成狀態(tài)圖和活動(dòng)圖的不同之處(1)圖標(biāo)不完全一樣,活動(dòng)圖中的活動(dòng)是用比狀態(tài)圖的圓)圖標(biāo)不完全一樣,活動(dòng)圖中的活動(dòng)是用比狀態(tài)圖的圓角矩形更加橢圓的矩形表示;角矩形更加橢圓的矩形表示;(2)活動(dòng)圖是以活動(dòng)為中心,而狀態(tài)圖是以狀態(tài)為中心

29、的)活動(dòng)圖是以活動(dòng)為中心,而狀態(tài)圖是以狀態(tài)為中心的(3)二者觸發(fā)一個(gè)系統(tǒng)或?qū)ο蟮臓顟B(tài)(或活動(dòng))發(fā)生遷移)二者觸發(fā)一個(gè)系統(tǒng)或?qū)ο蟮臓顟B(tài)(或活動(dòng))發(fā)生遷移的機(jī)制不同;的機(jī)制不同;(4)二者描述對(duì)個(gè)對(duì)象共同完成一個(gè)操作的機(jī)制不同。)二者描述對(duì)個(gè)對(duì)象共同完成一個(gè)操作的機(jī)制不同。(5)活動(dòng)圖用來(lái)描述一個(gè)過(guò)程中的一系列連續(xù)的活動(dòng)的順)活動(dòng)圖用來(lái)描述一個(gè)過(guò)程中的一系列連續(xù)的活動(dòng)的順序,而狀態(tài)圖更適合于描述一個(gè)對(duì)象在一個(gè)生命周期中的序,而狀態(tài)圖更適合于描述一個(gè)對(duì)象在一個(gè)生命周期中的離散的不連續(xù)的某些狀態(tài)離散的不連續(xù)的某些狀態(tài)總結(jié)例子案例例子例子實(shí)例1:建立醫(yī)院病房監(jiān)護(hù)系統(tǒng)的動(dòng)態(tài)模型用活動(dòng)圖描述系統(tǒng)在監(jiān)護(hù)病人時(shí)

30、的活動(dòng) 醫(yī)院病房監(jiān)護(hù)系統(tǒng),主要活動(dòng)由“采集病癥信號(hào)”、“分析比較信號(hào)”、“判斷病癥異常否”、“報(bào)警”、及“打印病情報(bào)告”等活動(dòng)組成。當(dāng)病癥出現(xiàn)異常時(shí),立即報(bào)警,同時(shí)打印病情報(bào)告和更新病歷,三者是并發(fā)執(zhí)行的活動(dòng),因此使用同步線描述。實(shí)例2:以課程注冊(cè)系統(tǒng)中的“學(xué)生瀏覽目錄”為例,創(chuàng)建系統(tǒng)完整的活動(dòng)圖對(duì)于“學(xué)生瀏覽目錄”的用例來(lái)說(shuō),參與者是學(xué)生,涉及的用例是: 根據(jù)科目查詢課程 根據(jù)課程目錄瀏覽 瀏覽課程在開(kāi)始創(chuàng)建用例的活動(dòng)圖時(shí),往往先建立一條明顯的路徑執(zhí)行工作流,然后從該路徑進(jìn)行擴(kuò)展,下圖為“學(xué)生瀏覽目錄”的工作流示意圖。 學(xué)生在瀏覽器中輸入網(wǎng)址進(jìn)入首頁(yè),系統(tǒng)收到用戶請(qǐng)求后,構(gòu)建首頁(yè)并顯示。學(xué)生在首頁(yè)中有兩種瀏覽課程信息的方法:通過(guò)科目查詢?yōu)g覽和課程目錄頁(yè)面輸入課程編號(hào)查詢?yōu)g覽。當(dāng)系統(tǒng)獲得用戶的不同請(qǐng)求時(shí),顯示相應(yīng)的課程信息給用戶。學(xué)生在頁(yè)面瀏覽課程的詳細(xì)信息。瀏覽完畢退出。導(dǎo)航到首頁(yè)輸入課程編號(hào)查詢課程瀏覽課程詳細(xì)信息退出創(chuàng)建到首頁(yè)系統(tǒng)學(xué)生活動(dòng)圖應(yīng)用題 在網(wǎng)上書(shū)店中,會(huì)員選購(gòu)圖書(shū)、管理員管理

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論