第7章狀態(tài)機(jī)圖.ppt_第1頁(yè)
第7章狀態(tài)機(jī)圖.ppt_第2頁(yè)
第7章狀態(tài)機(jī)圖.ppt_第3頁(yè)
第7章狀態(tài)機(jī)圖.ppt_第4頁(yè)
第7章狀態(tài)機(jī)圖.ppt_第5頁(yè)
已閱讀5頁(yè),還剩62頁(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、狀態(tài)圖,7.1 幾個(gè)概念 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é)點(diǎn) 7.8 子機(jī)狀態(tài) 7.9 狀態(tài)機(jī) 7.10 狀態(tài)機(jī)圖實(shí)例,第7章,狀態(tài)圖,7.1.1 狀態(tài) 7.1.2 狀態(tài)機(jī) 7.1.3 狀態(tài)機(jī)圖,第7章,7.1 幾個(gè)概念,狀態(tài)(state):指事物在其生命周期中滿足某些條件、執(zhí)行某些操作或等待某些事件而持續(xù)的一種穩(wěn)定的狀況 。,待用 運(yùn)行 故障,狀態(tài)機(jī)(state machine ): 描述一個(gè)事物在其生命期中,所具有的狀態(tài),以及因事件觸發(fā)而引起的狀態(tài)的各種轉(zhuǎn)換。,狀態(tài)機(jī)(state machine diagram ): 是UML

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

3、態(tài)內(nèi)部所包括的動(dòng)作或事件, 在當(dāng)前 狀態(tài)下,狀態(tài)機(jī)會(huì)執(zhí)行這些動(dòng)作,可以有: 入口動(dòng)作:進(jìn)入該狀態(tài)自動(dòng)執(zhí)行的第一個(gè)動(dòng)作,表示為:extry/do shing , 例如 extry/do dooropen。 出口狀態(tài):退出該狀態(tài)自動(dòng)執(zhí)行的最后一個(gè)動(dòng)作,表示為:exit/do shing, 例如,exit/door close 。 內(nèi)部變遷:在該狀態(tài)下做的動(dòng)作,不引起狀態(tài)變化。表示為: do/thing,例如,do/check up on work 。 延遲事件:在該狀態(tài)下,如果發(fā)生某事件,將被延時(shí)處理。表示為:事件/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):是兩個(gè)狀態(tài)之間的一種有向關(guān)系,表示從源狀態(tài)轉(zhuǎn)換到目標(biāo)狀態(tài)。狀態(tài)轉(zhuǎn)換用一個(gè)帶箭頭的實(shí)線表示,箭頭由源狀態(tài)指向目標(biāo)狀態(tài)。,觸發(fā)事件:觸發(fā)狀態(tài)轉(zhuǎn)換的條件,如開門,入庫(kù),開電源等。如果沒(méi)有觸發(fā)事件,指源狀態(tài)執(zhí)行完后,自動(dòng)轉(zhuǎn)換到目標(biāo)狀態(tài)。,觸發(fā)事件: 監(jiān)護(hù)條件:用來(lái)監(jiān)護(hù)狀態(tài)轉(zhuǎn)換。在事件發(fā)生后,如果監(jiān)護(hù)條件為真,則執(zhí)行動(dòng)作,并轉(zhuǎn)換狀態(tài)。如果監(jiān)護(hù)條件為假,則不執(zhí)行轉(zhuǎn)換動(dòng)作,也不實(shí)施狀態(tài)轉(zhuǎn)換。 如果沒(méi)有監(jiān)護(hù)條件,則不作條件判斷,在事件發(fā)生后直接執(zhí)行轉(zhuǎn)換動(dòng)作。,觸發(fā)事件:

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

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

7、ime event):是經(jīng)過(guò)一定的時(shí)間或者到達(dá)某個(gè)絕對(duì)時(shí)間時(shí)發(fā)生的事件。 用關(guān)鍵字after及時(shí)間值表示相對(duì)時(shí)間,例如,“after(10sec.)”,表示從現(xiàn)在算起,10秒之后將發(fā)生該事件。 用關(guān)鍵字at及時(shí)間值表示絕對(duì)時(shí)間,例如,“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)時(shí),意味著它處于其中一個(gè)子狀態(tài);事物如果在某一個(gè)復(fù)合狀態(tài)的子狀態(tài),它一定處于該復(fù)合狀態(tài)。 復(fù)合狀態(tài)允許嵌套

