uml建模風(fēng)格之狀態(tài)圖28669

uml建模風(fēng)格之狀態(tài)圖28669

ID:14329714

大小:53.00 KB

頁數(shù):6頁

時間:2018-07-28

uml建模風(fēng)格之狀態(tài)圖28669_第1頁
uml建模風(fēng)格之狀態(tài)圖28669_第2頁
uml建模風(fēng)格之狀態(tài)圖28669_第3頁
uml建模風(fēng)格之狀態(tài)圖28669_第4頁
uml建模風(fēng)格之狀態(tài)圖28669_第5頁
資源描述:

《uml建模風(fēng)格之狀態(tài)圖28669》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫

1、UML建模風(fēng)格之狀態(tài)圖UML狀態(tài)圖描述一個實體基于事件反應(yīng)的動態(tài)行為,顯示了該實體如何根據(jù)當(dāng)前所處的狀態(tài)對不同的時間做出反應(yīng)的。通常我們創(chuàng)建一個UML狀態(tài)圖是為了以下的研究目的:1.研究類、角色、子系統(tǒng)、或組件的復(fù)雜行為。2.建模實時系統(tǒng)。指南∶概要當(dāng)行為的改變和狀態(tài)有關(guān)時才創(chuàng)建狀態(tài)圖把初始狀態(tài)放置在左上角把最終狀態(tài)放置在右下角狀態(tài)指南狀態(tài)名稱要簡單但應(yīng)具有描述性避免"黑洞"狀態(tài)避免"奇跡"狀態(tài)子狀態(tài)建模指南為復(fù)雜的目標(biāo)建模子狀態(tài)把通用的子狀態(tài)變換放在一起為復(fù)雜的實體創(chuàng)建一個分層的狀態(tài)圖最高階的狀態(tài)圖總有初始態(tài)和最終態(tài)變換和動作用實現(xiàn)語言的命

2、名規(guī)則命名軟件動作用敘述性文字命名角色動作只有對所有的入口變換都合適時才注明入口動作只有對所有的出口變換適合時才注明出口動作只有當(dāng)你想終止并再進入該狀態(tài)時才建模遞歸變換6用過去式命名轉(zhuǎn)換事件把轉(zhuǎn)換標(biāo)記放在接近源狀態(tài)的地方以轉(zhuǎn)換方向為基礎(chǔ)放置變換標(biāo)記警界點警戒點不應(yīng)該重疊為可視化的定位警戒點而引入接合點警戒點不必配套一致的命名警戒點一、通用準(zhǔn)則1.當(dāng)行為的改變和狀態(tài)有關(guān)時才創(chuàng)建狀態(tài)圖敏捷建模(AM)(Ambler2002)的原則--最大化項目干系人的投資--建議你只有當(dāng)模型能夠提供正面價值的時候才創(chuàng)建模型。如果一個實體,比如一個類或組件,表示的

3、行為的順序和當(dāng)前的狀態(tài)無關(guān),那么畫一個UML狀態(tài)圖可能是沒有什么用處的。例如一個SurfaceAddress類就很簡單,表示了那些你將會在系統(tǒng)中顯示和操作的數(shù)據(jù),因此一個UML狀態(tài)圖就沒有任何相關(guān)之處。而一個Seminar對象就非常的復(fù)雜,學(xué)生注冊這樣一個事件將會根據(jù)它的當(dāng)前狀態(tài)有不同的反應(yīng),就像你在圖1中看到的。圖1.班級注冊的一個UML狀態(tài)圖。2.把初始狀態(tài)放置在左上角如你在圖1所見的,初始狀態(tài)被建模成一個實心圈,把初始狀態(tài)放在左上角反映西方人的閱讀文化的習(xí)慣。3.把最終狀態(tài)放置在右下角6如你在圖1所見,最終狀態(tài)被建模為一個帶邊界的實

4、心圓。把最終狀態(tài)放右下角反映了西方的文化的從左到右,從上到下的閱讀習(xí)慣。二、狀態(tài)指南狀態(tài)是一個實體的行為模式的某個階段。狀態(tài)的表示是通過實體的屬性值。例如,在圖1中,當(dāng)seminar被標(biāo)記為open,并且存在空位的時候,seminar就處于OpenForEnrollment的狀態(tài)。1.狀態(tài)名稱要簡單但應(yīng)具有描述性象OpenForEnrollment和Proposed這種的狀態(tài)名稱很容易理解,從而提高了圖⒈的溝通價值。理論上狀態(tài)名稱應(yīng)該是現(xiàn)在時,但是用過去式寫成的諸如Proposed的名稱要比用現(xiàn)在時寫成的諸如IsProposed的名稱好的

5、多。2.避免"黑洞"狀態(tài)黑洞狀態(tài)是那種只有變換進來但沒有任何變換發(fā)出的狀態(tài),這種情況要么由于該狀態(tài)是一個最終狀態(tài),要么就是你已經(jīng)錯過了一個或多個變換變換。3.避免"奇跡"狀態(tài)奇跡狀態(tài)是那種只有變換發(fā)出但沒有任何變換進來的狀態(tài),這種情況要么由于該狀態(tài)是一個起點,要么就是你已經(jīng)錯過了一個或多個變換變換。三、子狀態(tài)建模指南1.為復(fù)雜的目標(biāo)建模子狀態(tài)圖1中展示的UML狀態(tài)圖是不完整的,因為它沒有建模Seminar的post-enrollment(注冊后)狀態(tài)。圖1建模了一個Seminar的完整的生命周期,把圖1描述為一個新的包括子狀態(tài)集合的E

6、nrollment的復(fù)合狀態(tài),也稱作超狀態(tài)。注意按理說你會像圖1的模型那樣處理標(biāo)記,但為了簡化起見在原先變換上的標(biāo)記都沒有包括在內(nèi)。當(dāng)一個現(xiàn)有狀態(tài)表現(xiàn)出復(fù)雜的行為時,建模子狀態(tài)就是有意義的,從而促使你來研究它的子狀態(tài)。當(dāng)幾個現(xiàn)有狀態(tài)共用一個通用的入口條件或出口條件(Douglass1999)時,引入超狀態(tài)是有意義的,在圖1中你可以看到所有的狀態(tài)共用一個通用的closed變換,以到達最終狀態(tài)。6圖2.Seminar的完整生命周期2.把通用的子狀態(tài)變換放在一起和圖1中每一個子狀態(tài)都擁有一個cancelled變換不同,在圖1中你可以看到cancel

7、led變換僅用于描述Enrollment超狀態(tài),這使圖形得到簡化。如果子狀態(tài)都共享一個入口變換或出口變換,都可以使用一個同樣的方法。變換上的警戒點和動作(如果有)也應(yīng)該使相等的。3.為復(fù)雜的實體創(chuàng)建一個分層的狀態(tài)圖雖然這種表現(xiàn)子狀態(tài)的方法是很好使的,但是最終的圖可能變得相當(dāng)復(fù)雜--我們只要設(shè)想一下如果BeingTaught狀態(tài)也有子狀態(tài)的話,圖1會變成什么樣就知道了。一個替代的方法是創(chuàng)建一個分層的UML狀態(tài)圖。例如,圖3表示高階視圖,而圖1描述了一個細節(jié)視圖。這種方法的好處是如果需要的話,馬上就可以建立一張詳圖來研究BeingTaught狀態(tài)

8、。圖3.Seminar的高階狀態(tài)圖。4.最高階的狀態(tài)圖總有初始態(tài)和最終態(tài)一個高階的UML狀態(tài)圖,例如圖2描述的這樣,應(yīng)該表示實體的完

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。