第7章狀態(tài)機(jī)圖.ppt_第1頁
第7章狀態(tài)機(jī)圖.ppt_第2頁
第7章狀態(tài)機(jī)圖.ppt_第3頁
第7章狀態(tài)機(jī)圖.ppt_第4頁
第7章狀態(tài)機(jī)圖.ppt_第5頁
已閱讀5頁,還剩62頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、狀態(tài)圖,7.1 幾個概念 7.2 狀態(tài) 7.3 狀態(tài)轉(zhuǎn)換 7.4 事件 7.5 復(fù)合狀態(tài) 7.6 并發(fā)狀態(tài) 7.7 控制結(jié)點 7.8 子機(jī)狀態(tài) 7.9 狀態(tài)機(jī) 7.10 狀態(tài)機(jī)圖實例,第7章,狀態(tài)圖,7.1.1 狀態(tài) 7.1.2 狀態(tài)機(jī) 7.1.3 狀態(tài)機(jī)圖,第7章,7.1 幾個概念,狀態(tài)(state):指事物在其生命周期中滿足某些條件、執(zhí)行某些操作或等待某些事件而持續(xù)的一種穩(wěn)定的狀況 。,待用 運(yùn)行 故障,狀態(tài)機(jī)(state machine ): 描述一個事物在其生命期中,所具有的狀態(tài),以及因事件觸發(fā)而引起的狀態(tài)的各種轉(zhuǎn)換。,狀態(tài)機(jī)(state machine diagram ): 是UML

2、用來描述狀態(tài)機(jī)的圖,在UML2.0版本之前,狀態(tài)機(jī)圖被稱為狀態(tài)圖。狀態(tài)機(jī)圖由狀態(tài)結(jié)點、控制結(jié)點和轉(zhuǎn)換邊構(gòu)成。,狀態(tài)結(jié)點,控制結(jié)點,轉(zhuǎn)換邊,狀態(tài)圖,7.2.1 狀態(tài)的概念 7.2.2 狀態(tài)的類型 7.2.3 狀態(tài)的動作,第7章,7.2 狀態(tài),狀態(tài)(state):指事物在其生命周期中滿足某些條件、執(zhí)行某些操作或等待某些事件而持續(xù)的一種穩(wěn)定的狀況 。 狀態(tài)表示為: 狀態(tài)名若用英文,第一個字母要大寫。,可分為以下三類: 簡單狀態(tài):也被稱為原子狀態(tài),不包含子狀態(tài)和子機(jī)狀態(tài)。 復(fù)合狀態(tài):內(nèi)部包含子狀態(tài)的狀態(tài)。 子機(jī)狀態(tài):狀態(tài)機(jī)作為子狀態(tài)的狀態(tài)。,可分為以下三類: 簡單狀態(tài): 復(fù)合狀態(tài): 子機(jī)狀態(tài):,一個狀

3、態(tài)內(nèi)部所包括的動作或事件, 在當(dāng)前 狀態(tài)下,狀態(tài)機(jī)會執(zhí)行這些動作,可以有: 入口動作:進(jìn)入該狀態(tài)自動執(zhí)行的第一個動作,表示為:extry/do shing , 例如 extry/do dooropen。 出口狀態(tài):退出該狀態(tài)自動執(zhí)行的最后一個動作,表示為:exit/do shing, 例如,exit/door close 。 內(nèi)部變遷:在該狀態(tài)下做的動作,不引起狀態(tài)變化。表示為: do/thing,例如,do/check up on work 。 延遲事件:在該狀態(tài)下,如果發(fā)生某事件,將被延時處理。表示為:事件/defer,例如,print/defer(15),表示打印事件將被延遲15秒 。,