8、,子狀態(tài)可以是簡(jiǎn)單狀態(tài)、復(fù)合狀態(tài),也可以是子機(jī)狀態(tài)。,復(fù)合狀態(tài)具有始態(tài),轉(zhuǎn)入一個(gè)復(fù)合狀態(tài)等價(jià)于轉(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)換表示離開一個(gè)復(fù)合狀態(tài)進(jìn)入另外一個(gè)狀態(tài),或者進(jìn)入復(fù)合狀態(tài)自身。 局部轉(zhuǎn)換:復(fù)合狀態(tài)內(nèi)部子狀態(tài)之間的轉(zhuǎn)換,或者復(fù)合狀態(tài)轉(zhuǎn)換到其中某個(gè)子狀態(tài)。,狀態(tài)圖,7.6.1 并發(fā)狀態(tài)的含義 7.6.2 同步狀態(tài),第7章,7.6 并發(fā)狀態(tài),并發(fā)狀態(tài):在一個(gè)狀態(tài)機(jī)或一個(gè)復(fù)合狀態(tài)中,如果同時(shí)存在相互可以獨(dú)立的幾組狀態(tài),則稱這幾組狀態(tài)是并發(fā)狀

9、態(tài)(concurrent state)。 例如:,同步狀態(tài):指多個(gè)并發(fā)區(qū)間中的狀態(tài)在轉(zhuǎn)換過(guò)程彼此存在同步關(guān)系,一個(gè)區(qū)間中的一個(gè)轉(zhuǎn)換需要等到另一個(gè)區(qū)間中的某個(gè)轉(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 入口點(diǎn)與出口點(diǎn),第7章,7.7 控制結(jié)點(diǎn),初始狀態(tài) (initial state) :簡(jiǎn)稱始態(tài),表示狀態(tài)機(jī)的起始,始態(tài)用實(shí)心園表示。一個(gè)復(fù)合狀態(tài)或子機(jī)狀態(tài)也有其始態(tài)。一個(gè)狀態(tài)機(jī)可以有多個(gè)始態(tài),存在多個(gè)始態(tài)的狀態(tài)機(jī)一定存在狀態(tài)的并發(fā),在并發(fā)狀態(tài)的一個(gè)區(qū)間只能有一個(gè)始態(tài)。

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

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

12、.7 子機(jī)狀態(tài),子機(jī)狀態(tài)(submachine state ):是指把一個(gè)狀態(tài)機(jī)作為另外一個(gè)狀態(tài)機(jī)的子狀態(tài)。包含子機(jī)狀態(tài)的狀態(tài)機(jī)被稱為母狀態(tài)機(jī)。母狀態(tài)機(jī)是以引用的方式把一個(gè)已經(jīng)存在的狀態(tài)機(jī)作為自己子狀態(tài),在母狀態(tài)機(jī)中子機(jī)狀態(tài)作為一個(gè)子狀態(tài),但它自身仍是一個(gè)完整的狀態(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 ): 描述一個(gè)事物在其生命期中,所具有的狀態(tài),以及因事件觸發(fā)而引起的狀態(tài)的各種轉(zhuǎn)換。,對(duì)象狀態(tài)建模: 用例狀態(tài)建模: 交互狀

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

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

15、。,狀態(tài)機(jī)建模的基本步驟: 1)確定對(duì)哪一個(gè)類元進(jìn)行建模。 2)從類元實(shí)例的創(chuàng)建(始態(tài))到被撤銷(終態(tài)),確定實(shí)例可能經(jīng)歷的所有狀態(tài)。 3)分析實(shí)例從一種狀態(tài)轉(zhuǎn)換到另外一種狀態(tài)可能發(fā)生的事件。 4)確定當(dāng)觸發(fā)事件發(fā)生時(shí),實(shí)例應(yīng)該執(zhí)行的動(dòng)作。 5)對(duì)建模結(jié)果進(jìn)行精化和細(xì)化。 6)檢查與驗(yàn)證狀態(tài)機(jī)圖。,1)狀態(tài)機(jī)圖用于事物狀態(tài)及其變換的建模;活動(dòng)圖用于過(guò)程流程建模 。 2)狀態(tài)結(jié)點(diǎn)表示事物一個(gè)狀態(tài),活動(dòng)結(jié)點(diǎn)表示一個(gè)過(guò)程中的一個(gè)動(dòng)作。 3)交互圖用于多個(gè)對(duì)象為完成一個(gè)任務(wù)的交互關(guān)系,狀態(tài)機(jī)圖表示一個(gè)事物所處的狀態(tài),及其變換。 4)可以用狀態(tài)機(jī)描述一個(gè)交互過(guò)程中所處的狀態(tài)及其轉(zhuǎn)換,用活動(dòng)圖描述一個(gè)交互執(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. 本站所有資源如無(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)論