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

下載本文檔

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

文檔簡介

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

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

溫馨提示

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

評論

0/150

提交評論