4、狀態(tài)圖,7.3.1 狀態(tài)轉(zhuǎn)換的概念 7.3.2 狀態(tài)轉(zhuǎn)換的三要素,第7章,7.3 狀態(tài)的轉(zhuǎn)換,狀態(tài)轉(zhuǎn)換(state transition):是兩個狀態(tài)之間的一種有向關(guān)系,表示從源狀態(tài)轉(zhuǎn)換到目標(biāo)狀態(tài)。狀態(tài)轉(zhuǎn)換用一個帶箭頭的實線表示,箭頭由源狀態(tài)指向目標(biāo)狀態(tài)。,觸發(fā)事件:觸發(fā)狀態(tài)轉(zhuǎn)換的條件,如開門,入庫,開電源等。如果沒有觸發(fā)事件,指源狀態(tài)執(zhí)行完后,自動轉(zhuǎn)換到目標(biāo)狀態(tài)。,觸發(fā)事件: 監(jiān)護(hù)條件:用來監(jiān)護(hù)狀態(tài)轉(zhuǎn)換。在事件發(fā)生后,如果監(jiān)護(hù)條件為真,則執(zhí)行動作,并轉(zhuǎn)換狀態(tài)。如果監(jiān)護(hù)條件為假,則不執(zhí)行轉(zhuǎn)換動作,也不實施狀態(tài)轉(zhuǎn)換。 如果沒有監(jiān)護(hù)條件,則不作條件判斷,在事件發(fā)生后直接執(zhí)行轉(zhuǎn)換動作。,觸發(fā)事件:

5、監(jiān)護(hù)條件: 轉(zhuǎn)換動作:在事件發(fā)生后所執(zhí)行的一組動作,并把狀態(tài)由源狀態(tài)轉(zhuǎn)換到目標(biāo)狀態(tài)。在動作前置一個“/” 。,狀態(tài)圖,7.4.1 事件的概念 7.4.2 事件的性質(zhì) 7.4.3 事件的類型 7.4.4 幾種事件,第7章,7.4 事件,事件(event):指所發(fā)生的瞬時事情,能引起狀態(tài)變換。 例如: 按“開關(guān)”,能開啟機(jī)器 “雙擊鼠標(biāo)”打開窗口。,瞬時態(tài):事件在瞬時發(fā)生,沒有時間延遲。 原子性:事件不可再分割,按發(fā)生的位置分: 外部事件:在系統(tǒng)外部發(fā)生的事件,例如,按按鈕就在外部發(fā)生。 內(nèi)部事件:在系統(tǒng)內(nèi)部發(fā)生的事件,例如,溢出事件 按事件的性質(zhì)分: 調(diào)用事件,信號事件, 變化事件,時間事件,調(diào)

6、用事件(call event):表示發(fā)送對象發(fā)給接收對象的調(diào)用消息的接收消息事件,并由該事件觸發(fā)接收對象的狀態(tài)轉(zhuǎn)換。,信號事件(signal event):表示發(fā)送對象發(fā)給接收對象的信號消息的接收消息事件,并由該事件觸發(fā)接收對象的狀態(tài)轉(zhuǎn)換。,改變事件(change event):表示當(dāng)布爾表達(dá)式的值改變?yōu)檎鏁r所激發(fā)的事件。系統(tǒng)將一直檢測改變事件中的布爾表達(dá)式的值,只要它的值改變?yōu)檎妫撌录捅患ぐl(fā)。改變事件一般用關(guān)鍵字when開頭的布爾表達(dá)式表示,當(dāng)表達(dá)式的值由假變?yōu)檎鏁r,事件將發(fā)生。 例如:when (systemtime=12:00),表示當(dāng)系統(tǒng)時鐘到達(dá)12點時,激發(fā)該事件。,時間事件(t

7、ime event):是經(jīng)過一定的時間或者到達(dá)某個絕對時間時發(fā)生的事件。 用關(guān)鍵字after及時間值表示相對時間,例如,“after(10sec.)”,表示從現(xiàn)在算起,10秒之后將發(fā)生該事件。 用關(guān)鍵字at及時間值表示絕對時間,例如,“at 2012-10-1”表示到2012年10月1日引發(fā)該事件。,狀態(tài)圖,7.5.1 復(fù)合狀態(tài)的含義 7.5.2 復(fù)合狀態(tài)的性質(zhì) 7.5.3 復(fù)合狀態(tài)的類型,第7章,7.5 復(fù)合狀態(tài),復(fù)合狀態(tài):指包含子狀態(tài)的狀態(tài)。 例如,ATM機(jī)的狀態(tài)機(jī)圖:,事物在復(fù)合狀態(tài)時,意味著它處于其中一個子狀態(tài);事物如果在某一個復(fù)合狀態(tài)的子狀態(tài),它一定處于該復(fù)合狀態(tài)。 復(fù)合狀態(tài)允許嵌套

