軟件工程uml用戶指南_第1頁
軟件工程uml用戶指南_第2頁
軟件工程uml用戶指南_第3頁
已閱讀5頁,還剩3頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第五部分對(duì)高級(jí)行為建模第五部分對(duì)高級(jí)行為建模第20事件和信 :在現(xiàn)實(shí)世界中,事情在發(fā)生。不僅事情在發(fā)生,而且許多事情都在同一時(shí)間發(fā)生,或發(fā)生有意義的事情的規(guī)格說明。在狀態(tài)機(jī)的語境中,使用事件來描述一個(gè)激發(fā)的產(chǎn)生,激發(fā)能夠觸發(fā)一個(gè)狀態(tài)的轉(zhuǎn)換。事件包括信號(hào)、調(diào)用、時(shí)間推移或狀態(tài)改變。 第20事件和信 :在現(xiàn)實(shí)世界中,事情在發(fā)生。不僅事情在發(fā)生,而且許多事情都在同一時(shí)間發(fā)生,或發(fā)生有意義的事情的規(guī)格說明。在狀態(tài)機(jī)的語境中,使用事件來描述一個(gè)激發(fā)的產(chǎn)生,激發(fā)能夠觸發(fā)一個(gè)狀態(tài)的轉(zhuǎn)換。事件包括信號(hào)、調(diào)用、時(shí)間推移或狀態(tài)改變。 動(dòng)態(tài)特性,并且這些動(dòng)態(tài)特性是由內(nèi)部或外部發(fā)生的事情所觸發(fā)的。在一個(gè)ATM圖20-1第五部分在UML中,每個(gè)發(fā)生的事情都被建模為一個(gè)事件。一個(gè)事件是對(duì)一個(gè)第五部分在UML中,每個(gè)發(fā)生的事情都被建模為一個(gè)事件。一個(gè)事件是對(duì)一個(gè)在時(shí)間和空間上占一定位置的有意義的事情的規(guī)格說明。信號(hào)、時(shí)間推移或狀態(tài)改變是異步事件,表示事件能在任何時(shí)間發(fā)生。調(diào)用一般是同步事件,表示對(duì)一個(gè)操作的調(diào)用。UML提供了對(duì)事件的圖形化表示,如圖20-1所示。這種表示法允許你將事件號(hào)offHook)以及用來觸發(fā)一個(gè)狀態(tài)轉(zhuǎn)換的事件的使用(如信號(hào)offHook,導(dǎo)致了一部(從 事件(event)是對(duì)一個(gè)在時(shí)間和空間上占有一定位置的有意義的事情的規(guī)格說明。在狀態(tài)機(jī)的語境中,一個(gè)事件是一次激發(fā)的產(chǎn)生,激發(fā)能夠觸發(fā)一個(gè)狀態(tài)轉(zhuǎn)換。信號(hào)(signal)是一種事件,表示一個(gè)在實(shí)例間進(jìn)行通信的異步激發(fā)的規(guī)格說明。1.事件可以是內(nèi)部的事件或外部的事件。外部的事件是在系統(tǒng)和它的參與者之間傳送的事件。例如一個(gè)按鈕的按下和一個(gè)碰撞檢測(cè)器的中斷都是外部事件。內(nèi)部事件是在系統(tǒng)內(nèi)部的對(duì)象之間傳送的事件。溢出異常是一個(gè)內(nèi)部事件的例子16章31系你可以用UML對(duì)4種事件進(jìn)行建模:信號(hào)、調(diào)用、時(shí)間推移和狀態(tài)的一次改變對(duì)象的創(chuàng)和撤銷也是一種信號(hào),這在第152.一個(gè)信號(hào)表示由一個(gè)對(duì)象異步地發(fā)送、并由另一對(duì)象接收的一個(gè)已命名的對(duì)象。目前多數(shù)編程語言都支持異常情況的處理,異常情況是需要你去建模的最常見的一種內(nèi)部信號(hào)。信號(hào)和簡(jiǎn)單的類有許多共同之處。例如,信號(hào)可以有實(shí)例,盡管一般不需要對(duì)實(shí)例進(jìn)行顯式地建模。信號(hào)還可以包含在泛化關(guān)系中,以便對(duì)事件的層次結(jié)構(gòu)建模,有些信號(hào)是一般的(NetworkFailure),有些信號(hào)是特殊的(如NetworkFailureWarehouseServerFailure。像類一樣,信號(hào)也可以有屬性和操作4章和第9章類;在第5章和第10一個(gè)信號(hào)的屬性以它的參數(shù)形式出現(xiàn)。例如當(dāng)你發(fā)送一個(gè)信號(hào)可以用參數(shù)的形式說明它的屬性值,例如(5.3一個(gè)信號(hào)可以作為狀態(tài)機(jī)中一個(gè)狀態(tài)轉(zhuǎn)換的動(dòng)作而被發(fā)送,或者作為交互中一個(gè)消息的發(fā)送而被發(fā)送。一個(gè)操作的執(zhí)行也可以發(fā)送信號(hào)。事實(shí)上,當(dāng)你為一個(gè)類或一個(gè)接口建模時(shí),說明該元素行為的一個(gè)重要部分就是說明它的操作所發(fā)送的信號(hào)。在UMLsend的依賴關(guān)系對(duì)一個(gè)操作和它所發(fā)送的事件之間的關(guān)系進(jìn)行建模21章15交互;在第11接口;在第5依賴;在第6在UML中,如圖20-2所示,你可以將信號(hào)(和異常)建模為構(gòu)造型化的類。你可以用一第20章事件和信 構(gòu)造型為send圖20-23.種情況中,事件均第20章事件和信 構(gòu)造型為send圖20-23.種情況中,事件均可觸發(fā)狀態(tài)機(jī)中的一個(gè)狀態(tài)轉(zhuǎn)換21章信號(hào)是一個(gè)異步事件,而調(diào)用事件一般來說是同步的。也就是說,當(dāng)一個(gè)對(duì)象調(diào)用另一個(gè)具有狀態(tài)機(jī)的對(duì)象的一個(gè)操作時(shí),控制就從發(fā)送者傳送到接收者,該事件觸發(fā)轉(zhuǎn)換,完成操作后,接收者轉(zhuǎn)換到一個(gè)新的狀態(tài),控制返還給發(fā)送者。如圖20-3圖20-3注釋 盡管沒有可視的線索能夠區(qū)分信號(hào)事件和調(diào)用事件,但在模型的基架上它們的區(qū)別還是顯而易見的。通過在操作列表中標(biāo)明該操作,事件的接收者將知道其中的區(qū)別。通常,一個(gè)信號(hào)由它的狀態(tài)機(jī)來處理,而一個(gè)調(diào)用事件則由一個(gè)方法來處理。你可以利用工具進(jìn)行從事件到信號(hào)或到操作的導(dǎo)航。4.時(shí)間事件是表示一段時(shí)間推移的事件。如圖20-4所示,在UML中,用關(guān)鍵字after跟著計(jì)算一段時(shí)間的表達(dá)式來對(duì)一個(gè)時(shí)間事件建模。表達(dá)式可以是簡(jiǎn)單的(如afteseconds,也可以是復(fù)雜的(如after1mssinceexitingdl非顯式地說明,變化事件是表示狀態(tài)中的一個(gè)變化或某些條件的滿足的事件。如圖20-4所示,在UML用關(guān)鍵字when個(gè)絕對(duì)的時(shí)間(如whentime=1altitude<10。:59對(duì)一個(gè)表達(dá)式作不間斷地測(cè)試(如whe注 盡管變化事件可以對(duì)一個(gè)要被不斷測(cè)試的條件建模,但你還是可以典型地分析第五部分圖20-45. 對(duì)象的語義是相互第五部分圖20-45. 對(duì)象的語義是相互影響的【在第22章任何類的任何實(shí)例都可以發(fā)送信號(hào)給一個(gè)接收對(duì)象,或調(diào)用接收對(duì)象的操作。當(dāng)對(duì)象發(fā)送信號(hào)時(shí),發(fā)送者調(diào)度信號(hào),然后沿它的控制流繼續(xù)進(jìn)行,并不等待接收者的任何響應(yīng)。例如,如果與一個(gè)TMpushButton,該參與者將沿著自己的路線繼續(xù)進(jìn)行,而不依賴于信號(hào)被發(fā)送到的系統(tǒng)。相反,當(dāng)一個(gè)對(duì)象調(diào)用一個(gè)操作時(shí),發(fā)送者調(diào)度這個(gè)操作,然后等待接收者的響應(yīng)。例如,在一個(gè)商務(wù)系統(tǒng)中,類TraderTrade的某些實(shí)例上的操作ion,因而影響對(duì)象Trade的狀態(tài)。如果這一個(gè)同步的調(diào)用,那么,對(duì)象Trader將一直等待直到該操作結(jié)束13章注釋在某些情況下,你可能想要顯示一個(gè)對(duì)象向一組對(duì)象(多點(diǎn)播送)發(fā)送信號(hào),或者向系統(tǒng)中列出的所有對(duì)象(廣播)發(fā)送信號(hào)。對(duì)多點(diǎn)播送建模時(shí),應(yīng)顯示一個(gè)對(duì)象向一組接收者集合上發(fā)送信號(hào)。對(duì)廣播建模時(shí),應(yīng)顯示一個(gè)對(duì)象,它發(fā)送信號(hào)到另一個(gè)代表整個(gè)系統(tǒng)的對(duì)象。收者的控制流,直至該操作的活動(dòng)完成。如果這是一個(gè)信號(hào),那么發(fā)送者和接收者并不匯合:義對(duì)事件的響應(yīng)),它將觸發(fā)接收者的狀態(tài)機(jī)(如果有的話)第21狀態(tài)機(jī);在第22在UML中,你可以將一個(gè)對(duì)象可能接收的調(diào)用事件建模為這個(gè)對(duì)象的類上的操作。在中,你可以在類的附加欄中對(duì)信號(hào)命名,來對(duì)對(duì)象可能接收的已命名的信號(hào)進(jìn)行建模,如圖20-第20章事件和信 所示4章操作;在第4注 你也可以將已命名的信號(hào)以相同的方式附第20章事件和信 所示4章操作;在第4注 你也可以將已命名的信號(hào)以相同的方式附加到一個(gè)接口上。在這種情況下,你中列出的是異步操作的信號(hào)11章接口;在第22圖20-5 號(hào)(如)和內(nèi)部信號(hào)(如HardwareFault相交。在這兩種粗略的分類中,你甚至可以發(fā)現(xiàn)特化。例如,信號(hào)HardwareFault可以被進(jìn)一步特化為BatteryFault和MovementFault。甚至這些信號(hào)還可以進(jìn)一步被特化,如MoterStall是MovementFault的一種5章和第10章通過以這種方式對(duì)信號(hào)的層次建模,你可以說明多態(tài)的事件。例如,考慮一個(gè)狀態(tài)機(jī),它有一個(gè)僅當(dāng)接收到Motorstall才能觸發(fā)的轉(zhuǎn)換。作為這個(gè)層次中的葉子信號(hào),該轉(zhuǎn)換只能被此信號(hào)觸發(fā),所以,它不是多態(tài)的。相反,假如狀態(tài)機(jī)存在一個(gè)由HardwareFault的接收所觸發(fā)的轉(zhuǎn)換,則這個(gè)轉(zhuǎn)換是多態(tài)的,并能被一個(gè)HardwareFault或它的任何一種特化信號(hào)(包括BatteryFault、MovementFault和MotorStall)在第21章中對(duì)信號(hào)的族建模,要遵循如下的策略:尋找信號(hào)的公共類,并使用繼承將它們放在一般/圖20-6機(jī)器人處理的信號(hào)的族建模。注意根信號(hào)(RobotSignal)象的,它沒有任何具體的實(shí)例。這個(gè)信號(hào)有兩個(gè)具體的直接特化信號(hào)(和Coll第五部分HardwareFault其中HardwareFault還可以進(jìn)一步被特化。注意信號(hào)個(gè)參數(shù)第五部分HardwareFault其中HardwareFault還可以進(jìn)一步被特化。注意信號(hào)個(gè)參數(shù)5章圖20-6 可視化、詳述和文檔化類或接口的行為的一個(gè)重要部分是說明它的操作會(huì)產(chǎn)生的異常情況。如果交給你一個(gè)類或接口,你可以調(diào)用的操作是很清楚的,但每個(gè)操作所可能發(fā)生的異常則不清楚,除非你顯式地對(duì)它們建模4章和第9章類;在第11在UML中,異常是一種信號(hào),并被建模為構(gòu)造型化的類。異??梢员桓郊拥讲僮鞯恼f明中6章對(duì)于每個(gè)操作,描述可能出現(xiàn)的異常??梢燥@式地表示(通過顯示從一個(gè)操作到它的異常的Send依賴關(guān)系,也可以將它放在操作的說明中。圖20-7描述的是對(duì)異常的一個(gè)分層結(jié)構(gòu)建模,這些異常是由一個(gè)包容器類(如模板類Exception為根,它包括3個(gè)特殊異常:的標(biāo)準(zhǔn)庫的。這個(gè)分層結(jié)構(gòu)以抽象信號(hào)Duplicate、Overflow和Underflow。如圖20-7所示,操作異常DuplicateOverflow,操作remove異常Un

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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)論