zhjr07- 第五章 活動圖_第1頁
zhjr07- 第五章 活動圖_第2頁
zhjr07- 第五章 活動圖_第3頁
zhjr07- 第五章 活動圖_第4頁
zhjr07- 第五章 活動圖_第5頁
已閱讀5頁,還剩55頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

授課:張金榮Email:zhjr2000@163.comzhjr@QQ:zhjr@(即1211460305)電話:13983103704107030803、04班《統(tǒng)一建模語言與建模工具》教學(xué)要求掌握:活動圖的作用,活動圖建模元素掌握:活動圖建模的方法第

5

章活動圖2一個完整的模型必然描述系統(tǒng)的靜態(tài)和動態(tài)兩個方面1.x靜態(tài)模型的組成結(jié)構(gòu)結(jié)構(gòu)模型2.x1.x動態(tài)模型描述系統(tǒng)的行為行為模型2.xUML提供如下動態(tài)模型:交互圖(順序圖和協(xié)作圖)、狀態(tài)圖、活動圖

狀態(tài)圖用來描述某一特定對象所有可能的狀態(tài)及狀態(tài)間的轉(zhuǎn)移,是對類圖的補(bǔ)充順序圖用來描述對象間的動態(tài)交互關(guān)系,著重體現(xiàn)對象間消息傳遞的時間順序協(xié)作圖用來描述相互協(xié)作的對象的交互關(guān)系和關(guān)聯(lián)關(guān)系,著重體現(xiàn)對象間的靜態(tài)關(guān)聯(lián)關(guān)系活動圖主要用于描述用例內(nèi)部的工作流程3UML1.x和2.x四種動態(tài)圖的比較活動圖1.x2.xactivitydiagram名字一樣但改動較大順序圖1.x2.x又叫時序圖/序列圖

sequencediagram協(xié)作圖1.x--2.x通信圖

collaboration-----communicationdiagram狀態(tài)圖1.x2.x

statediagram--2.x交互概觀圖(順序圖和協(xié)作圖)

interactionoverviewdiagram

4活動圖和交互圖是UML中對系統(tǒng)動態(tài)方面建模的兩種主要形式交互圖強(qiáng)調(diào)的是對象到對象的控制流,而活動圖則強(qiáng)調(diào)的是從活動到活動的控制流活動圖是一種表述過程基理、業(yè)務(wù)過程以及工作流的技術(shù)。它可以用來對業(yè)務(wù)過程、工作流建模,也可以對用例實(shí)現(xiàn)甚至是程序?qū)崿F(xiàn)來建模

UML2.0而言,去除了“活動圖是狀態(tài)圖

的一種特例”這一規(guī)定5先看一個實(shí)例:ATM機(jī)“登錄”用例6ATM機(jī)“登錄”用例的活動圖7用例圖?事件流?活動圖?三個有什么聯(lián)系嗎??85.1活動圖的概述5.1.1從實(shí)例開始:910(1)(2)(3)(4)(5)(6)(7)動作結(jié)點(diǎn)活動結(jié)點(diǎn)轉(zhuǎn)換transition