8、,子狀態(tài)可以是簡單狀態(tài)、復(fù)合狀態(tài),也可以是子機(jī)狀態(tài)。,復(fù)合狀態(tài)具有始態(tài),轉(zhuǎn)入一個復(fù)合狀態(tài)等價于轉(zhuǎn)入其始態(tài)。,復(fù)合狀態(tài)可以有終態(tài),達(dá)到復(fù)合狀態(tài)的終態(tài),將從復(fù)合狀態(tài)轉(zhuǎn)出。,復(fù)合狀態(tài)轉(zhuǎn)換的類型,7.5.3,外部轉(zhuǎn)換:在復(fù)合狀態(tài)與其他狀態(tài)之間發(fā)生的狀態(tài)轉(zhuǎn)換,以及復(fù)合狀態(tài)的自轉(zhuǎn)換。外部轉(zhuǎn)換表示離開一個復(fù)合狀態(tài)進(jìn)入另外一個狀態(tài),或者進(jìn)入復(fù)合狀態(tài)自身。 局部轉(zhuǎn)換:復(fù)合狀態(tài)內(nèi)部子狀態(tài)之間的轉(zhuǎn)換,或者復(fù)合狀態(tài)轉(zhuǎn)換到其中某個子狀態(tài)。,狀態(tài)圖,7.6.1 并發(fā)狀態(tài)的含義 7.6.2 同步狀態(tài),第7章,7.6 并發(fā)狀態(tài),并發(fā)狀態(tài):在一個狀態(tài)機(jī)或一個復(fù)合狀態(tài)中,如果同時存在相互可以獨(dú)立的幾組狀態(tài),則稱這幾組狀態(tài)是并發(fā)狀

9、態(tài)(concurrent state)。 例如:,同步狀態(tài):指多個并發(fā)區(qū)間中的狀態(tài)在轉(zhuǎn)換過程彼此存在同步關(guān)系,一個區(qū)間中的一個轉(zhuǎn)換需要等到另一個區(qū)間中的某個轉(zhuǎn)換發(fā)生后才能進(jìn)行。 例如:,狀態(tài)圖,7.7.1 初始狀態(tài) 7.7.2 分叉與匯合 7.7.3 匯接 7.7.4 選擇 7.7.5 歷史狀態(tài) 7.7.6 終止?fàn)顟B(tài) 7.7.7 入口點與出口點,第7章,7.7 控制結(jié)點,初始狀態(tài) (initial state) :簡稱始態(tài),表示狀態(tài)機(jī)的起始,始態(tài)用實心園表示。一個復(fù)合狀態(tài)或子機(jī)狀態(tài)也有其始態(tài)。一個狀態(tài)機(jī)可以有多個始態(tài),存在多個始態(tài)的狀態(tài)機(jī)一定存在狀態(tài)的并發(fā),在并發(fā)狀態(tài)的一個區(qū)間只能有一個始態(tài)。

