自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

UML建模風(fēng)格 UML狀態(tài)圖表現(xiàn)形式解析

開發(fā) 架構(gòu)
UML是統(tǒng)一建模語言,那么你是否了解UML建模風(fēng)格呢,這里就向大家介紹一下UML建模風(fēng)格中的UML狀態(tài)圖,相信通過本文的學(xué)習(xí)你對UML狀態(tài)圖有更深刻的認(rèn)識。

本節(jié)和大家一起學(xué)習(xí)一下UML建模風(fēng)格中的UML狀態(tài)圖,為了便于大家理解本節(jié)通過具體的圖例講解,希望通過本節(jié)的介紹大家對UML狀態(tài)圖的相關(guān)知識有大致的了解。下面讓我們一起來看一下具體介紹吧。

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

UML狀態(tài)圖描述一個實體基于事件反應(yīng)的動態(tài)行為,顯示了該實體怎么根據(jù)當(dāng)前所處的狀態(tài)對不同的時間做出反應(yīng)的。通常我們創(chuàng)建一個UML狀態(tài)圖是為了以下的研究目的:研究類、角色、子系統(tǒng)、或組件的復(fù)雜行為。建模實時系統(tǒng)。

  通用準(zhǔn)則

  當(dāng)行為的改動和狀態(tài)有關(guān)時才創(chuàng)建狀態(tài)圖。

  敏捷建模(AM)(Ambler2002)的原則--最大化項目干系人的投資--建議你只有當(dāng)模型能夠提供正面價值的時候才創(chuàng)建模型。如果一個實體,比如一個類或組件,表示的行為的順序和當(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中看到的。

圖⒈班級注冊的一個UML狀態(tài)圖。

把初始狀態(tài)放置在左上角。

  如你在圖1所見的,初始狀態(tài)被建模成一個實心圈,把初始狀態(tài)放在左上角反映西方人的閱讀文化的習(xí)慣。

  把最終狀態(tài)放置在右下角。

  如你在圖1所見,最終狀態(tài)被建模為一個帶邊界的實心圓。把最終狀態(tài)放右下角反映了西方的文化的從左到右,從上到下的閱讀習(xí)慣。

  狀態(tài)指南

  UML狀態(tài)圖中狀態(tài)是個實體的行為模式的某個階段。狀態(tài)的表示是通過實體的屬性值。例如,在圖1中,當(dāng)seminar被標(biāo)記為open,并且存在空位的時候,seminar就處于OpenForEnrollment的狀態(tài)。

  狀態(tài)名稱要簡單但應(yīng)具有描述性。

  象OpenForEnrollment和Proposed這種的狀態(tài)名稱非常容易理解,從而提高了圖⒈的溝通價值。理論上狀態(tài)名稱應(yīng)該是目前時,不過用過去式寫成的諸如Proposed的名稱要比用目前時寫成的諸如IsProposed的名稱好的多。

  避免"黑洞"狀態(tài)

  黑洞狀態(tài)是那種只有變換進(jìn)來但沒有所有變換發(fā)出的狀態(tài),這種情況要么由于該狀態(tài)是個最終狀態(tài),要么就是你已錯過了一個或多個變換變換。

  避免"奇跡"狀態(tài)。

  奇跡狀態(tài)是那種只有變換發(fā)出但沒有所有變換進(jìn)來的狀態(tài),這種情況要么由于該狀態(tài)是個起點,要么就是你已錯過了一個或多個變換變換。

  子狀態(tài)建模指南

  為復(fù)雜的目標(biāo)建模子狀態(tài)。

  圖1中展示的UML狀態(tài)圖是不完整的,因為他沒有建模Seminar的post-enrollment(注冊后)狀態(tài)。圖2建模了一個Seminar的完整的生命周期,把圖1描述為一個新的包括子狀態(tài)集合的Enrollment的復(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變換,以到達(dá)最終狀態(tài)。

圖⒉Seminar的完整生命周期 

  把通用的子狀態(tài)變換放在一起

  和圖1中每一個子狀態(tài)都擁有一個cancelled變換不同,在圖2中你能看到cancelled變換僅用于描述Enrollment超狀態(tài),這使圖像得到簡化。如果子狀態(tài)都共享一個入口變換或出口變換,都能使用一個同樣的方法。變換上的警戒點和動作(如果有)也應(yīng)該使相等的。請期待下節(jié)UML建模風(fēng)格之UML狀態(tài)圖介紹。

【編輯推薦】

  1. UML基礎(chǔ)專題之UML狀態(tài)圖與活動圖
  2. SVG與UML圖詳解
  3. 在回歸測試中UML狀態(tài)圖切片的應(yīng)用 
  4. 術(shù)語匯編 UML統(tǒng)一建模語言簡介
  5. 技術(shù)分享 嵌入式建模中UML狀態(tài)圖的形式化方法

  

責(zé)任編輯:佚名 來源: csdn.net
相關(guān)推薦

2010-07-06 11:21:37

UML狀態(tài)圖

2010-06-13 16:16:21

UML狀態(tài)圖

2010-06-09 15:19:20

UML狀態(tài)圖

2009-12-17 10:14:04

UML建模

2009-08-04 14:06:39

ASP.NET屬性表現(xiàn)

2010-07-01 17:05:34

UML包圖

2010-07-09 11:01:30

UML動態(tài)建模

2011-07-12 10:43:20

JAVA類加載

2010-07-06 12:00:23

UML活動圖

2010-07-09 16:30:31

UML狀態(tài)圖

2010-07-06 16:19:56

UML圖形

2010-07-09 17:21:32

UML狀態(tài)圖

2010-06-09 14:10:04

UML狀態(tài)圖

2021-08-06 10:02:14

圖表餅圖聯(lián)系圖表

2010-07-05 12:21:36

UML行為圖

2010-06-30 14:46:49

UML類圖

2010-06-09 14:31:31

UML狀態(tài)圖

2010-06-28 09:44:48

UML建模工具Rose

2010-06-13 15:03:25

UML實踐

2010-06-18 18:42:43

UML建模語言
點贊
收藏

51CTO技術(shù)棧公眾號