




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
狀態(tài)圖高天迎狀態(tài)圖1狀態(tài)機(jī)2狀態(tài)圖3狀態(tài)4事件5轉(zhuǎn)換6狀態(tài)圖建模技術(shù)7實例——圖書館管理系統(tǒng)的狀態(tài)圖1狀態(tài)機(jī)狀態(tài)機(jī)是展示狀態(tài)與狀態(tài)轉(zhuǎn)換的圖,包含了一個類的對象在其生命期間所有狀態(tài)的序列以及對象對接受到的事件所產(chǎn)生的反應(yīng)。利用狀態(tài)機(jī)可以精確地描述對象的行為。UML用狀態(tài)機(jī)對軟件系統(tǒng)的動態(tài)特征建模。組成:狀態(tài)(State):模型在其生存周期內(nèi)的狀況轉(zhuǎn)換(Transition):不同狀態(tài)之間的聯(lián)系事件(Event):觸發(fā)狀態(tài)的轉(zhuǎn)換活動(Activity):一系列動作動作(Action):2狀態(tài)圖狀態(tài)圖表示狀態(tài)機(jī)。一個狀態(tài)機(jī)可以用多個狀態(tài)圖描述。狀態(tài)圖表現(xiàn)從一個狀態(tài)到另一個狀態(tài)的控制流。狀態(tài)圖由表示狀態(tài)的節(jié)點和表示狀態(tài)之間轉(zhuǎn)換的帶箭頭的直線組成。組成:狀態(tài)(State)轉(zhuǎn)換(Transition)初始狀態(tài)(StartState)終結(jié)狀態(tài)(EndState)判定(Decision)2狀態(tài)圖示意圖:狀態(tài)圖的用途UML的狀態(tài)圖主要用于建立類的一個對象在其生存期間的動態(tài)行為,表現(xiàn)一個對象所經(jīng)歷的狀態(tài)序列,引起狀態(tài)轉(zhuǎn)移的事件(event),以及因狀態(tài)轉(zhuǎn)移而伴隨的動作(action)。狀態(tài)圖的目的是為具有以下兩個特性的屬性建模:屬性擁有很少的值;屬性在這些值之間的轉(zhuǎn)移有一定的限制。例:類SellableItem有兩個屬性salePrice:Money和status:Inspection。其中salePrice的取值范圍為正實數(shù),status的取值為received,inInspection,accepted,rejected等,則應(yīng)根據(jù)屬性status建立狀態(tài)圖。說明:狀態(tài)圖是對系統(tǒng)的動態(tài)行為建模。狀態(tài)圖描述了一個特定對象的所有可能狀態(tài)以及由于各種事件的發(fā)生而引起的狀態(tài)之間的轉(zhuǎn)移。狀態(tài)圖是顯示狀態(tài)機(jī)的一種方式,另一種顯示狀態(tài)機(jī)的方式是活動圖。Rose中,狀態(tài)圖不生成代碼,但狀態(tài)圖在檢查,調(diào)試和描述類的動態(tài)行為時非常有用。狀態(tài)圖適合于描述跨越多個用例的單個對象的行為,而不適合描述多個對象之間的行為協(xié)作,因此,常常將狀態(tài)圖與其它技術(shù)組合使用。例如,交互圖適合于描述單個用例中的多個對象的行為,活動圖適合于描述多個對象和多個用例的活動的總次序。
3狀態(tài)3.1概述3.2狀態(tài)名3.3內(nèi)部轉(zhuǎn)換3.4入口動作與出口動作3.5簡單狀態(tài)3.6組成狀態(tài)3.7歷史狀態(tài)3.1概述一個狀態(tài)是指在對象的生命期中的一個條件或狀況,在此期間對象將滿足某些條件、執(zhí)行某些活動或等待某些事件。狀態(tài)由一個帶圓角的矩形表示。狀態(tài)圖標(biāo)可以分為三部分:名稱內(nèi)部轉(zhuǎn)換嵌套狀態(tài)3.1概述狀態(tài)圖中的狀態(tài)一般是給定類對象中的一組屬性值,這組屬性值是對象所有屬性的子集。在對系統(tǒng)建模時,我們可以只關(guān)心那些明顯影響對象行為的屬性以及由他們表達(dá)的對象狀態(tài),而不用理睬那些于對象行為無關(guān)的狀態(tài)。3.1概述狀態(tài)種類:簡單狀態(tài)(SimpleState)組成狀態(tài)(CompositeState)狀態(tài)組成:狀態(tài)名(Name)活動(Activity)入口動作(EntryAction)出口動作(ExitAction)說明:所有對象都具有狀態(tài),狀態(tài)是對象執(zhí)行了一系列活動的結(jié)果。當(dāng)某個事件發(fā)生后,對象的狀態(tài)將發(fā)生變化。狀態(tài)圖中定義的狀態(tài)有:初態(tài)、終態(tài)、中間狀態(tài)、組合狀態(tài)、歷史狀態(tài)等。一個狀態(tài)圖只能有一個初態(tài),而終態(tài)可以有多個,也可以沒有終態(tài)。3.2狀態(tài)名狀態(tài)名表示狀態(tài)的名字,通常用字符串表示。一個狀態(tài)的名稱在狀態(tài)圖所在的上下文中應(yīng)該是唯一的。狀態(tài)允許匿名。狀態(tài)的名字通常放在狀態(tài)圖標(biāo)的頂部3.3內(nèi)部轉(zhuǎn)換內(nèi)部轉(zhuǎn)換只有一個源狀態(tài)而沒有目標(biāo)狀態(tài),因此轉(zhuǎn)換激發(fā)的結(jié)果并不改變狀態(tài)本身。如果一個內(nèi)部轉(zhuǎn)換帶有動作,動作也要被執(zhí)行,但是由于沒有狀態(tài)改變發(fā)生,因此不需要執(zhí)行入口和出口動作。內(nèi)部轉(zhuǎn)換和自轉(zhuǎn)換不同,雖然兩者都不改變狀態(tài)本身,但是自轉(zhuǎn)換會激發(fā)入口動作和出口動作的執(zhí)行,而內(nèi)部轉(zhuǎn)換卻不會。3.4入口動作與出口動作入口動作和出口動作表示進(jìn)入或退出這個狀態(tài)所要執(zhí)行的動作。入口動作用“entry/要執(zhí)行的動作”表達(dá),而出口動作用“exit/要執(zhí)行的動作”表達(dá)。3.5簡單狀態(tài)簡單狀態(tài)是指不包含其他狀態(tài)的狀態(tài)。簡單狀態(tài)沒有子結(jié)構(gòu),但它可以具有內(nèi)部轉(zhuǎn)換、入口動作和出口動作等。3.6組成狀態(tài)組成狀態(tài)是可以包含一些嵌套的子狀態(tài)的狀態(tài)。組成狀態(tài)可以使用“與”關(guān)系分解為并發(fā)子狀態(tài),或者通過“或”關(guān)系分解為互相排斥的順序子狀態(tài)。3.6組成狀態(tài)1.順序子狀態(tài)2.并發(fā)子狀態(tài)1.順序子狀態(tài)如果一個組成狀態(tài)的子狀態(tài)對應(yīng)的對象在其生命期內(nèi)的任何時刻都只能處于一個子狀態(tài),即多個子狀態(tài)之間是互斥的,不能同時存在,這種子狀態(tài)稱為順序子狀態(tài)。當(dāng)狀態(tài)機(jī)通過轉(zhuǎn)換從某種狀態(tài)轉(zhuǎn)入組成狀態(tài)時,此轉(zhuǎn)換的目的可能是這個組成狀態(tài)本身,也可能是這個組成狀態(tài)的子狀態(tài)。2.并發(fā)子狀態(tài)有時組合狀態(tài)有兩個或者多個并發(fā)的子狀態(tài)機(jī),此時稱組成狀態(tài)的子狀態(tài)為并發(fā)子狀態(tài)。順序子狀態(tài)與并發(fā)子狀態(tài)的區(qū)別在于后者在同一層次給出兩個或多個順序子狀態(tài),對象處于同一層次中來自每個并發(fā)子狀態(tài)的一個時序狀態(tài)中。說明:組合狀態(tài)中也有初始狀態(tài)和終結(jié)狀態(tài)。從源狀態(tài)可以轉(zhuǎn)移到組合狀態(tài)本身,也可以直接轉(zhuǎn)移到組合狀態(tài)中的子狀態(tài)。子狀態(tài)之間可分為“or”關(guān)系和“and”關(guān)系兩種。“or”關(guān)系說明在某一時刻僅可到達(dá)一個子狀態(tài),“and”關(guān)系說明復(fù)合狀態(tài)中在某一時刻可同時到達(dá)多個子狀態(tài)。例2:子狀態(tài)之間“and”關(guān)系的例子。例1:子狀態(tài)之間“or”關(guān)系的例子。組合狀態(tài)、子狀態(tài)例:組合狀態(tài)和子狀態(tài)的例子。3.7歷史狀態(tài)歷史狀態(tài)代表上次離開組成狀態(tài)時的最后一個活動子狀態(tài),它用一個包含字母“H”的小圓圈表示。每當(dāng)轉(zhuǎn)換到組成狀態(tài)的歷史狀態(tài)時,對象便恢復(fù)到上次離開該組成狀態(tài)時的最后一個活動子狀態(tài),并執(zhí)行入口動作。3.7歷史狀態(tài)H和H*的區(qū)別:H只記住最外層的組合狀態(tài)的歷史。H*可記住任何深度的組合狀態(tài)的歷史。例:歷史狀態(tài)的例子4事件事件表示在某一特定的時間或空間出現(xiàn)的能夠引發(fā)狀態(tài)改變的一種運動變化。事件是一個激勵的出現(xiàn),它定義一個觸發(fā)子以觸發(fā)對象改變其狀態(tài),任何影響對象的事物都可以是事件。觸發(fā)事件是能夠引起狀態(tài)轉(zhuǎn)換的事件觸發(fā)事件可以是信號、調(diào)用、時間段等4事件事件種類:入口事件出口事件動作事件信號事件調(diào)用事件修改事件時間事件延遲事件4.1入口事件入口事件表示一個入口的動作序列,它在進(jìn)入狀態(tài)時執(zhí)行。入口事件的動作是原子的,并且先于內(nèi)部活動或轉(zhuǎn)換。4.2出口事件出口事件表示一個出口的動作序列,它在退出狀態(tài)時執(zhí)行。出口事件也是原子的,它跟在所有的內(nèi)部活動之后,但是先于所有的出口轉(zhuǎn)換。4.3動作事件動作事件也稱為“do事件”,它表示對一個嵌套狀態(tài)機(jī)的調(diào)用。與動作事件相關(guān)的活動必定引用嵌套狀態(tài)機(jī),而非引用包含它的對象的操作。4.4信號事件信號的接收是信號接受對象的一個事件。信號分為異步單路通信和雙路通信。在異步單路通信中,發(fā)送者是獨立的。在雙路通信模型中,至少在每個方向上都要有一個信號。在信號事件中,發(fā)送者和接受者可以是同一個對象。4.5調(diào)用事件調(diào)用事件是一個對象對調(diào)用的接收。調(diào)用事件至少涉及兩個以上的對象。調(diào)用事件既可以為同步調(diào)用,也可以為異步調(diào)用。4.6修改事件修改事件依靠特定屬性值的布爾表達(dá)式所表示的條件的滿足來觸發(fā)狀態(tài)的轉(zhuǎn)換。修改事件表示了一種具有時間持續(xù)性的并且可能是涉及全局的計算過程。4.6修改事件監(jiān)護(hù)條件與修改事件的區(qū)別:監(jiān)護(hù)條件只是在引起轉(zhuǎn)換的觸發(fā)器事件觸發(fā)時和事件接收者對事件進(jìn)行處理時被賦值一次。修改事件則可以被多次賦值直到條件為真,多次賦值滿足條件后轉(zhuǎn)換也會被激發(fā)。4.7時間事件時間事件代表時間的流逝。時間事件既可以被指定為絕對形式(天數(shù)),也可以被指定為相對形式(從某一指定事件發(fā)生開始所經(jīng)歷的時間)。時間事件可以描述一個通知信息,自進(jìn)入狀態(tài)以來某個時間期限已到,時間事件就會激發(fā)狀態(tài)的轉(zhuǎn)換4.8延遲事件延遲事件是在本狀態(tài)不處理,要推遲到另外一個狀態(tài)才處理的事件。說明:在UML中,事件分為四類:(1)Callevent(調(diào)用事件)(2)Changeevent(變化事件)(3)Timeevent(時間事件)(4)Signalevent(信號事件)(1)
Callevent:Theeventofreceivingacallforanoperationthatisimplementedbyactionsonstatemachinetransitions.Callevent的語法格式如下:事件名([逗號分隔的參數(shù)列表])其中參數(shù)列表中的參數(shù)格式為:參數(shù)名:類型例:(2)
Changeevent:TheeventofaBooleanexpressionbecomingsatisfiedbecauseofachangetooneormoreofthevaluesitreferences.Changeevent用關(guān)鍵字when表示。例Changeevent和警戒條件(guardcondition)的區(qū)別:警戒條件只在所相關(guān)的事件出現(xiàn)后計算一次,如果值為false,則不進(jìn)行狀態(tài)轉(zhuǎn)移。(3)
Timeevent:Aneventthatdenotesthesatisfactionofatimeexpression,suchastheoccurrenceofanabsolutetimeorthepassageofagivenamountoftimeafteranobjectentersastate.Timeevent用關(guān)鍵字after或when表示。例:(4)
Signalevent:Aneventthatisthereceiptbyanobjectofasignalsenttoit,whichmaytriggeratransitioninitsstatemachine.Signalevent的語法格式和Callevent一樣。信號事件是一個異步事件,調(diào)用事件一般是一個同步事件。Signal(信號)一個信號表示由一個對象異步地發(fā)送、并由另一對象接收的一個已命名的對象。說明:信號用版型為<<signal>>的類圖標(biāo)表示。信號之間可以具有泛化關(guān)系,形成層次結(jié)構(gòu)。在UML中,例外(exception)是信號的一種。例:信號之間泛化關(guān)系的例子。5轉(zhuǎn)換轉(zhuǎn)換表示當(dāng)一個特定事件發(fā)生或者某些條件得到滿足時,一個源狀態(tài)下的對象在完成一定的動作后將發(fā)生狀態(tài)轉(zhuǎn)變,轉(zhuǎn)向另一個稱之為目標(biāo)狀態(tài)的狀態(tài)。轉(zhuǎn)換進(jìn)入的狀態(tài)為活動狀態(tài),轉(zhuǎn)換離開的狀態(tài)變?yōu)榉腔顒訝顟B(tài)。5轉(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)的選項如事件、動作和監(jiān)護(hù)條件。Transition圖例說明:狀態(tài)的之間的轉(zhuǎn)移通常是由事件觸發(fā)的,此時應(yīng)在轉(zhuǎn)移上標(biāo)出觸發(fā)轉(zhuǎn)移的事件表達(dá)式。如果轉(zhuǎn)移上未標(biāo)明事件,則表示在源狀態(tài)的內(nèi)部活動執(zhí)行完畢后自動觸發(fā)轉(zhuǎn)移。Transition的格式:
event-signature‘[’guard-condition‘]’‘/’action其中event-signature的格式為:event-name‘(’comma-separated-parameter-list‘)’一個轉(zhuǎn)移包括五部分:sourcestate,eventtrigger,guardcondition,action,targetstate.對于一個給定的狀態(tài),最終只能產(chǎn)生一個轉(zhuǎn)移,因此從相同的狀態(tài)出來的、事件相同的幾個轉(zhuǎn)移之間的條件應(yīng)該是互斥的。例:5轉(zhuǎn)換5.1外部轉(zhuǎn)換5.2內(nèi)部轉(zhuǎn)換5.3完成轉(zhuǎn)換5.4復(fù)合轉(zhuǎn)換5.5觸發(fā)事件5.6監(jiān)護(hù)條件5.7動作5轉(zhuǎn)換轉(zhuǎn)換種類:外部轉(zhuǎn)換內(nèi)部轉(zhuǎn)換完成轉(zhuǎn)換復(fù)合轉(zhuǎn)換轉(zhuǎn)換組成:源狀態(tài)目標(biāo)狀態(tài)觸發(fā)事件監(jiān)護(hù)條件動作5.1外部轉(zhuǎn)換外部轉(zhuǎn)換是一種改變對象狀態(tài)的轉(zhuǎn)換,是最常見的一種轉(zhuǎn)換。外部轉(zhuǎn)換用從源狀態(tài)到目標(biāo)狀態(tài)的箭頭表示。5.2內(nèi)部轉(zhuǎn)換內(nèi)部轉(zhuǎn)換有一個源狀態(tài)但是沒有目標(biāo)狀態(tài),它轉(zhuǎn)換后的狀態(tài)仍舊是它本身。內(nèi)部轉(zhuǎn)換的激發(fā)規(guī)則和改變狀態(tài)的外部轉(zhuǎn)換的激發(fā)規(guī)則相同。內(nèi)部轉(zhuǎn)換用于對不改變狀態(tài)的插入動作建立模型。5.3完成轉(zhuǎn)換完成轉(zhuǎn)換又稱為自轉(zhuǎn)換。完成轉(zhuǎn)換是因為沒有標(biāo)明觸發(fā)器事件的轉(zhuǎn)換是由狀態(tài)中的活動的完成引起的,是自然而然地完成的轉(zhuǎn)換。完成轉(zhuǎn)換也可以帶一個監(jiān)護(hù)條件,這個監(jiān)護(hù)條件在狀態(tài)中的活動完成時被賦值,而非活動完成后被賦值。內(nèi)部轉(zhuǎn)換和自轉(zhuǎn)換內(nèi)部轉(zhuǎn)換和自轉(zhuǎn)換(完成轉(zhuǎn)換)不同:自轉(zhuǎn)換是離開本狀態(tài)后重新進(jìn)入該狀態(tài),它會激發(fā)狀態(tài)的入口動作和出口動作的執(zhí)行。內(nèi)部轉(zhuǎn)換自始至終都不離開本狀態(tài),所以沒有出口或入口事件,也就不執(zhí)行入口和出口動作。5.4復(fù)合轉(zhuǎn)換復(fù)合轉(zhuǎn)換由簡單轉(zhuǎn)換組成,這些簡單轉(zhuǎn)換通過分支判定、分叉或接合組合在一起。除了兩個分支的判定,還有多條件的分支判定。多條件的分支判定有分為鏈?zhǔn)降暮头擎準(zhǔn)降姆种А?.4復(fù)合轉(zhuǎn)換鏈?zhǔn)椒种В?.4復(fù)合轉(zhuǎn)換非鏈?zhǔn)椒种В?.5觸發(fā)事件觸發(fā)事件是能夠引起狀態(tài)轉(zhuǎn)換的事件。事件產(chǎn)生的原因包括:調(diào)用、滿足條件的狀態(tài)的出現(xiàn)、到達(dá)時間點或經(jīng)歷某一時間段、發(fā)送信號等。5.6監(jiān)護(hù)條件監(jiān)護(hù)條件是觸發(fā)轉(zhuǎn)換必須滿足的條件,它是一個布爾表達(dá)式。監(jiān)護(hù)條件只能在觸發(fā)事件發(fā)生時被賦值一次,如果在轉(zhuǎn)換發(fā)生后監(jiān)護(hù)條件才由假變?yōu)檎?,那么轉(zhuǎn)換也不會被觸發(fā)。從一個狀態(tài)引出的多個轉(zhuǎn)換可以有同樣的觸發(fā)器事件,但是每個轉(zhuǎn)換必須具有不同的監(jiān)護(hù)條件。5.7動作動作是一組可執(zhí)行語句或者計算處理過程。動作可以包括發(fā)送消息給另一個對象、操作調(diào)用、設(shè)置返回值、創(chuàng)建和銷毀對象等。動作是原子的,不可中斷的,動作或動作序列的執(zhí)行不會被同時發(fā)生的其他動作影響或終止。整個系統(tǒng)可以在同一時間執(zhí)行多個動作。動作種類描述語法賦值對一個變量賦值Target:=expression調(diào)用調(diào)用目標(biāo)對象的一個操作,等待操作完成,可能有返回值se
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 第2.6講 指數(shù)與指數(shù)函數(shù)(原卷版)-2024年高考數(shù)學(xué)一輪復(fù)習(xí)精講精練寶典(新高考專用)
- 菏澤黃底真石漆施工方案
- 第三單元課外古詩詞教學(xué)設(shè)計 2024-2025學(xué)年七年級上冊同步
- 博物館拆遷合同范本
- 優(yōu)化公司供應(yīng)商管理的工作計劃
- 構(gòu)建班級學(xué)習(xí)共同體的工作策略計劃
- 老年肺炎區(qū)別護(hù)理
- 公司生產(chǎn)工作計劃改善生產(chǎn)線平衡性
- 農(nóng)業(yè)發(fā)展安全服務(wù)保障藍(lán)圖計劃
- 小班集體游戲的安排與實施計劃
- 咨詢行業(yè)人工智能應(yīng)用研究
- SLT 478-2021 水利數(shù)據(jù)庫表結(jié)構(gòu)及標(biāo)識符編制總則
- GB/T 44251-2024腿式機(jī)器人性能及試驗方法
- MIL-STD-1916抽樣計劃表(抽樣數(shù))大
- 【異丙苯法生產(chǎn)苯酚的工藝設(shè)計18000字(論文)】
- 馬克思主義基本原理概論400道(考點提分)
- 研究生調(diào)劑合同
- 【翻譯知識】新聞標(biāo)題翻譯
- MSDS中文版(鋰電池電解液)
- 復(fù)調(diào)音樂巡禮-巴赫勃蘭登堡協(xié)奏曲 課件-2023-2024學(xué)年高中音樂人音版(2019)必修音樂鑒賞
- 2024年中國煤科煤炭科學(xué)技術(shù)研究院有限公司招聘筆試參考題庫含答案解析
評論
0/150
提交評論