10、 初始狀態(tài)表示一個狀態(tài)機(jī)從此結(jié)點開始,但事物不會此狀態(tài)停留,會立即轉(zhuǎn)換到初始狀態(tài)所連接的第下一個狀態(tài)。 初始狀態(tài)只有輸出,沒有輸入。,分叉 (fork) :指將一個轉(zhuǎn)換分成兩個或多個轉(zhuǎn)換,用來描述需要并發(fā)的狀態(tài)。 匯合 (join) :指將從并發(fā)狀態(tài)來的轉(zhuǎn)換合并形成一個轉(zhuǎn)換,用來描述多個并發(fā)狀態(tài)的控制同步。,匯接(junction):用來匯接多個轉(zhuǎn)換,以簡化轉(zhuǎn)換路徑。匯接的符號與初始狀態(tài)的符號相同,但它允許連接多個轉(zhuǎn)換的輸入和多個輸出。,選擇(choice ):用來實現(xiàn)根據(jù)條件判斷,轉(zhuǎn)換到不同目標(biāo)狀態(tài)。用菱形表示選擇,有一個輸入邊到選擇,多個輸出邊由選擇到目標(biāo)狀態(tài)結(jié)點。,歷史狀態(tài)(histor

11、y state ):為一個狀態(tài)機(jī)或復(fù)合狀態(tài)提供了一種在退出狀態(tài)時記憶當(dāng)前活動所處的子狀態(tài),并能夠返回到該子狀態(tài)的機(jī)制。,歷史狀態(tài),終止?fàn)顟B(tài)(final state ):被簡稱為終態(tài),表示一個狀態(tài)機(jī)、一個復(fù)合狀態(tài),或一個區(qū)間狀態(tài)的結(jié)束。終止?fàn)顟B(tài)用“牛眼”符號表示。,終止?fàn)顟B(tài),入口點(entrypoint ):是其它狀態(tài)轉(zhuǎn)換到一個狀態(tài)機(jī)或復(fù)合狀態(tài)的始態(tài)的一個進(jìn)入點。入口點用小圓圈表示,被放置到狀態(tài)機(jī)或復(fù)合狀態(tài)的邊界上。 出口點(exitpoint ):是狀態(tài)機(jī)或復(fù)合狀態(tài)到其他狀態(tài)的一個轉(zhuǎn)出點。出口點用帶叉的小圓圈表示,也被放置到狀態(tài)機(jī)或復(fù)合狀態(tài)的邊界上。,入口點和出口點的例子:,狀態(tài)圖,第7章,7

12、.7 子機(jī)狀態(tài),子機(jī)狀態(tài)(submachine state ):是指把一個狀態(tài)機(jī)作為另外一個狀態(tài)機(jī)的子狀態(tài)。包含子機(jī)狀態(tài)的狀態(tài)機(jī)被稱為母狀態(tài)機(jī)。母狀態(tài)機(jī)是以引用的方式把一個已經(jīng)存在的狀態(tài)機(jī)作為自己子狀態(tài),在母狀態(tài)機(jī)中子機(jī)狀態(tài)作為一個子狀態(tài),但它自身仍是一個完整的狀態(tài)機(jī)。,狀態(tài)圖,7.8.1 狀態(tài)機(jī)的概念 7.8.2 狀態(tài)機(jī)的用途 7.8.3 狀態(tài)機(jī)建模規(guī)則 7.8.4 狀態(tài)機(jī)建模 7.8.5 狀態(tài)機(jī)與其它的比較,第7章,7.8 狀態(tài)機(jī),狀態(tài)機(jī)(state machine ): 描述一個事物在其生命期中,所具有的狀態(tài),以及因事件觸發(fā)而引起的狀態(tài)的各種轉(zhuǎn)換。,對象狀態(tài)建模: 用例狀態(tài)建模: 交互狀

