偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

UML狀態(tài)圖創(chuàng)建過(guò)程中需要注意問(wèn)題

開(kāi)發(fā) 架構(gòu)
UML建模語(yǔ)言有很多值得學(xué)習(xí)的地方,這里就像大家介紹一下UML狀態(tài)圖,相信通過(guò)本文圖例講解大家能夠很快掌握UML狀態(tài)圖的相關(guān)知識(shí),歡迎大家一起來(lái)學(xué)習(xí)。

本節(jié)接著向大家介紹一下UML狀態(tài)圖方面的內(nèi)容,希望通過(guò)本節(jié)學(xué)習(xí),你對(duì)UML狀態(tài)圖的基礎(chǔ)知識(shí)有一定的認(rèn)識(shí),下面讓我們繼續(xù)來(lái)看一下UML狀態(tài)圖的詳細(xì)介紹吧。

為復(fù)雜的實(shí)體創(chuàng)建一個(gè)分層的UML狀態(tài)圖

  雖然這種表現(xiàn)子狀態(tài)的方法是非常好使的,不過(guò)最終的圖可能變得相當(dāng)復(fù)雜--我們只要設(shè)想一下如果BeingTaught狀態(tài)也有子狀態(tài)的話,圖2會(huì)變成什么樣就知道了。一個(gè)替代的方法是創(chuàng)建一個(gè)分層的UML狀態(tài)圖。例如,圖3表示高階視圖,而圖1描述了一個(gè)細(xì)節(jié)視圖。這種方法的好處是如果需要的話,馬上就能建立一張?jiān)攬D來(lái)研究BeingTaught狀態(tài)。

圖⒊Seminar的高階狀態(tài)圖。

  ***階的狀態(tài)圖總有初始態(tài)和最終態(tài)

  一個(gè)高階的UML狀態(tài)圖,例如圖2描述的這樣,應(yīng)該表示實(shí)體的完整的生命周期,包括"出生"和***的"死亡"。低階的圖未必包含初始狀態(tài)和最終狀態(tài),特別是那些建模一個(gè)實(shí)體的生命周期的"中間狀態(tài)"的圖。

  變換和動(dòng)作

  變換是從一種狀態(tài)到另一種狀態(tài)的序列,他可能是通過(guò)一個(gè)事件觸發(fā)的。簡(jiǎn)而言之就是被建模的實(shí)體的內(nèi)部或外部的行為。對(duì)一個(gè)類(lèi)來(lái)說(shuō),變換一般是將會(huì)導(dǎo)致?tīng)顟B(tài)的重要改動(dòng)的操作調(diào)用的結(jié)果,因此我們需要了解一點(diǎn),并不是所有的方法調(diào)用都會(huì)導(dǎo)致變換產(chǎn)生的,這一點(diǎn)非常重要。一個(gè)動(dòng)作就是某個(gè)東西,對(duì)類(lèi)來(lái)說(shuō)就是個(gè)操作,被建模的實(shí)體所調(diào)用的操作。

  用實(shí)現(xiàn)語(yǔ)言的命名規(guī)則命名軟件動(dòng)作

  圖1中的動(dòng)作遵循Java操作的命名規(guī)則(Vermeulenet.2000),因?yàn)橄到y(tǒng)使用用敘述性文字命名角色動(dòng)作

  UML狀態(tài)圖可用于建模非軟件實(shí)體的生命周期,特別是UML圖上的角色。例如學(xué)生角色就可能有諸如Accepted、FullTime、PartTime、Graduated、Masters、Doctoral、和Post-Doctoral等狀態(tài),以顯示各人的不同行為。當(dāng)你在建?,F(xiàn)實(shí)世界的角色時(shí),和軟件中Student類(lèi)不同的是,狀態(tài)間的變換***是使用敘述性文字來(lái)描述,例如dropseminar和payfees,而不是dropSeminar()和payFees(),因?yàn)楝F(xiàn)實(shí)生活中的人是做事情,而不是執(zhí)行操作。

  只有對(duì)所有的入口變換都合適時(shí)才注明入口動(dòng)作

  在圖1中你能看到ClosedToEnrollment狀態(tài)的入口中操作notifyInstructor()都是經(jīng)由entry/動(dòng)作標(biāo)記來(lái)調(diào)用的。這暗示著每次進(jìn)入狀態(tài)時(shí)都需要調(diào)用該操作,如果你不希望每次都發(fā)生,那么就把動(dòng)作關(guān)聯(lián)到特定的入口變換。例如,addStudent()動(dòng)作是在studentenrolled變換到OpenForEnrollment變換發(fā)生,而在到opened變換則不會(huì)發(fā)生,這是因?yàn)槊看文阍谶M(jìn)入該狀態(tài)并不必增加一個(gè)學(xué)生。

  只有對(duì)所有的出口變換適合時(shí)才注明出口動(dòng)作

  出口動(dòng)作,用exit/標(biāo)記來(lái)表示,工作方式類(lèi)似于入口動(dòng)作。

  只有當(dāng)你想終止并再進(jìn)入該狀態(tài)時(shí)才建模遞歸變換

  UML狀態(tài)圖中一個(gè)遞歸的變換是那些兩個(gè)端點(diǎn)都擁有相同狀態(tài)的變換。一個(gè)重要的暗示是實(shí)體從狀態(tài)出來(lái),又回到原有的狀態(tài),因此,那些由于entry/或exit/動(dòng)作標(biāo)記而被調(diào)用的所有一種操作都可能被自動(dòng)調(diào)用。圖1的OpenForEnrollment狀態(tài)就是這種遞歸變換的例子,因此當(dāng)前班級(jí)大小就在入口處被記錄下來(lái)。#p#

  用過(guò)去式命名轉(zhuǎn)換事件

  圖1中的轉(zhuǎn)換事件,例如seminarsplit和cancelled,是使用過(guò)去式命名的,反映了這樣一個(gè)事實(shí):變換是事件的結(jié)果--因?yàn)槭录l(fā)生在變換之前,因此應(yīng)該用過(guò)去式命名。

  把轉(zhuǎn)換標(biāo)記放在接近源狀態(tài)的地方

  雖然圖1比較復(fù)雜,變換標(biāo)記盡可能放在靠近來(lái)源的地方,例如seminarsplit和studentenrolled。Furthermore,thelabelswerejustified(leftandrightrespectively)tohelpvisuallyplacethemclosetothesourcestate.

  以轉(zhuǎn)換方向?yàn)榛A(chǔ)放置變換標(biāo)記

  為了更易于判斷哪個(gè)標(biāo)記和變換是一起的,按照如下的規(guī)則來(lái)放置變換標(biāo)記:

  在變換線條上的從左到右。

  在變換線條下的從右到左。

  變換線條右邊的往下。

  變換線條左邊的往上。

  警戒點(diǎn)

  一個(gè)警戒點(diǎn)是為了穿過(guò)一個(gè)轉(zhuǎn)換而必須為真的一個(gè)條件。

  警戒點(diǎn)不應(yīng)該重疊

  UML狀態(tài)圖離開(kāi)狀態(tài)的相似變換上的警戒點(diǎn)必須彼此一致。舉例來(lái)說(shuō),x<0,x=0,及x>0的警戒點(diǎn)是一致的,而x<=0和x>=0的警戒點(diǎn)就不是一致的,因?yàn)樗麄冎丿B了,他并沒(méi)有明確的指出當(dāng)x為0時(shí)將發(fā)生什么。在圖1中,你能看到警界點(diǎn)的一致性,從填寫(xiě)注冊(cè)表活動(dòng)出發(fā)的該學(xué)生劃線變換上的警戒點(diǎn)沒(méi)有重疊,決策點(diǎn)上的警戒點(diǎn)也相同。

  為可視化的定位警戒點(diǎn)而引入接合點(diǎn)。

  在圖2中你能看到從BeingTaught觸發(fā)studentdropped事件存在兩個(gè)變換,而圖3中僅有一個(gè),變換被合并了,因此我們需要一個(gè)接合點(diǎn)(填滿(mǎn)的圓)。這種方法的好處是目前圖上的兩個(gè)警戒點(diǎn)更彼此接近了,更容易看出警戒點(diǎn)是否重疊。

  警戒點(diǎn)不必配套

  一個(gè)狀態(tài)的變換警戒點(diǎn)有可能是不完整的。例如,一個(gè)bankaccount對(duì)象可能從Open狀態(tài)變換到NeedsAuthorization狀態(tài),這時(shí)需要一個(gè)大額存款"largedeposit"的警戒點(diǎn)。可是,一個(gè)帶有"smalldeposit"的警戒點(diǎn)的deposit變換可能并不必建模,他是被隱含的,我們遵循了AM的實(shí)踐--簡(jiǎn)單的描述模型和僅僅包括相關(guān)的信息。

  一致的命名警戒點(diǎn)

  圖1包含了諸如seatavailable和noseatavailable的警戒點(diǎn),兩個(gè)警戒點(diǎn)的描述是一致的。然而,諸如seatsleft、noseatleft、noseatsleft、noseatsavailable、seatunavailable之類(lèi)的描述就是不一致,而且難于理解的。本節(jié)關(guān)于UML建模風(fēng)格之UML狀態(tài)圖介紹到這里。

