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

下載本文檔

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

文檔簡介

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

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論