13、態(tài)建模: 構(gòu)件狀態(tài)建模:,1 對象狀態(tài)建模: 描述一個對象在其生命期中,所具有的狀態(tài),以及因事件觸發(fā)而引起的狀態(tài)的各種轉(zhuǎn)換。 根據(jù)其用途,可分為行為狀態(tài)機(jī)和協(xié)議狀態(tài)機(jī)。,行為狀態(tài)機(jī):描述一個對象在其生命周期中可能處的各種狀態(tài),以及因事件的觸發(fā)而引起狀態(tài)之間轉(zhuǎn)換的行為規(guī)則與方式 。前面的例子全部屬于行為狀態(tài)機(jī),協(xié)議狀態(tài)機(jī):描述一個對象在其生命周期中可能處的狀態(tài),以及因?qū)ο笏x操作的一種允許的調(diào)用序列,使得對象可能經(jīng)歷的狀態(tài)變化過程。,2 用例狀態(tài)建模:一個用例在其執(zhí)行過程中也會處于不同的狀態(tài),可以用狀態(tài)機(jī)描述用例的狀態(tài),及其轉(zhuǎn)換 。,3 交互狀態(tài)建模:一個交互描述為完成某項功能,系統(tǒng)中若干個

14、對象相互交互消息的過程。一個交互過程也會存在多種狀態(tài),及其狀態(tài)的轉(zhuǎn)換,可以用狀態(tài)機(jī)圖來描述交互狀態(tài)的轉(zhuǎn)換。,訂貨交互的狀態(tài)機(jī):,4 構(gòu)件狀態(tài)建模:構(gòu)件封裝了多個類,構(gòu)件在其生命周期中也會存在不同狀態(tài),可以用狀態(tài)機(jī)對構(gòu)件的狀態(tài)及其轉(zhuǎn)換進(jìn)行建模。,狀態(tài)機(jī)建模應(yīng)該遵循下面規(guī)則: 1)初始狀態(tài)只有轉(zhuǎn)出,沒有轉(zhuǎn)入。初始狀態(tài)的轉(zhuǎn)出無觸發(fā)事件、無監(jiān)護(hù)條件。 2)狀態(tài)機(jī)最少應(yīng)該有一個初態(tài),如果存在并發(fā)可以有多個初始狀態(tài)。 3)狀態(tài)機(jī)最少應(yīng)該有一個終態(tài),允許存在多個終態(tài)。 4)除初態(tài)外,其他所有狀態(tài)都至少應(yīng)具有一個轉(zhuǎn)入。 5)除終態(tài)外,其他所有狀態(tài)都至少應(yīng)具有一個轉(zhuǎn)出。 6)一個狀態(tài)機(jī)中不允許存在兩個同名的狀態(tài)

15、。,狀態(tài)機(jī)建模的基本步驟: 1)確定對哪一個類元進(jìn)行建模。 2)從類元實例的創(chuàng)建(始態(tài))到被撤銷(終態(tài)),確定實例可能經(jīng)歷的所有狀態(tài)。 3)分析實例從一種狀態(tài)轉(zhuǎn)換到另外一種狀態(tài)可能發(fā)生的事件。 4)確定當(dāng)觸發(fā)事件發(fā)生時,實例應(yīng)該執(zhí)行的動作。 5)對建模結(jié)果進(jìn)行精化和細(xì)化。 6)檢查與驗證狀態(tài)機(jī)圖。,1)狀態(tài)機(jī)圖用于事物狀態(tài)及其變換的建模;活動圖用于過程流程建模 。 2)狀態(tài)結(jié)點表示事物一個狀態(tài),活動結(jié)點表示一個過程中的一個動作。 3)交互圖用于多個對象為完成一個任務(wù)的交互關(guān)系,狀態(tài)機(jī)圖表示一個事物所處的狀態(tài),及其變換。 4)可以用狀態(tài)機(jī)描述一個交互過程中所處的狀態(tài)及其轉(zhuǎn)換,用活動圖描述一個交互執(zhí)行的流程。,狀態(tài)圖,7.9.1 手機(jī)狀態(tài)機(jī)圖 7.9.2 電梯狀態(tài)機(jī)圖 7.9.3 銀行賬戶狀態(tài)機(jī)圖 7.9.4 狀態(tài)機(jī)建模 7.9.5 狀態(tài)機(jī)與其它的比較,第7章,

溫馨提示

  • 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

提交評論