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

下載本文檔

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

文檔簡介

狀態(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)定的狀況

。

狀態(tài)7.1.1待用運(yùn)行故障狀態(tài)機(jī)(statemachine

):描述一個(gè)事物在其生命期中,所具有的狀態(tài),以及因事件觸發(fā)而引起的狀態(tài)的各種轉(zhuǎn)換。

狀態(tài)機(jī)7.1.2狀態(tài)機(jī)(statemachine

diagram

):是UML用來描述狀態(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)機(jī)圖7.1.3狀態(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è)字母要大寫。

狀態(tài)的概念7.2.1可分為以下三類:

●簡單狀態(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)的類型7.2.2可分為以下三類:

●簡單狀態(tài):

●復(fù)合狀態(tài):

●子機(jī)狀態(tài):狀態(tài)的類型7.2.2

一個(gè)狀態(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/doshing

,例如extry/dodooropen?!癯隹跔顟B(tài):退出該狀態(tài)自動(dòng)執(zhí)行的最后一個(gè)動(dòng)作,表示為:exit/doshing,例如,exit/doorclose。

●內(nèi)部變遷:在該狀態(tài)下做的動(dòng)作,不引起狀態(tài)變化。表示為:do/thing,例如,do/checkuponwork

?!裱舆t事件:在該狀態(tài)下,如果發(fā)生某事件,將被延時(shí)處理。表示為:事件/defer,例如,print/defer(15),表示打印事件將被延遲15秒。狀態(tài)的動(dòng)作7.2.3狀態(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)換(statetransition):是兩個(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)。

狀態(tài)轉(zhuǎn)換的概念7.3.1●觸發(fā)事件:觸發(fā)狀態(tài)轉(zhuǎn)換的條件,如開門,入庫,開電源等。如果沒有觸發(fā)事件,指源狀態(tài)執(zhí)行完后,自動(dòng)轉(zhuǎn)換到目標(biāo)狀態(tài)。狀態(tài)轉(zhuǎn)換的要素7.3.2●觸發(fā)事件:●監(jiān)護(hù)條件:用來監(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)換。如果沒有監(jiān)護(hù)條件,則不作條件判斷,在事件發(fā)生后直接執(zhí)行轉(zhuǎn)換動(dòng)作。狀態(tài)轉(zhuǎn)換的要素7.3.2

●觸發(fā)事件:●監(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)轉(zhuǎn)換的要素7.3.2狀態(tài)轉(zhuǎn)換的要素7.3.2狀態(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)”打開窗口。事件的概念7.4.1事件的性質(zhì)7.4.2●瞬時(shí)態(tài):事件在瞬時(shí)發(fā)生,沒有時(shí)間延遲。●原子性:事件不可再分割事件的類型7.4.3

按發(fā)生的位置分:●外部事件:在系統(tǒng)外部發(fā)生的事件,例如,按按鈕就在外部發(fā)生。●內(nèi)部事件:在系統(tǒng)內(nèi)部發(fā)生的事件,例如,溢出事件

按事件的性質(zhì)分:

●調(diào)用事件,●信號事件,●變化事件,●時(shí)間事件幾種事件7.4.4●調(diào)用事件(callevent):表示發(fā)送對象發(fā)給接收對象的調(diào)用消息的接收消息事件,并由該事件觸發(fā)接收對象的狀態(tài)轉(zhuǎn)換。

幾種事件7.4.4●信號事件(signal

event):表示發(fā)送對象發(fā)給接收對象的信號消息的接收消息事件,并由該事件觸發(fā)接收對象的狀態(tài)轉(zhuǎn)換。

幾種事件7.4.4●改變事件(change

event):表示當(dāng)布爾表達(dá)式的值改變?yōu)檎鏁r(shí)所激發(fā)的事件。系統(tǒng)將一直檢測改變事件中的布爾表達(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ā)該事件。幾種事件7.4.4●時(shí)間事件(time

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

●復(fù)合狀態(tài)允許嵌套,子狀態(tài)可以是簡單狀態(tài)、復(fù)合狀態(tài),也可以是子機(jī)狀態(tài)。

復(fù)合狀態(tài)的性質(zhì)7.5.2●復(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ā)狀態(tài)(concurrentstate)。

例如:并發(fā)狀態(tài)的含義7.6.1同步狀態(tài):指多個(gè)并發(fā)區(qū)間中的狀態(tài)在轉(zhuǎn)換過程彼此存在同步關(guān)系,一個(gè)區(qū)間中的一個(gè)轉(zhuǎn)換需要等到另一個(gè)區(qū)間中的某個(gè)轉(zhuǎn)換發(fā)生后才能進(jìn)行。

例如:同步狀態(tài)7.6.2狀態(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)

(initialstate):簡稱始態(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)。初始狀態(tài)表示一個(gè)狀態(tài)機(jī)從此結(jié)點(diǎn)開始,但事物不會(huì)此狀態(tài)停留,會(huì)立即轉(zhuǎn)換到初始狀態(tài)所連接的第下一個(gè)狀態(tài)。初始狀態(tài)只有輸出,沒有輸入。初始狀態(tài)7.7.1分叉

(fork):指將一個(gè)轉(zhuǎn)換分成兩個(gè)或多個(gè)轉(zhuǎn)換,用來描述需要并發(fā)的狀態(tài)。

匯合

(join):指將從并發(fā)狀態(tài)來的轉(zhuǎn)換合并形成一個(gè)轉(zhuǎn)換,用來描述多個(gè)并發(fā)狀態(tài)的控制同步。

分叉與匯合7.7.2匯接(junction):用來匯接多個(gè)轉(zhuǎn)換,以簡化轉(zhuǎn)換路徑。匯接的符號與初始狀態(tài)的符號相同,但它允許連接多個(gè)轉(zhuǎn)換的輸入和多個(gè)輸出。

匯接7.7.3選擇(choice

):用來實(shí)現(xiàn)根據(jù)條件判斷,轉(zhuǎn)換到不同目標(biāo)狀態(tài)。用菱形表示選擇,有一個(gè)輸入邊到選擇,多個(gè)輸出邊由選擇到目標(biāo)狀態(tài)結(jié)點(diǎn)。

選擇7.7.4歷史狀態(tài)(historystate

):為一個(gè)狀態(tài)機(jī)或復(fù)合狀態(tài)提供了一種在退出狀態(tài)時(shí)記憶當(dāng)前活動(dòng)所處的子狀態(tài),并能夠返回到該子狀態(tài)的機(jī)制。

歷史狀態(tài)7.7.5歷史狀態(tài)終止?fàn)顟B(tài)(final

state

):被簡稱為終態(tài),表示一個(gè)狀態(tài)機(jī)、一個(gè)復(fù)合狀態(tài),或一個(gè)區(qū)間狀態(tài)的結(jié)束。終止?fàn)顟B(tài)用“牛眼”符號表示。