控制流注:虛線表示該處是復(fù)雜活動圖中的元素(UML并無此分類,這里僅僅是為了行課方便而作此劃分);雙紅線表示是UML1.x里面的稱謂,UML2.x已經(jīng)用其右面的稱謂11活動圖并不是直接來源于三位UML設(shè)計(jì)者以前的工作,其技術(shù)思想主要來源于JimOdell的事件圖、SDL狀態(tài)建模技術(shù)和Petri網(wǎng)技術(shù)。這些技術(shù)可以有效地描述(a)工作流和(b)并行過程的行為。5.1.2活動圖思想12(a)活動圖是用例事件流的另一種建模方式。由于活動圖顯示的信息與文本事件流相同,所以可在業(yè)務(wù)模型中用活動圖描述業(yè)務(wù)過程的工作流。在用例模型中,活動圖用來捕捉用例的活動,并使用框圖的方式顯示動作及其結(jié)果。活動圖著重描述操作(Operation)及用例實(shí)例或?qū)ο笾械幕顒印?3(b)活動圖是企事業(yè)過程建模的重要工具,具有較強(qiáng)的并行表達(dá)能力,對企事業(yè)過程中業(yè)務(wù)活動的建模非常重要,可以方便地表示業(yè)務(wù)活動中常見的并行過程。采用并行過程來描述一個業(yè)務(wù)過程具有重要的意義,它鼓勵人們在建立業(yè)務(wù)過程模型時自然地保留那些業(yè)務(wù)過程中際存在的并發(fā)行為,不必過早地去考慮如何用一個只能處理順序事務(wù)的計(jì)算機(jī)來實(shí)現(xiàn)這些并發(fā)行為的種種細(xì)節(jié)。實(shí)際上,在模型中保留這種并行行為的描述,對于在實(shí)現(xiàn)階段充分發(fā)現(xiàn)那些可以并行的工作非常有利,這樣可以大大提高業(yè)務(wù)過程中的辦事效率和反應(yīng)的靈敏程度。14活動圖采用類似于狀態(tài)機(jī)的方法來表示工作的流程,描述了需要做的活動以及執(zhí)行這些活動的順序?;顒訄D用來描述:何種動作、做什么(對象狀態(tài)改變)、何時發(fā)生(動作序列)在何處發(fā)生(泳道)?;顒訄D用來描述動作和動作導(dǎo)致對象狀態(tài)改變的結(jié)果,而不考慮引發(fā)狀態(tài)改變的事件。5.1.3活動圖定義155.1.4活動圖目的活動圖可以用作下述目的:1)描述一個操作執(zhí)行過程中所完成的工作(動作),這是活動圖最常見的用途。2)描述對象內(nèi)部的工作。3)顯示如何執(zhí)行一組相關(guān)的動作以及這些動作如何影響它們周圍的對象。4)顯示用例的實(shí)例如何執(zhí)行動作以及如何改變對象狀態(tài)。5)說明一次商務(wù)活動中的人(角色)工作流組織和對象是如何工作的。165.1.5活動圖與流程圖的區(qū)別雖然活動圖描述系統(tǒng)使用的活動、判定點(diǎn)和分支,看起來和流程圖沒什么兩樣,并且傳統(tǒng)的流程圖所能表示的內(nèi)容,大多數(shù)情況卞也可以使用活動圖表示,但是兩者是有區(qū)別的,不能將兩個概念混淆。(1)流程圖著重描述處理過程,它的主要控制結(jié)構(gòu)是順序、分支和循環(huán),各個處理過程之間有嚴(yán)格的順序和時間關(guān)系;而活動圖描述的是對象活動的順序夭糸所遵循的規(guī)則,它著重表現(xiàn)的是系統(tǒng)的行為,而非系統(tǒng)的處理過程。(2)活動圖能夠表示并發(fā)活動的情形,而流程圖不能(3)活動圖是面向?qū)ο蟮?,而流程圖是面向過程的。171.動作結(jié)點(diǎn)(actionnode)一個動作結(jié)點(diǎn)表示一步計(jì)算,是最小的行為單位,屬于一種可執(zhí)行結(jié)點(diǎn)。2.控制結(jié)點(diǎn)(controlnode)起始結(jié)點(diǎn)(initialnode)終止結(jié)點(diǎn)(finalnode)分叉匯合(fork&joinnode)判斷合并(decision&merge—node)3.對象結(jié)點(diǎn)(objectnode)流入和流出被調(diào)用的行為,表示對象或數(shù)據(jù),或者表現(xiàn)令牌的集聚4.對象流(objectflow)由一個結(jié)點(diǎn)產(chǎn)生的數(shù)據(jù),由其他結(jié)點(diǎn)使用。5.控制流(controlflow)表示結(jié)點(diǎn)間執(zhí)行的序列。6.分區(qū)(partition)和泳道(swimlane)依照各種協(xié)作方式來組織較低層次的活動,如同現(xiàn)實(shí)世界中的各個機(jī)構(gòu)或角色各司其責(zé)。7.可中斷區(qū)間(region)和異常表示控制流偏離正常執(zhí)行的軌道?;顒咏Y(jié)點(diǎn)活動邊5.2活動圖的基本要素18活動的建模在UML2.x中已經(jīng)經(jīng)歷了完整的修訂。也許可以這么說,(至少對偶然使用)效果和外觀可能非常相似,這取決于UML1.5(以及更早版本)中建模的形式,根據(jù)UML1.x規(guī)則構(gòu)造的模型的嚴(yán)格解釋和執(zhí)行結(jié)果可能與UML2.x中不同。因此,我們提醒建模人員注意,即使UML1.x活動模型不作更改似乎對UML2.x也可以接受,但它可能無法同樣執(zhí)行-特別是在更復(fù)雜的模型涉及并行的情況下。單個可執(zhí)行步驟的活動或活動狀態(tài)動作或動作結(jié)點(diǎn);活動(將顯示在活動圖中)是行為作為下級單元的協(xié)調(diào)排序所作的指定,下級單元的單個元素就是動作。我們可能已經(jīng)把UML1.x活動圖中的單個可執(zhí)行步驟稱為活動或活動狀態(tài),或者正確地稱為操作狀態(tài):現(xiàn)在,UML2.x活動中的這些步驟被稱為動作-這些動作在活動中不再進(jìn)一步分解。狀態(tài)的含義在UML2.x中已經(jīng)消失結(jié)點(diǎn)狀態(tài)的含義在UML2.x中已經(jīng)消失,因?yàn)榛顒硬辉偈且环N狀態(tài)機(jī)(在UML1.x中為狀態(tài)機(jī))。在UML2.x中,活動由節(jié)點(diǎn)組成(動作就是一種節(jié)點(diǎn));其它的是控制節(jié)點(diǎn)和對象節(jié)點(diǎn)。19【1】動作(Action)是原子性的動作或操作的執(zhí)行,它不能被外部事件的轉(zhuǎn)換中斷。動作的原子性決定了動作要么不執(zhí)行,要么就完全執(zhí)行,不能中斷,如發(fā)送一個信號、設(shè)置某個屬性值等。動作不可以分解成更小的部分,它是構(gòu)造活動圖的最小單位。從理論上講,動作所占用的處理時間極短,甚至可以忽略不計(jì)。而實(shí)際上,它需要時間來執(zhí)行,但是時間要比可能發(fā)生事件需要的時間短的多。5.2.1動作和活動20動作通常用于對工作流執(zhí)行過程中的步驟進(jìn)行建模。在一張活動圖中,動作允許在多處出現(xiàn)。常見動作如下:(1)基本功能,如算術(shù)運(yùn)算。(2)行為調(diào)用,如調(diào)用另一個活動或者操作。(3)通信動作,如發(fā)送一個信號,或者等待接收某個信號,或者等待某個時間點(diǎn)。(4)對象處理,如對屬性值或關(guān)聯(lián)值的讀寫。21動作結(jié)點(diǎn)actionnode(原先稱為activitystate)動作結(jié)點(diǎn)可以有轉(zhuǎn)入,轉(zhuǎn)入可以是對象流或者動作流。動作結(jié)點(diǎn)通常有一個輸出的完成轉(zhuǎn)換,如果有監(jiān)護(hù)條件也可以有多個輸出的完成轉(zhuǎn)換。在UML中,動作結(jié)點(diǎn)使用平滑的圓角矩形表示,寫在矩形內(nèi)部22【2】活動和活動結(jié)點(diǎn)活動用于表達(dá)狀態(tài)機(jī)中的非原子的運(yùn)行?;顒拥奶攸c(diǎn)如下。(1)活動可以分解成其他子活動或動作,由于它是一組不可中斷的動作或操作的組合,所以可以被中斷。(2)活動的內(nèi)部活動可以用另一個活動圖來表示。(3)和動作不同,活動可以有入口動作和出口動作,也可以有內(nèi)部轉(zhuǎn)移。雖然和動作有諸多不同,活動結(jié)點(diǎn)的表示圖標(biāo)卻和動作結(jié)點(diǎn)相同,都是圓角矩形。稍有不同的是活動結(jié)點(diǎn)可以在圖標(biāo)中給出入口動作和出口動作等信息。23注意:UML定義的動作和活動結(jié)點(diǎn)都是用上面的圓角矩形表示.但在rose2003里面,圓角矩形表示狀態(tài),圓端矩形表示活動(沒有動作的概念)Uml2里面動作還引入了引腳的概念,這里略過可以說,動作是活動的一種特殊情況,因此,除非特殊說明,后面課件中的活動稱謂,含動作.245.2.2控制結(jié)點(diǎn)(controlnode)起始結(jié)點(diǎn)(initialnode)終止結(jié)點(diǎn)(finalnode)分叉匯合(fork&joinnode)分支(判斷)合并(decision&mergenode)25initialnode&finalnode1.x稱為起始狀態(tài)(startstate)和終止?fàn)顟B(tài)(endstate)起始結(jié)點(diǎn):用一個實(shí)心圓表示初始結(jié)點(diǎn)一個活動圖只能有一個起始結(jié)點(diǎn)終止結(jié)點(diǎn):用一個圓圈內(nèi)加一個實(shí)心圓來表示活動終點(diǎn)可以有多個終結(jié)結(jié)點(diǎn)(1)起始結(jié)點(diǎn)和終止結(jié)點(diǎn)26fork&joinnode并發(fā)(Concurrency)指的是在同一時間間隔內(nèi)有兩個或者兩個以上的活動執(zhí)行。對于些復(fù)雜的大型系統(tǒng)而言,對象在運(yùn)行時往往不只存在一個控制流,而是存在兩個或者多并發(fā)運(yùn)行的控制流。為了對并發(fā)的控制流建模,在UML中引入了分叉和結(jié)合的概念。用于表示將一個控制流分成兩個或者多個并發(fā)運(yùn)行的分支,結(jié)合用來表示并行分支在此得到同步。(2)分叉與匯合2728結(jié)合匯合了兩條或兩條以上的并行控制路徑。在執(zhí)行過程中,所有路徑都要走過先到的控制流要等其他路徑的控制流到達(dá)后才能繼續(xù)運(yùn)行。29branch&merge分支是用菱形表示的它有一個進(jìn)入轉(zhuǎn)換(箭頭從外指向分支符號)一個或多個離開轉(zhuǎn)換(箭頭從分支符號指向外)。而每個離開轉(zhuǎn)換上都會有一個監(jiān)護(hù)條件(guardcondition),用來表示滿足什么條件的時候執(zhí)行該轉(zhuǎn)換(3)分支(判定)與合并30分支在活動圖中很常見,它是轉(zhuǎn)換的一部分,它將轉(zhuǎn)換路徑分成多個部分,每一部分都有單獨(dú)的監(jiān)護(hù)條件和不同的結(jié)果。當(dāng)動作流遇到分支時,會根據(jù)監(jiān)護(hù)條件(布爾值)的真假來判定動作的流向。分支的每個路徑的監(jiān)護(hù)條件應(yīng)該是且斥的,這樣可以保證只有一條路徑的轉(zhuǎn)換被激發(fā)。分支應(yīng)該盡可能地包含所有的可能,否則可能會有一些轉(zhuǎn)換無法被激發(fā)。這樣最終會因?yàn)檩敵鲛D(zhuǎn)換不再重新激發(fā)而使活動圖凍結(jié)。31合并指的是兩個或者多個控制路徑在此匯合的情況。合并和分支常常成對使用,合并表示從對應(yīng)分支開始的條件的行為結(jié)束。合并匯合了兩個以上的控制路徑,在任何執(zhí)行中每次只走一條,不同路徑之間是互斥的關(guān)系。325.2.3(動作流)控制流與狀態(tài)圖不同,活動圖的轉(zhuǎn)換一般都不需要特定事件的觸發(fā)。一個活動執(zhí)行完本狀態(tài)需要完成的動作后會自發(fā)轉(zhuǎn)換到另外一個活動。一個活動圖有很多動作或者活動,活動圖通常開始于初始結(jié)點(diǎn),然后自動轉(zhuǎn)換到活動圖的第一個活動結(jié)點(diǎn),該結(jié)點(diǎn)的動作完成后,控制就會不加延遲地轉(zhuǎn)換到下一個結(jié)點(diǎn)。重復(fù)進(jìn)行,碰到一個分支或者終止結(jié)點(diǎn)為止。所有動作狀態(tài)之間的轉(zhuǎn)換流稱之為動作流活動圖的轉(zhuǎn)換也用帶箭頭的直線表示,箭頭的方向指向轉(zhuǎn)入的結(jié)點(diǎn)表示的活動335.2.3對象結(jié)點(diǎn)和對象流活動有時需要輸入值和輸出值,這些輸入輸出需要對象的實(shí)例來定義.這些對象的實(shí)例構(gòu)成活動圖中的對象結(jié)點(diǎn).對象結(jié)點(diǎn)表示活動中輸入或輸出的對象。對象結(jié)點(diǎn)的本質(zhì)是一個實(shí)例或一組同類型的實(shí)例,在活動中主要表示在流中的實(shí)例狀態(tài)如何變化從活動指向?qū)ο蠼Y(jié)點(diǎn)的流或從對象結(jié)點(diǎn)指向活動的流稱為對象流。對輸出值而言,虛線箭頭從活動指向?qū)ο蠼Y(jié)點(diǎn)。對輸入值而言,虛線箭頭從對象結(jié)點(diǎn)指向活動。34對象結(jié)點(diǎn)和對象流的表示:355.3泳道(swimlane)活動圖告訴人們發(fā)生了什么,但是不能告訴該項(xiàng)活動由誰來完成。這就是說,在程序設(shè)計(jì)中,活動圖無法描述出每個活動是由哪個類來完成的。而在領(lǐng)域建模中,它無法描述出每個活動由哪個人或部門來負(fù)責(zé)。泳道技術(shù)是解決這個問題的一種方法。所謂泳道技術(shù),是將活動用虛線分成一些縱向的域,將這些縱向的區(qū)域稱之為泳道。每個區(qū)域代表一一個特定類、或者人、或者部門的責(zé)任區(qū)。將模型中的活動按照職責(zé)組織起來通常很有用。例如,可以將一個商業(yè)組織處理的所有活動組織起來。這種分配可以通過將活動組織成用線分開的不同區(qū)域來表示。由于它們的外觀的緣故,這些區(qū)域被稱作泳道。36帶泳道的活動圖375.4用例的活動圖如果事件流的邏輯復(fù)雜且有許多其他事件流,則利用文本方式描述用例的事件流就讓人覺得較難閱讀和理解。如果使用流程圖來描述事件流,則直觀易懂。UML中的活動圖是事件流的另一種建模方式。因?yàn)榛顒訄D顯示的信息與文本事件流相同,所以可在業(yè)務(wù)模型中用活動圖描述業(yè)務(wù)過程的工作流。385.5活動的分解可以對活動進(jìn)一步分解以獲得更詳細(xì)的描述。這種描述可以是正文、程序代碼或另一張活動圖。當(dāng)分解一個高層活動時,在其細(xì)化的活動圖中必須提供一個起始點(diǎn);同時,當(dāng)高層活動輸出很多觸發(fā)事件時,應(yīng)該畫同樣個數(shù)的結(jié)束點(diǎn)。這樣就可以根據(jù)該孑圖的返回值來決定是哪個觸發(fā)件產(chǎn)生的輸出。39組合活動40組合活動和簡單活動的區(qū)別:組合活動是可任意按大小分解的,而簡單活動雖然是系列的動作組成,但這些動作全執(zhí)行完才算一個完整的活動;只含有一個動作的活動是元活動,即動作.如上例的Login是組合活動,returncard是動作415.6活動圖實(shí)例分析42復(fù)雜活動圖(不要求,自己查閱資料)發(fā)送信號與接收信號:43引腳:表示活動節(jié)點(diǎn)的相應(yīng)參數(shù)擴(kuò)展區(qū):445.7活動圖建模實(shí)例(1)定義活動圖范圍,確定開始、結(jié)束狀態(tài)。(2)添加活動,建模主路徑。(3)尋找分支和并行的情況,建模擴(kuò)展路徑。(4)根據(jù)需要劃分游泳道。45“餐館訂餐”系統(tǒng)的用例圖46“記錄預(yù)約”用例的事件路徑如下:1.接待員輸入要預(yù)約的日期2.系統(tǒng)顯示該日的預(yù)約3.有一張合適的餐桌可以使用,接待員輸入顧客的姓名和電話號碼、預(yù)約的時間、用餐人數(shù)和餐

溫馨提示

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

評論

0/150

提交評論