版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第四章 動(dòng)態(tài)建模系統(tǒng)的動(dòng)態(tài)行為是指對(duì)象是如何通過(guò)通信來(lái)進(jìn)行協(xié)作的,以及系統(tǒng)中的對(duì)象是如何在系統(tǒng)的生命周期內(nèi)改變狀態(tài)的。交互(Interaction):為產(chǎn)生某種功能而在一組對(duì)象之間進(jìn)行的通信過(guò)程。描述交互的動(dòng)態(tài)圖:· 狀態(tài)圖(State Diagram):可以描述一個(gè)對(duì)象在其生命周期中擁有哪些狀態(tài),該對(duì)象在這些狀態(tài)下的行為,以及什么樣的事件會(huì)導(dǎo)致?tīng)顟B(tài)發(fā)生改變。· 交互圖(Interaction Diagram):可以描述對(duì)象之間是如何進(jìn)行交互和通信的。包括順序圖(Sequence Diagram)、通信(協(xié)作)圖(Communication Diagram)、交互概觀圖(I
2、nteraction Overview Diagram)以及時(shí)序圖(Timing Diagram)。其中,順序圖和通信圖都可以顯示交互。但是順序圖的焦點(diǎn)在時(shí)間上, 而通信圖的焦點(diǎn)在空間上。交互概觀圖顯示了一些作為一個(gè)較大交互流的部分內(nèi)容的交互圖。時(shí)序圖顯示沿著一個(gè)精確時(shí)間軸的交互。· 活動(dòng)圖(Activity Diagram):是另外一種顯示交互的方法,但是活動(dòng)圖的主要焦點(diǎn)是工作。4.1 對(duì)象之間的交互兩個(gè)對(duì)象之間的交互是通過(guò)一個(gè)對(duì)象向另一個(gè)對(duì)象發(fā)送消息來(lái)實(shí)現(xiàn)的。消息的類(lèi)型:· 簡(jiǎn)單消息:一個(gè)平直的控制流。簡(jiǎn)單消息顯示了控制是如何從一個(gè)對(duì)象傳遞到另一個(gè)對(duì)象的,這個(gè)過(guò)程中并沒(méi)
3、有描述任何有關(guān)對(duì)象之間通信的細(xì)節(jié)信息。· 同步消息:一個(gè)嵌套的控制流,一般是作為操作調(diào)用來(lái)實(shí)現(xiàn)的。只有在處理該消息的操作結(jié)束之后,調(diào)用者才能恢復(fù)繼續(xù)執(zhí)行。· 異步消息:異步的控制流。對(duì)象之間的異步消息表明了不等待語(yǔ)義;發(fā)送者不必等待該消息處理完就可以繼續(xù)執(zhí)行。同步消息異步消息簡(jiǎn)單消息立即返回的同步消息圖4.1 消息類(lèi)型注解4.2 狀態(tài)圖4.2.1 狀態(tài)和轉(zhuǎn)換 狀態(tài)和狀態(tài)轉(zhuǎn)換的概念一個(gè)對(duì)象的狀態(tài)是該對(duì)象在此之前所執(zhí)行的所有活動(dòng)的結(jié)果,通常是由對(duì)象的屬性值所決定的,并且會(huì)鏈接到其他對(duì)象。有關(guān)對(duì)象狀態(tài)的例子:· 貨物(對(duì)象)已經(jīng)付款(狀態(tài));· 小轎車(chē)(對(duì)象)
4、靜止不動(dòng)(狀態(tài));· 機(jī)器的引擎(對(duì)象)在運(yùn)轉(zhuǎn)(狀態(tài));· Jim(對(duì)象)擔(dān)任銷(xiāo)售員的角色(狀態(tài));· Kate(對(duì)象)結(jié)婚了(狀態(tài))。當(dāng)一個(gè)事件發(fā)生時(shí),對(duì)象就可能會(huì)改變狀態(tài)。對(duì)象的動(dòng)態(tài)行為可以表現(xiàn)在兩個(gè)方面:交互和內(nèi)部狀態(tài)的變化。 狀態(tài)圖的組成部分· 起始點(diǎn)(初態(tài))(Initial State)· 結(jié)束點(diǎn)(終態(tài))(Final State)· 狀態(tài)(State)· 狀態(tài)轉(zhuǎn)換(State Transition)· 導(dǎo)致?tīng)顟B(tài)發(fā)生轉(zhuǎn)換的事件狀態(tài)轉(zhuǎn)換激發(fā)(Fire)或狀態(tài)轉(zhuǎn)換被觸發(fā)(Triggered)UnpaidPaid
5、刪除貨物對(duì)象付款創(chuàng)建貨物對(duì)象圖4.2 貨物對(duì)象的狀態(tài)圖Onfirst floorMovingupMovingdownMoving tofirst floorIdlearrivedarrivedarrivedgo upgo upgo downtime-out圖4.3 電梯對(duì)象的狀態(tài)圖 狀態(tài)的組成部分狀態(tài)名狀態(tài)變量活動(dòng)圖4.4 狀態(tài)的三個(gè)部分:狀態(tài)名、狀態(tài)變量和活動(dòng) 活動(dòng)組成在活動(dòng)組成中可能會(huì)使用的三個(gè)標(biāo)準(zhǔn)事件:entry, exit和do?;顒?dòng)組成的形式語(yǔ)法(Formal Syntax)是:event-name argument-list /action-expression LoginLogi
6、n time = Current timeentry/type“l(fā)ogin”exit/login(user name, password)do/get user namedo/get passwordhelp/display help圖4.5 一個(gè)名為login的狀態(tài) 狀態(tài)轉(zhuǎn)換Startingapplicationsdo/loadapplicationsStarting OSdo/load OSBootdo/run biosprogram圖4.6 不帶顯式事件的狀態(tài)轉(zhuǎn)換用于確定一個(gè)狀態(tài)轉(zhuǎn)換的形式語(yǔ)法是:event-signature guard-condition/ action-expres
7、sion send-clause其中,event-signature的語(yǔ)法定義為:event-name(parameter, .)并且send-clause的語(yǔ)法是:destination-expressiondestination-event-name(argument,)Event-Signature(事件簽名)event-signature包括一個(gè)事件名(event-name)和相關(guān)的參數(shù)。參數(shù)列表的語(yǔ)法是:Parameter-name:type-expression, Parameter-name:type-expression Onfirst floorMoving tofirst
8、floorIdlearrivedarrivedarrivedgo up (floor)go up (floor)go down (floor)time-outMoving updo/moving to floorMoving downdo/moving to floor圖4.7 狀態(tài)轉(zhuǎn)換上所附的事件帶有一個(gè)參數(shù)floor帶event-signature的狀態(tài)轉(zhuǎn)換的例子如下:draw (f : Figure , c : Color )redraw ( )redrawprint ( invoice )Initializingdo/bootupWorkingShutting Downturn PC
9、onshut down圖4.8 GUI 的狀態(tài)和狀態(tài)轉(zhuǎn)換Guard-Condition(保護(hù)條件)Onfirst floorMoving tofirst floorarrivedarrivedarrivedgo up (floor)go up (floor)go down (floor)timer = time-outMoving updo/moving to floorMoving downdo/moving to floorIdletimer = 0do/increase timer圖4.9 guard-condition:timer = time-out帶一個(gè)guard-conditio
10、n的狀態(tài)轉(zhuǎn)換的例子如下: t = 15 sec number of invoices > n withdrawal ( amount ) balance >= amount Initializingdo/bootupWorkingShutting Downturn PC onshut downScreensavingtime outkeystrokeormouse movement圖4.10 帶保護(hù)條件的GUI 的狀態(tài)圖Action-Expression(動(dòng)作表達(dá)式)Onfirst floorarrivedarrivedgo up (floor)go up (floor)go do
11、wn (floor)timer = time-out / go down (first floor)Moving updo/moving to floorMoving downdo/moving to floorIdletimer = 0do/increase timer圖4.11 在Idle 狀態(tài)和On first floor 狀態(tài)之間的狀態(tài)轉(zhuǎn)換上有一個(gè)guard-condition和一個(gè) action-expression。帶有action-expression的狀態(tài)轉(zhuǎn)換的例子如下:increase ( ) / n : = n+1 / m : = m+1add (n) / sum : =
12、sum + n/ flashSend-Clause(發(fā)送語(yǔ)句)send-clause是動(dòng)作的特殊情況。它是一個(gè)用于在兩個(gè)狀態(tài)的轉(zhuǎn)換過(guò)程中發(fā)送消息的顯式語(yǔ)法。該語(yǔ)法包括一個(gè)destination-expression和一個(gè)event-name。例如,下面的action-expression: timer = Time-out / go down ( first floor )可以被轉(zhuǎn)換成如下的send-clause: timer = Time-out self.go down ( first floor )其他帶有send-clause的狀態(tài)轉(zhuǎn)換的例子如下:out_of_paper ( ) in
13、dicator.light( )left_mouse_btn_down ( location ) / color := pick_color ( location ) pen.set ( color )4.2.2 事件事件是指發(fā)生的某件事情,它可以導(dǎo)致產(chǎn)生某一動(dòng)作。Displaydo/displaycurrent timeSet minutedo/displayminutesSet hoursdo/display hoursmode_buttonmode_buttoninc/hours := hours + 1inc/minutes := minutes + 1mode_buttonDigit
14、al_watchmode_button()inc()類(lèi)狀態(tài)圖圖4.12 Digital_watch類(lèi)及其相應(yīng)的狀態(tài)圖在UML中有以下四種類(lèi)型的事件:· 條件變?yōu)檎妫哼@種事件在圖形上顯示為一個(gè)狀態(tài)轉(zhuǎn)換上的guard-condition條件。· 接收到一個(gè)顯式的來(lái)自其他對(duì)象的信號(hào):在圖形上顯示為狀態(tài)轉(zhuǎn)換上的一個(gè)event-signature。· 接收到操作調(diào)用:對(duì)象調(diào)用了另一個(gè)對(duì)象中的操作。在圖形上顯示為狀態(tài)轉(zhuǎn)換上的一個(gè) event-signature。· 指定的一段時(shí)間的消耗:在圖形上顯示為狀態(tài)轉(zhuǎn)換上的一個(gè)時(shí)間表達(dá)式。錯(cuò)誤也是一種事件例如:errorout
15、_of_memory類(lèi)可以接收或發(fā)送消息。信號(hào)也是普通的類(lèi),但只用于發(fā)送信號(hào)。信號(hào)類(lèi)可以使用signal構(gòu)造型來(lái)構(gòu)造。signalInputabstractdevice: Devicetime: TimesignalMouseabstractup: Booleandown: BooleanxPos: IntyPos: IntsignalKeyboardcharacter: Charup: Booleandown: BooleansignalVoice Recognitioncommando: stringsignalRight MouseButtonsignalLeft MouseButton
16、Senddo/send(input) to corresponding classIdleInput輸入信號(hào)Input可以是下述任意一種類(lèi)的對(duì)象:Keyboard, Left Mouse Button, Right Mouse Button, Voice Recognition圖4.13 帶抽象父類(lèi)的信號(hào)類(lèi)層次結(jié)構(gòu)Java ImplementationDisplaydo/displaycurrent timeSet minutedo/displayminutesSet hoursdo/display hoursmode_buttonmode_buttoninc/hours := hours +
17、 1 modulo 24inc/minutes := minutes + 1 modulo 60mode_button圖4.14 一個(gè)數(shù)字手表的狀態(tài)圖public class State public final int Display = 1; public final int Set_hours = 2; public final int Set_minutes = 3; public int value;public class Watchprivate State state = new State ( );private DigitalDisplay LCD = new Digita
18、lDisplay ( ); public Watch ( ) state.value = State.Display ( ); LCD.display_time ( ); public void mode_button ( ) switch ( state.value ) case State.Display : LCD.display_time ( ); state.value = State.Set_hours; break;case State.Set_Hours : LCD.display_hours ( ); state.value = State.Set_minutes; brea
19、k; case State.Set_minutes : LCD.display_time ( ); state.value = State.Display; break;public void inc ( )case ( state.value )case State.Display :;break;case State.Set_hours :LCD.inc_hours ( );break;case State.Set_minutes :LCD.inc_minutes ( );break;使用中維修中閑置報(bào)廢修好損壞多余重新使用不能修好超過(guò)年限圖4.15 一個(gè)設(shè)備使用狀態(tài)的狀態(tài)圖4.3 在狀態(tài)
20、圖之間發(fā)送消息On/StopOn/PlayOffOffOnOn ()Off ()Play ()Stop ()Remote ControlOn ()Play ()Off ()Stop ()Off()/Stop()CD PlayerOn ()Off ()Play ()Stop ()圖4.16 遙控器對(duì)象(Remote Control)向CD播放機(jī)對(duì)象(CD Player)發(fā)送消息待命啟動(dòng)加熱計(jì)時(shí)關(guān)機(jī)加熱開(kāi)機(jī)關(guān)機(jī)暫停溫度計(jì)時(shí)控制器電烤箱加熱( )加熱( )關(guān)機(jī)( ) 計(jì)時(shí)器5分鐘關(guān)機(jī)( )加熱( )關(guān)機(jī)( )溫度120溫度140圖4.17 狀態(tài)圖之間的消息發(fā)送4.3.1 子狀態(tài)一個(gè)狀態(tài)可以包含一些嵌套的子狀態(tài)(Substate)。這些子狀態(tài)可能是與子狀態(tài)(And-substate),也可能是或子狀態(tài)(Or-substate)。ForwardBackwardRunning圖4.18 或子狀態(tài)ForwardBackwardHigh speedLow speedRunning圖4.19 與子狀態(tài)待機(jī)提速運(yùn)行減速使用中啟動(dòng)開(kāi)機(jī)到達(dá)運(yùn)行速度停機(jī)速度=0圖4.20 描述設(shè)備使用狀況的嵌套狀態(tài)圖4.3.2 歷史指示器歷史指示器(History
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度年會(huì)場(chǎng)地租賃及現(xiàn)場(chǎng)直播服務(wù)合同4篇
- 二零二五年度農(nóng)用拖拉機(jī)售后服務(wù)與技術(shù)支持合同4篇
- 2025年度迷你氣象站智能預(yù)警系統(tǒng)定制合同4篇
- 2025年培訓(xùn)特許經(jīng)營(yíng)合同
- 二零二五版苗木養(yǎng)護(hù)與園林工程承包合同3篇
- 2025年度裝飾藝術(shù)鋼化玻璃定制合同2篇
- 二零二五年度智能農(nóng)業(yè)機(jī)械租賃服務(wù)合同4篇
- 2024年度青海省公共營(yíng)養(yǎng)師之三級(jí)營(yíng)養(yǎng)師自我檢測(cè)試卷A卷附答案
- 2025年度個(gè)人知識(shí)產(chǎn)權(quán)維權(quán)委托合同樣本4篇
- 2024年度青海省公共營(yíng)養(yǎng)師之三級(jí)營(yíng)養(yǎng)師考前沖刺試卷A卷含答案
- 2024版塑料購(gòu)銷(xiāo)合同范本買(mǎi)賣(mài)
- 2024-2025學(xué)年人教新版高二(上)英語(yǔ)寒假作業(yè)(五)
- JJF 2184-2025電子計(jì)價(jià)秤型式評(píng)價(jià)大綱(試行)
- GB/T 44890-2024行政許可工作規(guī)范
- 2024年安徽省中考數(shù)學(xué)試卷含答案
- 2025屆山東省德州市物理高三第一學(xué)期期末調(diào)研模擬試題含解析
- 2024年滬教版一年級(jí)上學(xué)期語(yǔ)文期末復(fù)習(xí)習(xí)題
- 兩人退股協(xié)議書(shū)范文合伙人簽字
- 2024版【人教精通版】小學(xué)英語(yǔ)六年級(jí)下冊(cè)全冊(cè)教案
- 汽車(chē)噴漆勞務(wù)外包合同范本
- 微項(xiàng)目 探討如何利用工業(yè)廢氣中的二氧化碳合成甲醇-2025年高考化學(xué)選擇性必修第一冊(cè)(魯科版)
評(píng)論
0/150
提交評(píng)論