終止?fàn)顟B(tài)7.7.6終止?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)7.7.7入口點(diǎn)和出口點(diǎn)的例子:狀態(tài)圖第7章7.7子機(jī)狀態(tài)

子機(jī)狀態(tài)(submachinestate

):是指把一個(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ī)(statemachine

):

描述一個(gè)事物在其生命期中,所具有的狀態(tài),以及因事件觸發(fā)而引起的狀態(tài)的各種轉(zhuǎn)換。

狀態(tài)機(jī)的概念7.8.1

●對象狀態(tài)建模:●用例狀態(tài)建模:●交互狀態(tài)建模:●構(gòu)件狀態(tài)建模:狀態(tài)機(jī)的用途7.8.2

1對象狀態(tài)建模:

描述一個(gè)對象在其生命期中,所具有的狀態(tài),以及因事件觸發(fā)而引起的狀態(tài)的各種轉(zhuǎn)換。根據(jù)其用途,可分為行為狀態(tài)機(jī)和協(xié)議狀態(tài)機(jī)。狀態(tài)機(jī)的用途7.8.2行為狀態(tài)機(jī):描述一個(gè)對象在其生命周期中可能處的各種狀態(tài),以及因事件的觸發(fā)而引起狀態(tài)之間轉(zhuǎn)換的行為規(guī)則與方式

。前面的例子全部屬于行為狀態(tài)機(jī)狀態(tài)機(jī)的用途7.8.2協(xié)議狀態(tài)機(jī):描述一個(gè)對象在其生命周期中可能處的狀態(tài),以及因?qū)ο笏x操作的一種允許的調(diào)用序列,使得對象可能經(jīng)歷的狀態(tài)變化過程。

狀態(tài)機(jī)的用途7.8.2

2用例狀態(tài)建模:一個(gè)用例在其執(zhí)行過程中也會(huì)處于不同的狀態(tài),可以用狀態(tài)機(jī)描述用例的狀態(tài),及其轉(zhuǎn)換。狀態(tài)機(jī)的用途7.8.2登錄

3交互狀態(tài)建模:一個(gè)交互描述為完成某項(xiàng)功能,系統(tǒng)中若干個(gè)對象相互交互消息的過程。一個(gè)交互過程也會(huì)存在多種狀態(tài),及其狀態(tài)的轉(zhuǎn)換,可以用狀態(tài)機(jī)圖來描述交互狀態(tài)的轉(zhuǎn)換。

狀態(tài)機(jī)的用途7.8.2訂貨交互的狀態(tài)機(jī):

4構(gòu)件狀態(tài)建模:構(gòu)件封裝了多個(gè)類,構(gòu)件在其生命周期中也會(huì)存在不同狀態(tài),可以用狀態(tài)機(jī)對構(gòu)件的狀態(tài)及其轉(zhuǎn)換進(jìn)行建模。

狀態(tài)機(jī)的用途7.8.2狀態(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)該有一個(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)。狀態(tài)機(jī)建模規(guī)則7.8.3狀態(tài)機(jī)建模的基本步驟:

1)確定對哪一個(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)對建模結(jié)果進(jìn)行精化和細(xì)化。

6)檢查與驗(yàn)證狀態(tài)機(jī)圖。狀態(tài)機(jī)建模7.8.4

1)狀態(tài)機(jī)圖用于事物狀態(tài)及其變換的建模;活動(dòng)圖用于過程流程建模。

2)狀態(tài)結(jié)點(diǎn)表示事物一個(gè)狀態(tài),活動(dòng)結(jié)點(diǎn)表示一個(gè)過程中的一個(gè)動(dòng)作。

3)交互圖用于多個(gè)對象為完成一個(gè)任務(wù)的交互關(guān)系,狀態(tài)機(jī)圖表示一個(gè)事物所處的狀態(tài),及其變換。

4)可

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論