狀態(tài)機(jī)圖及其應(yīng)用_第1頁
狀態(tài)機(jī)圖及其應(yīng)用_第2頁
狀態(tài)機(jī)圖及其應(yīng)用_第3頁
狀態(tài)機(jī)圖及其應(yīng)用_第4頁
狀態(tài)機(jī)圖及其應(yīng)用_第5頁
已閱讀5頁,還剩32頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第6章狀態(tài)機(jī)圖及其應(yīng)用《RationalRose2003基礎(chǔ)教程》配套電子教案1內(nèi)容基本概念狀態(tài)圖活動(dòng)圖狀態(tài)機(jī)共享的模型元素活動(dòng)圖專有的模型元素狀態(tài)規(guī)范和活動(dòng)規(guī)范動(dòng)作規(guī)范轉(zhuǎn)換規(guī)范判斷規(guī)范同步規(guī)范21.1理解狀態(tài)機(jī)狀態(tài)機(jī)圖通過對(duì)類對(duì)象的生存周期建立模型來描述對(duì)象隨時(shí)間變化的動(dòng)態(tài)行為,也可以用來描述用例、協(xié)作和方法的動(dòng)態(tài)行為,它是展示狀態(tài)與狀態(tài)轉(zhuǎn)換的圖。狀態(tài)機(jī)是一個(gè)類的對(duì)象所有可能的生命歷程的模型。狀態(tài)機(jī)包括狀態(tài)圖和活動(dòng)圖兩種表示方法。狀態(tài)圖用于對(duì)系統(tǒng)的動(dòng)態(tài)方面建模?;顒?dòng)圖用于對(duì)計(jì)算流程和工作流程建模,展示的主要內(nèi)容是對(duì)象的活動(dòng)狀態(tài)。狀態(tài)圖以狀態(tài)為中心,活動(dòng)圖以活動(dòng)為中心。1基本概念31基本概念1.2狀態(tài)機(jī)操作定義在UML規(guī)格文件中,狀態(tài)機(jī)被定義為是一種行為,說明對(duì)象或交互在它們的聲明周期中為響應(yīng)事件所經(jīng)歷的狀態(tài)序列,以及它們的響應(yīng)和動(dòng)作。創(chuàng)建一個(gè)狀態(tài)圖或活動(dòng)圖時(shí),RationalRose自動(dòng)創(chuàng)建一個(gè)狀態(tài)/活動(dòng)模型。RationalRose限定每個(gè)所有者只能擁有一個(gè)狀態(tài)/活動(dòng)模型。41基本概念1.2狀態(tài)機(jī)操作創(chuàng)建一個(gè)狀態(tài)/活動(dòng)模型:?jiǎn)螕鬊rowse>StateMachineDiagram,在左邊的“StateMachine”下面選擇新創(chuàng)建的狀態(tài)/活動(dòng)模型所要放置的位置:雙擊New:在Title文本框中為圖命名;指定要?jiǎng)?chuàng)建的圖類型:活動(dòng)圖(Activity)或狀態(tài)圖(Statechart);單擊OK按鈕。52狀態(tài)圖狀態(tài)圖顯示一個(gè)對(duì)象從創(chuàng)建到摧毀的整個(gè)生命周期。Rose可以對(duì)每個(gè)類創(chuàng)建一個(gè)或者多個(gè)狀態(tài)圖,在狀態(tài)圖中體現(xiàn)類的所有狀態(tài)和各種過渡轉(zhuǎn)換,狀態(tài)變化是狀態(tài)圖顯示的焦點(diǎn)。狀態(tài)圖可以幫助系統(tǒng)分析員、設(shè)計(jì)人員和開發(fā)人員理解系統(tǒng)中各個(gè)對(duì)象的行為。在Rose中,狀態(tài)圖和類圖相互配合,以便完整描述類的特征。僅用類圖是不夠的,因?yàn)樗荒苊枋鲱悓?duì)象的靜態(tài)特征,而狀態(tài)圖可以對(duì)類對(duì)象動(dòng)態(tài)行為進(jìn)行建模。62狀態(tài)圖2.1狀態(tài)圖所包含的內(nèi)容狀態(tài)圖主要顯示以下3種內(nèi)容:對(duì)象在生命周期中所經(jīng)歷的狀態(tài)序列;誘發(fā)對(duì)象從一個(gè)狀態(tài)轉(zhuǎn)換到另一個(gè)狀態(tài)的事件;狀態(tài)改變所導(dǎo)致的動(dòng)作。72狀態(tài)圖2.2創(chuàng)建狀態(tài)圖步驟如下:在瀏覽器中,用鼠標(biāo)右鍵單擊模型元素(除了屬性、關(guān)系和出現(xiàn)在構(gòu)件視圖中的模型元素);單擊New>StatechartDiagram;或者,單擊Browse>StateMachineDiagram;單擊New;在NewStateMachine對(duì)話框中選中StatechartDiagram復(fù)選框;輸入狀態(tài)圖標(biāo)題;單擊OK按鈕。82狀態(tài)圖2.3狀態(tài)圖工具箱13種常用的工具:可以定制;93活動(dòng)圖3.1使用活動(dòng)圖活動(dòng)圖可以對(duì)多種不同類型的工作流建模。如果從更簡(jiǎn)單或者更具體的角度考慮,可以更容易理解活動(dòng)圖。即,活動(dòng)圖被設(shè)計(jì)用于簡(jiǎn)化描述一個(gè)過程或操作的工作步驟。例如,軟件公司可以用活動(dòng)圖對(duì)一個(gè)軟件的開發(fā)過程建模;會(huì)計(jì)師事務(wù)所可以用活動(dòng)圖對(duì)任意數(shù)目的財(cái)務(wù)往來進(jìn)行建模;公司可以用活動(dòng)圖對(duì)訂單批準(zhǔn)過程進(jìn)行建模;還可以對(duì)諸如求Fibnacci數(shù)列第n個(gè)數(shù)的數(shù)值之類的操作進(jìn)行建模。