【編輯推薦】

  1. UML建模風(fēng)格中UML狀態(tài)圖表現(xiàn)形式
  2. 在回歸測(cè)試中UML狀態(tài)圖切片的應(yīng)用 
  3. UML用例圖用法實(shí)例剖析
  4. 術(shù)語(yǔ)匯編 UML統(tǒng)一建模語(yǔ)言簡(jiǎn)介
  5. 技術(shù)分享 嵌入式建模中UML狀態(tài)圖的形式化方法
責(zé)任編輯:佚名 來(lái)源: csdn.net
相關(guān)推薦

2010-07-12 13:00:49

UML建模

2010-06-10 17:02:40

UML建模

2013-09-03 13:01:01

團(tuán)隊(duì)管理團(tuán)隊(duì)

2010-07-06 11:21:37

UML狀態(tài)圖

2009-12-17 10:14:04

UML建模

2010-07-09 16:30:31

UML狀態(tài)圖

2021-12-08 23:32:42

云計(jì)算云遷移數(shù)據(jù)

2009-04-23 14:30:19

UML建模

2010-07-06 16:19:56

UML圖形

2010-07-06 12:00:23

UML活動(dòng)圖

2010-06-09 14:31:31

UML狀態(tài)圖

2010-06-13 15:03:25

UML實(shí)踐

2009-06-10 15:36:25

ubuntu netb開(kāi)發(fā)過(guò)程

2010-06-10 13:14:48

UML狀態(tài)圖

2010-07-09 11:01:30

UML動(dòng)態(tài)建模

2010-07-15 14:47:05

Perl開(kāi)發(fā)

2010-06-09 14:21:05

UML狀態(tài)圖

2010-07-05 12:21:36

UML行為圖

2010-06-09 15:19:20

UML狀態(tài)圖

2010-07-09 17:21:32

UML狀態(tài)圖
點(diǎn)贊
收藏

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