版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第9章 狀態(tài)圖9.1.1 狀態(tài)機(jī) 狀態(tài)機(jī)是一種記錄下給定時(shí)刻狀態(tài)的設(shè)備,是展示狀態(tài)與狀態(tài)之間轉(zhuǎn)換的圖。 UML用狀態(tài)機(jī)對(duì)軟件系統(tǒng)的動(dòng)態(tài)特征建模。通常一個(gè)狀態(tài)機(jī)依附于一個(gè)類,并且描述一個(gè)類的實(shí)例。 狀態(tài)機(jī)包含了一個(gè)類的對(duì)象在其生命期間所有狀態(tài)的序列以及對(duì)象對(duì)接受到的事件所產(chǎn)生的反應(yīng)。 利用狀態(tài)機(jī)可以精確地描述對(duì)象的行為。 狀態(tài)機(jī)也可用于描述整個(gè)系統(tǒng)的行為。9.1 狀態(tài)機(jī)狀態(tài)機(jī)由5個(gè)部分組成(見(jiàn)書(shū)): 狀態(tài)(State) 轉(zhuǎn)換(Transition) 事件(Event) 活動(dòng)(Activity) 動(dòng)作(Action)狀態(tài)機(jī) 狀態(tài)機(jī)由狀態(tài)、轉(zhuǎn)換、事件、活動(dòng)和動(dòng)作5部分組成: (1)狀態(tài)指的是對(duì)象在其
2、生命周期中的一種狀況,處于某個(gè)特定狀態(tài)中的對(duì)象必然會(huì)滿足某些條件、執(zhí)行某些動(dòng)作或者是等待某些事件。一個(gè)狀態(tài)的生命周期是一個(gè)有限的時(shí)間階段。 (2)轉(zhuǎn)換指的是兩個(gè)不同狀態(tài)之間的一種關(guān)系,表明對(duì)象將在第一個(gè)狀態(tài)中執(zhí)行一定的動(dòng)作,并且在滿足某個(gè)特定條件下由某個(gè)事件觸發(fā)進(jìn)入第二個(gè)狀態(tài)。 狀態(tài)機(jī)狀態(tài)機(jī)n (3)事件指的是發(fā)生在時(shí)間和空間上的對(duì)狀態(tài)機(jī)來(lái)講有意義的那些事情。事件通常會(huì)引起狀態(tài)的變遷,促使?fàn)顟B(tài)機(jī)從一種狀態(tài)切換到另一種狀態(tài),如信號(hào)、對(duì)象額度創(chuàng)建和銷毀等。 (4)活動(dòng)指的是狀態(tài)機(jī)中進(jìn)行的非原子操作。 (5)動(dòng)作指的是狀態(tài)機(jī)中可以執(zhí)行的那些原子操作,所謂原子操作指的是它們?cè)谶\(yùn)行的過(guò)程中不能被其他消息
3、所中斷,必須一直執(zhí)行下去,最終導(dǎo)致?tīng)顟B(tài)的變更或者返回一個(gè)值。9.1.2 狀態(tài)圖 一個(gè)狀態(tài)圖本質(zhì)上是一個(gè)狀態(tài)機(jī)或者是狀態(tài)機(jī)的特殊情況。 狀態(tài)圖表現(xiàn)從一個(gè)狀態(tài)到另一個(gè)狀態(tài)的控制流。 狀態(tài)圖由狀態(tài)、轉(zhuǎn)換、事件、活動(dòng)和動(dòng)作5部分組成: 狀態(tài)狀態(tài)用于對(duì)實(shí)體在其生命周期中的各種狀況進(jìn)行建模,一個(gè)實(shí)體總是在有限的一段時(shí)間內(nèi)保持一個(gè)狀態(tài)。狀態(tài)由一個(gè)帶圓角的矩形表示,狀態(tài)的描述應(yīng)該包括:名稱、入口和出口動(dòng)作、內(nèi)部轉(zhuǎn)換和嵌套狀態(tài)。 轉(zhuǎn)換 轉(zhuǎn)換用帶箭頭的直線表示,一端連接源狀態(tài)即轉(zhuǎn)出的狀態(tài),箭頭一端連接目標(biāo)狀態(tài)即轉(zhuǎn)入的狀態(tài)。 轉(zhuǎn)換可以標(biāo)注與此轉(zhuǎn)換相關(guān)的選項(xiàng)如事件、動(dòng)作和監(jiān)護(hù)條件。 初始狀態(tài) 初始狀態(tài)代表狀態(tài)圖的起始
4、位置,只能作為轉(zhuǎn)換的源,而不能作為轉(zhuǎn)換的目標(biāo)。 初始狀態(tài)在一個(gè)狀態(tài)圖中只允許有一個(gè),它用一個(gè)實(shí)心的圓表示。 終止?fàn)顟B(tài) 終止?fàn)顟B(tài)是模型元素的最后狀態(tài),是一個(gè)狀態(tài)圖的終止點(diǎn)。 終止?fàn)顟B(tài)只能作為轉(zhuǎn)換的目標(biāo),而不能作為轉(zhuǎn)換的源。 終止?fàn)顟B(tài)在一個(gè)狀態(tài)圖中可以有多個(gè),它用一個(gè)套有一個(gè)實(shí)心圓的空心圓表示。 判定 判定在狀態(tài)圖中的位置:工作流在此處按監(jiān)護(hù)條件的取值而發(fā)生分支。 判定用空心小菱形表示。 判定 因?yàn)楸O(jiān)護(hù)條件為布爾表達(dá)式,所以通常條件下的判定只有一個(gè)入轉(zhuǎn)換和兩個(gè)出轉(zhuǎn)換。 根據(jù)監(jiān)護(hù)條件的真假可以觸發(fā)不同的分支轉(zhuǎn)換。狀態(tài)1狀態(tài)2狀態(tài)3 滿足監(jiān)護(hù)條件 不滿足監(jiān)護(hù)條件 9.1.3狀態(tài)圖作用狀態(tài)圖的作用主要體
5、現(xiàn)在以下幾個(gè)方面: (1)狀態(tài)圖清晰的描述了狀態(tài)之間的轉(zhuǎn)換順序,通過(guò)狀態(tài)的轉(zhuǎn)換順序也就可以清晰的看出事件的執(zhí)行順序。如果沒(méi)有狀態(tài)圖我們就不可避免的要使用大量的文字來(lái)描述外部事件的合法順序。 (2)清晰的事件順序有利于程序員在開(kāi)發(fā)程序時(shí)避免出現(xiàn)事件錯(cuò)序的情況。 (3)狀態(tài)圖清晰的描述了狀態(tài)轉(zhuǎn)換時(shí)所必須的觸發(fā)事件、監(jiān)護(hù)條件和動(dòng)作等影響轉(zhuǎn)換的因素,有利于程序員避免程序中非法事件的進(jìn)入。 (4)狀態(tài)圖通過(guò)判定可以更好的描述工作流因?yàn)椴煌臈l件發(fā)生的分支。9.2 狀態(tài)圖的組成 狀態(tài)圖由狀態(tài)、轉(zhuǎn)換、事件、活動(dòng)和動(dòng)作5部分組成,本節(jié)詳細(xì)介紹。 9.2.1 狀態(tài) 狀態(tài)是指在對(duì)象生命周期中滿足某些條件、執(zhí)行某些
6、活動(dòng)或等待某些事件的一個(gè)條件和狀況 一個(gè)狀態(tài)通常包括狀態(tài)名、入口動(dòng)作和出口動(dòng)作、內(nèi)部轉(zhuǎn)換、子狀態(tài)和事件等五個(gè)部分組成. 狀態(tài)種類:簡(jiǎn)單狀態(tài)(Simple State)組成狀態(tài)(Composite State) 狀態(tài)名 狀態(tài)名表示狀態(tài)的名字,通常用字符串表示。 一個(gè)狀態(tài)的名稱在狀態(tài)圖所在的上下文中應(yīng)該是唯一的。不過(guò),狀態(tài)允許匿名。 狀態(tài)的名字通常放在狀態(tài)圖標(biāo)的頂部 入口動(dòng)作與出口動(dòng)作 入口動(dòng)作和出口動(dòng)作表示進(jìn)入或退出這個(gè)狀態(tài)所要執(zhí)行的動(dòng)作。入口動(dòng)作用“entry/要執(zhí)行的動(dòng)作”表達(dá),而出口動(dòng)作用“exit/要執(zhí)行的動(dòng)作”表達(dá)。 do:用來(lái)指定處于狀態(tài)時(shí)發(fā)生的動(dòng)作; event:用來(lái)指定當(dāng)特定事件
7、觸發(fā)時(shí)發(fā)生的動(dòng)作。Lightingentry/ turn onexit/ turn offdo/ computeDegreeevent power off/ power supply 內(nèi)部轉(zhuǎn)換 內(nèi)部轉(zhuǎn)換內(nèi)部轉(zhuǎn)換對(duì)事件做出響應(yīng),并執(zhí)行一個(gè)特定的活動(dòng),但并不引起狀對(duì)事件做出響應(yīng),并執(zhí)行一個(gè)特定的活動(dòng),但并不引起狀態(tài)變化態(tài)變化,因此不需要執(zhí)行入口和出口動(dòng)作。因此不需要執(zhí)行入口和出口動(dòng)作。內(nèi)部轉(zhuǎn)換和自轉(zhuǎn)換不同,雖然兩者都不改變狀態(tài)本身,但是自轉(zhuǎn)換內(nèi)部轉(zhuǎn)換和自轉(zhuǎn)換不同,雖然兩者都不改變狀態(tài)本身,但是自轉(zhuǎn)換會(huì)激發(fā)入口動(dòng)作和出口動(dòng)作的執(zhí)行,而內(nèi)部轉(zhuǎn)換卻不會(huì)。會(huì)激發(fā)入口動(dòng)作和出口動(dòng)作的執(zhí)行,而內(nèi)部轉(zhuǎn)換卻不會(huì)。
8、內(nèi)部轉(zhuǎn)換:用來(lái)處理一些不離開(kāi)該狀態(tài)的事件內(nèi)部轉(zhuǎn)換:用來(lái)處理一些不離開(kāi)該狀態(tài)的事件. 簡(jiǎn)單狀態(tài) 簡(jiǎn)單狀態(tài)是指不包含其他狀態(tài)的狀態(tài)。 簡(jiǎn)單狀態(tài)沒(méi)有子結(jié)構(gòu),但它可以具有內(nèi)部轉(zhuǎn)換、入口動(dòng)作和出口動(dòng)作等。 9.2.2 轉(zhuǎn)換 轉(zhuǎn)換表示當(dāng)一個(gè)特定事件發(fā)生或者某些條件得到滿足時(shí),一個(gè)源狀態(tài)下的對(duì)象在完成一定的動(dòng)作后將發(fā)生狀態(tài)轉(zhuǎn)變,轉(zhuǎn)向另一個(gè)稱之為目標(biāo)狀態(tài)的狀態(tài)。 轉(zhuǎn)換進(jìn)入的狀態(tài)為活動(dòng)狀態(tài),轉(zhuǎn)換離開(kāi)的狀態(tài)變?yōu)榉腔顒?dòng)狀態(tài)。9.2.2 轉(zhuǎn)換轉(zhuǎn)換組成:轉(zhuǎn)換組成:源狀態(tài):即受轉(zhuǎn)換影響的狀態(tài)源狀態(tài):即受轉(zhuǎn)換影響的狀態(tài)目標(biāo)狀態(tài):當(dāng)轉(zhuǎn)換完成后對(duì)象的狀態(tài)目標(biāo)狀態(tài):當(dāng)轉(zhuǎn)換完成后對(duì)象的狀態(tài) 觸發(fā)事件:用來(lái)為轉(zhuǎn)換定義一個(gè)事件,包括調(diào)
9、用、改變、觸發(fā)事件:用來(lái)為轉(zhuǎn)換定義一個(gè)事件,包括調(diào)用、改變、信號(hào)、時(shí)間四類事件信號(hào)、時(shí)間四類事件監(jiān)護(hù)條件:布爾表達(dá)式,決定是否激活轉(zhuǎn)換監(jiān)護(hù)條件:布爾表達(dá)式,決定是否激活轉(zhuǎn)換動(dòng)作:轉(zhuǎn)換激活時(shí)的操作動(dòng)作:轉(zhuǎn)換激活時(shí)的操作9.2.2 轉(zhuǎn)換轉(zhuǎn)換種類: 外部轉(zhuǎn)換 內(nèi)部轉(zhuǎn)換 自轉(zhuǎn)換 復(fù)合轉(zhuǎn)換 外部轉(zhuǎn)換 外部轉(zhuǎn)換是一種改變對(duì)象狀態(tài)的轉(zhuǎn)換,是最常見(jiàn)的一種轉(zhuǎn)換。 外部轉(zhuǎn)換對(duì)事件做出響應(yīng),引起狀態(tài)變化或自身轉(zhuǎn)換,同時(shí)引發(fā)一個(gè)特定動(dòng)作。 外部轉(zhuǎn)換用從源狀態(tài)到目標(biāo)狀態(tài)的箭頭表示。 內(nèi)部轉(zhuǎn)換 內(nèi)部轉(zhuǎn)換只有源狀態(tài),沒(méi)有目標(biāo)狀態(tài),不會(huì)激發(fā)入口和出口動(dòng)作,因此內(nèi)部轉(zhuǎn)換激發(fā)的結(jié)果不改變本來(lái)的狀態(tài)。如果一個(gè)內(nèi)部轉(zhuǎn)換帶有動(dòng)作,它也
10、要被執(zhí)行。內(nèi)部轉(zhuǎn)換常用于對(duì)不改變狀態(tài)的插入動(dòng)作建立模型。要注意的是內(nèi)部轉(zhuǎn)換的激發(fā)可能會(huì)掩蓋使用相同事件的外部轉(zhuǎn)換。 內(nèi)部轉(zhuǎn)換的表示法與入口動(dòng)作和出口動(dòng)作的表示法很相似。他們的區(qū)別主要在于入口和出口動(dòng)作使用了保留字“entry”和“exit”,其它部分兩者的表示法相同。 內(nèi)部轉(zhuǎn)換和自轉(zhuǎn)換不同: 自轉(zhuǎn)換是離開(kāi)本狀態(tài)后重新進(jìn)入該狀態(tài),它會(huì)激發(fā)狀態(tài)的入口動(dòng)作和出口動(dòng)作的執(zhí)行。 內(nèi)部轉(zhuǎn)換自始至終都不離開(kāi)本狀態(tài),所以沒(méi)有出口或入口事件,也就不執(zhí)行入口和出口動(dòng)作。 觸發(fā)事件 觸發(fā)事件是能夠引起狀態(tài)轉(zhuǎn)換的事件。與狀態(tài)與狀態(tài)off相關(guān)的轉(zhuǎn)換有兩個(gè),其觸發(fā)事件都是相關(guān)的轉(zhuǎn)換有兩個(gè),其觸發(fā)事件都是turnOn,只不
11、過(guò)其監(jiān)護(hù)條件不同。如果對(duì)象收到事件只不過(guò)其監(jiān)護(hù)條件不同。如果對(duì)象收到事件turnOn,那,那么將判斷壺中是否有水;如果么將判斷壺中是否有水;如果沒(méi)水沒(méi)水,則仍然處于,則仍然處于off狀態(tài);狀態(tài);如果如果有水有水則轉(zhuǎn)為則轉(zhuǎn)為on狀態(tài),并執(zhí)行狀態(tài),并執(zhí)行“燒水燒水”動(dòng)作動(dòng)作而與狀態(tài)而與狀態(tài)on相關(guān)的轉(zhuǎn)換也有兩個(gè),如果相關(guān)的轉(zhuǎn)換也有兩個(gè),如果“水開(kāi)了水開(kāi)了”就執(zhí)行就執(zhí)行turnOff,關(guān)掉開(kāi)關(guān);如果燒壞了,就進(jìn)入了終態(tài)了,關(guān)掉開(kāi)關(guān);如果燒壞了,就進(jìn)入了終態(tài)了 監(jiān)護(hù)條件 監(jiān)護(hù)條件是觸發(fā)轉(zhuǎn)換必須滿足的條件,它是一個(gè)布爾表達(dá)式。 監(jiān)護(hù)條件只能在觸發(fā)事件發(fā)生時(shí)被賦值一次,如果在轉(zhuǎn)換發(fā)生后監(jiān)護(hù)條件才由假變?yōu)檎?/p>
12、,那么轉(zhuǎn)換也不會(huì)被觸發(fā)。 從一個(gè)狀態(tài)引出的多個(gè)轉(zhuǎn)換可以有同樣的觸發(fā)器事件,但是每個(gè)轉(zhuǎn)換必須具有不同的監(jiān)護(hù)條件。 動(dòng)作 動(dòng)作(action)通常是一個(gè)簡(jiǎn)短的計(jì)算處理過(guò)程或一組可執(zhí)行語(yǔ)句。動(dòng)作也可以是一個(gè)動(dòng)作序列,即一系列簡(jiǎn)單的動(dòng)作。動(dòng)作可以給另一個(gè)對(duì)象發(fā)送消息、調(diào)用一個(gè)操作、設(shè)置返回值、創(chuàng)建和銷毀對(duì)象。 動(dòng)作是原子性的,所以動(dòng)作是不可中斷的,動(dòng)作和動(dòng)作序列的執(zhí)行不會(huì)被同時(shí)發(fā)生的其他動(dòng)作影響或終止。動(dòng)作的執(zhí)行時(shí)間非常短,所以動(dòng)作的執(zhí)行過(guò)程不能再插入其他事件。如果在動(dòng)作的執(zhí)行期間接收到事件,那么這些事件都會(huì)被保存,直到動(dòng)作結(jié)束,這時(shí)事件一般已經(jīng)得到值。同步條是為了說(shuō)明并發(fā)工作流的分支與匯合。狀態(tài)圖和
13、活動(dòng)圖中都可能用到同步。在UML中,同步用一條線段來(lái)表示。 在狀態(tài)機(jī)中,一個(gè)事件的出現(xiàn)可以觸發(fā)狀態(tài)的改變。它發(fā)生在時(shí)間和空間上的一點(diǎn),沒(méi)有持續(xù)時(shí)間。如接受到從一個(gè)對(duì)象到另一個(gè)對(duì)象的調(diào)用或信號(hào)、某些值的改變或一個(gè)時(shí)間段的終結(jié)。 事件可以分成明確或隱含的幾種,主要包括:信號(hào)事件、調(diào)用事件、改變事件和時(shí)間事件等。案例: Account對(duì)象的狀態(tài)圖9.3.6 組成狀態(tài) 組成狀態(tài)是可以包含一些嵌套的子狀態(tài)的狀態(tài)。 組成狀態(tài)可以使用“與”關(guān)系分解為并發(fā)子狀態(tài),或者通過(guò)“或”關(guān)系分解為互相排斥的順序子狀態(tài)。 組成狀態(tài)的一個(gè)入轉(zhuǎn)換代表對(duì)其嵌套子狀態(tài)區(qū)域內(nèi)的初始狀態(tài)的入轉(zhuǎn)換;對(duì)嵌套子狀態(tài)區(qū)域內(nèi)的終結(jié)狀態(tài)的轉(zhuǎn)換代
14、表包含它的終止?fàn)顟B(tài)的相應(yīng)活動(dòng)的完成。 9.3.6 組成狀態(tài)(P179) 嵌套的子狀態(tài)的分類1. 順序子狀態(tài)2. 并發(fā)子狀態(tài)1. 順序子狀態(tài) 如果一個(gè)組成狀態(tài)的子狀態(tài)對(duì)應(yīng)的對(duì)象在其生命期內(nèi)的任何時(shí)刻都只能處于一個(gè)子狀態(tài),即多個(gè)子狀態(tài)之間是互斥的,不能同時(shí)存在,這種子狀態(tài)稱為順序子狀態(tài)。 當(dāng)狀態(tài)機(jī)通過(guò)轉(zhuǎn)換從某種狀態(tài)轉(zhuǎn)入組成狀態(tài)時(shí),此轉(zhuǎn)換的目的可能是這個(gè)組成狀態(tài)本身,也可能是這個(gè)組成狀態(tài)的子狀態(tài)。 例:2. 并發(fā)子狀態(tài) 有時(shí)組合狀態(tài)有兩個(gè)或者多個(gè)并發(fā)的子狀態(tài)機(jī),此時(shí)稱組成狀態(tài)的子狀態(tài)為并發(fā)子狀態(tài)。 順序子狀態(tài)與并發(fā)子狀態(tài)的區(qū)別在于后者在同一層次給出兩個(gè)或多個(gè)順序子狀態(tài),對(duì)象處于同一層次中來(lái)自每個(gè)并發(fā)
15、子狀態(tài)的一個(gè)時(shí)序狀態(tài)中。 例:見(jiàn)書(shū)9.3.7 歷史狀態(tài) 歷史狀態(tài)代表上次離開(kāi)組成狀態(tài)時(shí)的最后一個(gè)活動(dòng)子狀態(tài),它用一個(gè)包含字母“H”的小圓圈表示。 每當(dāng)轉(zhuǎn)換到組成狀態(tài)的歷史狀態(tài)時(shí),對(duì)象便恢復(fù)到上次離開(kāi)該組成狀態(tài)時(shí)的最后一個(gè)活動(dòng)子狀態(tài),并執(zhí)行入口動(dòng)作。 例:見(jiàn)書(shū) 思考與練習(xí)手機(jī)開(kāi)機(jī)時(shí),處于空閑狀態(tài);當(dāng)用戶開(kāi)始呼手機(jī)開(kāi)機(jī)時(shí),處于空閑狀態(tài);當(dāng)用戶開(kāi)始呼叫某人時(shí),手機(jī)進(jìn)入撥號(hào)狀態(tài);如果呼叫叫某人時(shí),手機(jī)進(jìn)入撥號(hào)狀態(tài);如果呼叫成功,進(jìn)入通話狀態(tài);如果呼叫不成功,成功,進(jìn)入通話狀態(tài);如果呼叫不成功,重新進(jìn)入空閑狀態(tài)。在空閑狀態(tài)被呼叫,重新進(jìn)入空閑狀態(tài)。在空閑狀態(tài)被呼叫,進(jìn)入響鈴狀態(tài);如果用戶接聽(tīng),進(jìn)入通話進(jìn)
16、入響鈴狀態(tài);如果用戶接聽(tīng),進(jìn)入通話狀態(tài);如果一分鐘不接聽(tīng),重新進(jìn)入空閑狀態(tài);如果一分鐘不接聽(tīng),重新進(jìn)入空閑狀態(tài)。狀態(tài)。 Answer:idledialingworkingringingfinish connection 9.6 狀態(tài)圖建模技術(shù)建模步驟:尋找主要的狀態(tài)尋找主要的狀態(tài)確定狀態(tài)之間的轉(zhuǎn)換確定狀態(tài)之間的轉(zhuǎn)換細(xì)化狀態(tài)內(nèi)的活動(dòng)與轉(zhuǎn)換,可用復(fù)合狀態(tài)細(xì)化狀態(tài)內(nèi)的活動(dòng)與轉(zhuǎn)換,可用復(fù)合狀態(tài)來(lái)展開(kāi)細(xì)節(jié)來(lái)展開(kāi)細(xì)節(jié)航班機(jī)票預(yù)訂系統(tǒng)航班機(jī)票預(yù)訂系統(tǒng)尋找主要狀態(tài):對(duì)于尋找主要狀態(tài):對(duì)于航班機(jī)票預(yù)訂系統(tǒng)航班機(jī)票預(yù)訂系統(tǒng)而言,顯然包括而言,顯然包括的狀態(tài)主要有的狀態(tài)主要有 - 在剛確定飛機(jī)計(jì)劃時(shí),顯然是沒(méi)有任何
17、預(yù)訂的,并在剛確定飛機(jī)計(jì)劃時(shí),顯然是沒(méi)有任何預(yù)訂的,并且在有人預(yù)訂機(jī)票之前都將處于這種且在有人預(yù)訂機(jī)票之前都將處于這種“無(wú)預(yù)訂無(wú)預(yù)訂”狀態(tài)狀態(tài) - 對(duì)訂座而言顯然有對(duì)訂座而言顯然有“部分預(yù)訂部分預(yù)訂”和和“預(yù)訂完預(yù)訂完”兩種兩種狀態(tài)狀態(tài) - 而當(dāng)航班快要起飛時(shí),顯然要而當(dāng)航班快要起飛時(shí),顯然要“預(yù)訂關(guān)閉預(yù)訂關(guān)閉”總結(jié)一下,主要有四種狀態(tài):無(wú)預(yù)訂、部分預(yù)訂、預(yù)訂總結(jié)一下,主要有四種狀態(tài):無(wú)預(yù)訂、部分預(yù)訂、預(yù)訂完以及預(yù)訂關(guān)閉完以及預(yù)訂關(guān)閉 確定狀態(tài)間轉(zhuǎn)換確定狀態(tài)間轉(zhuǎn)換源目標(biāo)源目標(biāo)無(wú)預(yù)訂無(wú)預(yù)訂部分預(yù)訂部分預(yù)訂預(yù)訂完預(yù)訂完預(yù)訂關(guān)閉預(yù)訂關(guān)閉無(wú)預(yù)訂無(wú)預(yù)訂預(yù)訂()不直接轉(zhuǎn)換關(guān)閉()部分預(yù)訂部分預(yù)訂退訂(),
18、使預(yù)訂人=0預(yù)訂(),無(wú)空座關(guān)閉()預(yù)訂完預(yù)訂完不直接轉(zhuǎn)換退訂()關(guān)閉()預(yù)訂關(guān)閉預(yù)訂關(guān)閉無(wú)轉(zhuǎn)換無(wú)轉(zhuǎn)換無(wú)轉(zhuǎn)換細(xì)化狀態(tài)內(nèi)的活動(dòng)與轉(zhuǎn)換細(xì)化狀態(tài)內(nèi)的活動(dòng)與轉(zhuǎn)換使用復(fù)合狀態(tài)使用復(fù)合狀態(tài)使用Rose創(chuàng)建狀態(tài)圖 在Rational Rose中,可以為每個(gè)類創(chuàng)建一個(gè)或者多個(gè)狀態(tài)圖類的轉(zhuǎn)換和狀態(tài)都可以在狀態(tài)圖中體現(xiàn)。首先,展開(kāi)“Logic View”菜單項(xiàng),然后在“Logic View”圖標(biāo)上單擊鼠標(biāo)右鍵,在彈出的菜單中選擇“New”下的“Statechart Diagram”選項(xiàng)建立新的狀態(tài)圖。 使用Rose創(chuàng)建狀態(tài)圖 初始狀態(tài)和終止?fàn)顟B(tài)是狀態(tài)圖中的兩個(gè)特殊狀態(tài)。初始狀態(tài)代表著狀態(tài)圖的起點(diǎn),終止?fàn)顟B(tài)代表著狀
19、態(tài)圖的終點(diǎn)。對(duì)象不可能保持在初始狀態(tài),但是可以保持在終止?fàn)顟B(tài)。 初始狀態(tài)在狀態(tài)圖中用實(shí)心圓表示,終止?fàn)顟B(tài)在狀態(tài)圖中用含有實(shí)心圓的空心圓表示。鼠標(biāo)左鍵點(diǎn)擊狀態(tài)圖工具欄中的“”圖標(biāo),然后在繪制區(qū)域要繪制的地方單擊鼠標(biāo)左鍵就可以創(chuàng)建初始狀態(tài)。終止?fàn)顟B(tài)的創(chuàng)建方法和初始狀態(tài)相同。 使用Rose創(chuàng)建狀態(tài)圖首先用鼠標(biāo)左鍵單擊狀態(tài)圖工具欄中對(duì)應(yīng)圖標(biāo),然后在繪制區(qū)域要?jiǎng)?chuàng)建狀態(tài)的地方單擊鼠標(biāo)左鍵。 創(chuàng)建新的狀態(tài)后,我們可以修改狀態(tài)的屬性信息。雙擊狀態(tài)圖標(biāo),在彈出的對(duì)話框“General”選項(xiàng)卡里進(jìn)行如名稱“Name”和文檔說(shuō)明“Documentation”等屬性的設(shè)置。 使用Rose創(chuàng)建狀態(tài)圖轉(zhuǎn)換是兩個(gè)狀態(tài)之間的
20、一種關(guān)系,代表了一種狀態(tài)到另一種狀態(tài)的過(guò)度,在UML中轉(zhuǎn)換用一條帶箭頭的直線表示。要增加轉(zhuǎn)換,首先用鼠標(biāo)左鍵單擊狀態(tài)工具欄中的圖標(biāo),然后再用鼠標(biāo)左鍵單擊轉(zhuǎn)換的源狀態(tài),接著向目標(biāo)狀態(tài)拖動(dòng)一條直線。使用Rose創(chuàng)建狀態(tài)圖 一個(gè)事件可以觸發(fā)狀態(tài)的轉(zhuǎn)換。要增加事件,先雙擊轉(zhuǎn)換圖標(biāo),在出現(xiàn)的對(duì)話框的“General”選項(xiàng)卡里增加事件, 接下來(lái),在“Event”選項(xiàng)中添加觸發(fā)轉(zhuǎn)換的事件,在“Argument”選項(xiàng)中添加事件的參數(shù),還可以在“Documentation”選項(xiàng)中添加對(duì)事件的描述。 使用Rose創(chuàng)建狀態(tài)圖監(jiān)護(hù)條件是一個(gè)布爾表達(dá)式,它控制轉(zhuǎn)換是否能夠發(fā)生。要添加監(jiān)護(hù)條件,先雙擊轉(zhuǎn)換的圖標(biāo),選擇出現(xiàn)的對(duì)話框中的“Detail”選項(xiàng)卡的“Guard Condition”選項(xiàng),然后填入監(jiān)護(hù)條件??梢詤⒖继砑觿?dòng)作的方法添加監(jiān)護(hù)條件。創(chuàng)建項(xiàng)目中的狀態(tài)圖 要?jiǎng)?chuàng)建狀態(tài)圖,首先要標(biāo)識(shí)出哪些實(shí)體需要使用狀態(tài)圖進(jìn)一步建模。雖然我們可以為每一個(gè)類、操作、包或用例創(chuàng)建狀態(tài)圖,但是這樣做勢(shì)必浪費(fèi)很多的精力。一般來(lái)說(shuō),不需要給所有的類都創(chuàng)建狀態(tài)圖,只有具有重要?jiǎng)討B(tài)行為的類才需要。 從另一個(gè)角度看,狀態(tài)圖應(yīng)該用于復(fù)雜的實(shí)體,而不必用于具有復(fù)雜行為的實(shí)體。使用活動(dòng)圖可能會(huì)更加適合那些有復(fù)雜行為的
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 小說(shuō)敘事視角研究-洞察分析
- 飲用水安全風(fēng)險(xiǎn)預(yù)警-洞察分析
- 冶金設(shè)備與自動(dòng)化-洞察分析
- 《企業(yè)管理案例分析》課件
- 2024年桂平市人民醫(yī)院高層次衛(wèi)技人才招聘筆試歷年參考題庫(kù)頻考點(diǎn)附帶答案
- 2024年05月江蘇2024屆中國(guó)民生銀行蘇州分行畢業(yè)生“未來(lái)銀行家”暑期管培生校園招考筆試歷年參考題庫(kù)附帶答案詳解
- 《監(jiān)控培訓(xùn)》課件
- 農(nóng)場(chǎng)主招募合同(2篇)
- 2024年曾都區(qū)白云醫(yī)院高層次衛(wèi)技人才招聘筆試歷年參考題庫(kù)頻考點(diǎn)附帶答案
- 2024年05月天津天津銀行濱海分行社會(huì)招考(527)筆試歷年參考題庫(kù)附帶答案詳解
- 垃圾填埋場(chǎng)項(xiàng)目經(jīng)濟(jì)效益和社會(huì)效益分析
- 校園零星維修服務(wù) 投標(biāo)方案(技術(shù)方案)
- 2024年四川省內(nèi)江市中考英語(yǔ)試題(含答案)
- 平安產(chǎn)險(xiǎn)云南省商業(yè)性桑蠶養(yǎng)殖保險(xiǎn)條款
- 股權(quán)協(xié)議書(shū)和合伙人協(xié)議書(shū)
- 河南省駐馬店市2023-2024學(xué)年高一上學(xué)期1月期末語(yǔ)文試題(含答案解析)
- 幼兒園名師公開(kāi)課:小班安全《超市安全我知道》微課件
- MOOC 英文技術(shù)寫(xiě)作-東南大學(xué) 中國(guó)大學(xué)慕課答案
- 2022年10月自考00850廣告設(shè)計(jì)基礎(chǔ)試題及答案含解析
- 工會(huì)委員會(huì)會(huì)議紀(jì)要
- 《水電工程水文設(shè)計(jì)規(guī)范》(NB-T 10233-2019)
評(píng)論
0/150
提交評(píng)論