103活動(dòng)圖3.2活動(dòng)圖所包含的內(nèi)容活動(dòng)圖包含的內(nèi)容:判斷(Decisions)狀態(tài)(States)泳道(Swimlanes)同步(Synchronizations)對(duì)象(Objects)對(duì)象流(Objectflows)轉(zhuǎn)換(Transitions)活動(dòng)(Activities)初始狀態(tài)(Startstate)終止?fàn)顟B(tài)(Endstate)113活動(dòng)圖3.3創(chuàng)建活動(dòng)圖步驟如下:在瀏覽器中,單擊模型元素(除了屬性、關(guān)系和出現(xiàn)在構(gòu)件視圖中的模型元素);單擊New>ActivityDiagram;在瀏覽器中對(duì)新建的活動(dòng)圖重命名,或者雙擊NewDiagram圖標(biāo)來顯示活動(dòng)圖。123活動(dòng)圖3.4活動(dòng)圖工具箱19種常用工具可以定制133活動(dòng)圖3.5理解工作流定義是一個(gè)良好定義的動(dòng)作序列,執(zhí)行時(shí)將產(chǎn)生一個(gè)可觀察的值,或者產(chǎn)生一個(gè)個(gè)體或?qū)嶓w的對(duì)象。建摸目的理解一個(gè)組織的結(jié)構(gòu)和動(dòng)態(tài)特性;確??蛻?、最終用戶和開發(fā)員對(duì)組織形成一致的理解;導(dǎo)出用于支持組織的系統(tǒng)需求。143活動(dòng)圖3.5理解工作流識(shí)別工作流誰(who)或什么(what)將對(duì)工作流負(fù)總責(zé)?要實(shí)現(xiàn)目標(biāo),需要執(zhí)行哪些活動(dòng)?誰(who)將對(duì)執(zhí)行各種活動(dòng)和狀態(tài)負(fù)責(zé)?活動(dòng)會(huì)創(chuàng)建或者修改對(duì)象嗎?考察模型中的其他元素,活動(dòng)和狀態(tài)應(yīng)該在何處出現(xiàn)?為什么這個(gè)活動(dòng)或狀態(tài)需要出現(xiàn)?153活動(dòng)圖3.6用活動(dòng)圖對(duì)工作流建模步驟:識(shí)別工作流的目標(biāo):確定從起始狀態(tài)到終止?fàn)顟B(tài)工作流的前置條件和后置條件;定義并識(shí)別為實(shí)現(xiàn)目標(biāo)而必須發(fā)生的活動(dòng)和狀態(tài),按邏輯順序?qū)⑺鼈兎胚M(jìn)模型圖,并對(duì)它們命名;定義并畫出所有要在模型圖中創(chuàng)建和修改的對(duì)象,將這些對(duì)象和活動(dòng)同對(duì)象流連接起來;按泳道決定誰(who)或什么(what)將對(duì)執(zhí)行這些活動(dòng)和狀態(tài)負(fù)責(zé);從主流程開始,用轉(zhuǎn)換符號(hào)連接所有的元素;在流程可能要分裂出一個(gè)候補(bǔ)流(alternateflow)的地方放置一個(gè)判斷;評(píng)估模型圖,看是否有并發(fā)工作流,如果有,用同步表示分叉(forking)和結(jié)合(joining);在每個(gè)模型元素的規(guī)范窗口中設(shè)置動(dòng)作、觸發(fā)器和監(jiān)護(hù)條件。164狀態(tài)機(jī)共享的模型元素4.1狀態(tài)定義狀態(tài)(state)是指在對(duì)象的生命周期中滿足某些條件、執(zhí)行某些活動(dòng)或等待某些事件的條件(condition)或狀況(situation)圖形表示圓角矩形表示,狀態(tài)的名稱放在圓角矩形中174狀態(tài)機(jī)共享的模型元素4.2起始狀態(tài)和終止?fàn)顟B(tài)起始狀態(tài)又稱“初始狀態(tài)”,在狀態(tài)圖中,起始狀態(tài)顯式地給出一個(gè)狀態(tài)機(jī)執(zhí)行的起始點(diǎn),表示導(dǎo)致轉(zhuǎn)換(transition)的事件中的起始事件;在活動(dòng)圖中,起始狀態(tài)顯式地給出一個(gè)工作流的起始點(diǎn)。一個(gè)狀態(tài)機(jī)只能有一個(gè)起始狀態(tài)。184狀態(tài)機(jī)共享的模型元素4.2起始狀態(tài)和終止?fàn)顟B(tài)終止?fàn)顟B(tài)表示活動(dòng)的結(jié)束或者一個(gè)最終狀態(tài),即對(duì)象從內(nèi)存中刪除之前所處的狀態(tài)狀態(tài)圖和活動(dòng)圖都可以有0個(gè)、1個(gè)或者多個(gè)終止?fàn)顟B(tài)。194狀態(tài)機(jī)共享的模型元素4.3狀態(tài)轉(zhuǎn)換說明一個(gè)處于源狀態(tài)的對(duì)象將要執(zhí)行某種(些)指定的動(dòng)作,并且當(dāng)特定的事件發(fā)生或者某種條件被滿足時(shí),將進(jìn)入目標(biāo)狀態(tài)。狀態(tài)轉(zhuǎn)換是兩個(gè)狀態(tài)之間、兩個(gè)活動(dòng)之間或者一個(gè)活動(dòng)和一個(gè)狀態(tài)之間的關(guān)系??梢詮囊粋€(gè)狀態(tài)發(fā)出一個(gè)或多個(gè)狀態(tài)轉(zhuǎn)換,前提是轉(zhuǎn)換要唯一。從一個(gè)狀態(tài)發(fā)出的轉(zhuǎn)換不能具有相同的事件,除非事件中有多個(gè)條件。轉(zhuǎn)換既可以出現(xiàn)在狀態(tài)圖中,也可以出現(xiàn)在活動(dòng)圖中圖形表示:204狀態(tài)機(jī)共享的模型元素4.3狀態(tài)轉(zhuǎn)換狀態(tài)轉(zhuǎn)換通常采用如下的語法進(jìn)行標(biāo)記:事件名(參量)[監(jiān)護(hù)條件]/動(dòng)作^目標(biāo).發(fā)送事件(參量)轉(zhuǎn)換及轉(zhuǎn)換動(dòng)作轉(zhuǎn)換種類含義UML語法入口動(dòng)作進(jìn)入某一狀態(tài)時(shí)執(zhí)行的動(dòng)作entry/action出口動(dòng)作離開某一狀態(tài)時(shí)執(zhí)行的動(dòng)作exit/action外部轉(zhuǎn)換引起狀態(tài)改變的轉(zhuǎn)換或自身轉(zhuǎn)換,同時(shí)執(zhí)行一個(gè)具體的動(dòng)作,包括引起入口動(dòng)作和出口動(dòng)作被執(zhí)行的轉(zhuǎn)換e(a:T)[exp]/action內(nèi)部轉(zhuǎn)換引起一個(gè)動(dòng)作的執(zhí)行但不改變狀態(tài)或不引起入口動(dòng)作和出口動(dòng)作的執(zhí)行e(a:T)[exp]/action214狀態(tài)機(jī)共享的模型元素4.4轉(zhuǎn)換到自身定義包含的源狀態(tài)(活動(dòng))和目標(biāo)狀態(tài)(活動(dòng))相同,所包含的動(dòng)作和事件與轉(zhuǎn)換完全相同。圖形表示224狀態(tài)機(jī)共享的模型元素4.5判斷定義表示工作流基于監(jiān)護(hù)條件將出現(xiàn)分支的位置圖形表示判斷在活動(dòng)圖和狀態(tài)圖中表示為一個(gè)棱形234狀態(tài)機(jī)共享的模型元素4.6同步定義在活動(dòng)圖和狀態(tài)圖中,同步可視化地定義那些表示并行工作流的分叉和結(jié)合在瀏覽器中并不顯示同步圖形表示:一條粗的水平或垂直的棒條244狀態(tài)機(jī)共享的模型元素4.7例子:機(jī)器人自動(dòng)傳輸?shù)臓顟B(tài)圖起始狀態(tài)終止?fàn)顟B(tài)超狀態(tài)和子狀態(tài)嵌套狀態(tài)歷史狀態(tài)255活動(dòng)圖專有的模型元素5.1活動(dòng)定義活動(dòng)表示一個(gè)工作流中“任務(wù)”或“職責(zé)”的執(zhí)行,也可以表示某個(gè)過程中一條語句的執(zhí)行。一個(gè)活動(dòng)類似于狀態(tài),但它表達(dá)了這樣一種含義:在一個(gè)活動(dòng)中沒有明顯的等待(事件)。圖形表示265活動(dòng)圖專有的模型元素5.2泳道定義將活動(dòng)圖中的活動(dòng)分組,每一組指明了誰(who)或者是什么(what)對(duì)執(zhí)行活動(dòng)或狀態(tài)負(fù)責(zé)泳道的兩個(gè)重要特點(diǎn):指明了活動(dòng)圖中的活動(dòng)主體轉(zhuǎn)換可以跨越不同的泳道在活動(dòng)圖中創(chuàng)建泳道:點(diǎn)擊活動(dòng)圖工具箱中的泳道圖標(biāo)在活動(dòng)圖中要?jiǎng)?chuàng)建泳道的位置點(diǎn)擊鼠標(biāo).刪除泳道點(diǎn)擊活動(dòng)圖中的泳道頭(泳道名稱)按Del鍵將泳道從活動(dòng)圖中刪除;或者按Ctrl+D將泳道從模型中刪除275活動(dòng)圖專有的模型元素5.3對(duì)象RationalRose2003不支持專門的對(duì)象圖建模,但是允許對(duì)象出現(xiàn)在活動(dòng)圖、協(xié)作圖和順序圖中活動(dòng)圖中的對(duì)象可以表示活動(dòng)之間的輸入輸出關(guān)系對(duì)象可以以多種狀態(tài)出現(xiàn)285活動(dòng)圖專有的模型元素5.4對(duì)象流在UML規(guī)格文件中,對(duì)象流是指將對(duì)象狀態(tài)作為輸入或輸出的控制流?;顒?dòng)圖中的對(duì)象流表示對(duì)象和一個(gè)活動(dòng)的關(guān)系,對(duì)象可以創(chuàng)建一個(gè)對(duì)象流(作為輸出),也可以使用對(duì)象流(作為輸入)。圖形表示用虛線箭頭來表示對(duì)象流295活動(dòng)圖專有的模型元素5.5理解對(duì)象和對(duì)象流對(duì)象可以以不同的狀態(tài)出現(xiàn)多次;活動(dòng)可以改變對(duì)象的狀態(tài);對(duì)象通過對(duì)象流和活動(dòng)相連。306狀態(tài)規(guī)范和活動(dòng)規(guī)范狀態(tài)(起始狀態(tài)和終止?fàn)顟B(tài))和活動(dòng)的規(guī)范窗口都包含下列標(biāo)簽:General標(biāo)簽Actions標(biāo)簽Transitions標(biāo)簽Swimlanes標(biāo)簽1)General標(biāo)簽復(fù)選標(biāo)記State/activityhistory:狀態(tài)/活動(dòng)歷史,歷史提供了一種通過子狀態(tài)直接轉(zhuǎn)換到最近訪問過的狀態(tài)的機(jī)制。316狀態(tài)規(guī)范和活動(dòng)規(guī)范2)Actions標(biāo)簽Type:類型字段標(biāo)識(shí)符欄列出了動(dòng)作規(guī)范中指定的動(dòng)作種類ActionExpression:列出了4種可能的時(shí)間選項(xiàng),規(guī)定了一個(gè)動(dòng)作執(zhí)行的時(shí)機(jī)和被執(zhí)行動(dòng)作的類型。見動(dòng)作規(guī)范的Detail標(biāo)簽327動(dòng)作規(guī)范7.1創(chuàng)建一個(gè)新的動(dòng)作在狀態(tài)圖或活動(dòng)圖規(guī)范窗口的Actions標(biāo)簽中:?jiǎn)螕羰髽?biāo)右鍵,顯示快捷菜單;單擊Insert添加一個(gè)條目(entry)項(xiàng);雙擊添加的“Entry/”項(xiàng),顯示動(dòng)作規(guī)范窗口;在Name欄輸入動(dòng)作描述。如果該欄未被激活,在Tyep欄單擊Action。337動(dòng)作規(guī)范7.2狀態(tài)和活動(dòng)動(dòng)作在一個(gè)狀態(tài)或活動(dòng)中,有以下4中可能的動(dòng)作:OnEntryOnExitDoOnEvent1)OnEventEvent:對(duì)一個(gè)在時(shí)間和空間上占有一定位置的有意義事情的規(guī)格說明Arguments:由所有與事件相關(guān)的可選參量組成Condition:可能包含一個(gè)條件布爾表達(dá)式348轉(zhuǎn)換規(guī)范8.1General標(biāo)簽8.2Detail標(biāo)簽監(jiān)護(hù)條件(GuardCondition)條件狀態(tài)轉(zhuǎn)換只有當(dāng)條件表達(dá)式為真時(shí)才被觸發(fā)。監(jiān)護(hù)條件顯示在轉(zhuǎn)換的附近,表示在方括號(hào)內(nèi):

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論