成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

UML狀態圖創建過程中需要注意問題

開發 架構
UML建模語言有很多值得學習的地方,這里就像大家介紹一下UML狀態圖,相信通過本文圖例講解大家能夠很快掌握UML狀態圖的相關知識,歡迎大家一起來學習。

本節接著向大家介紹一下UML狀態圖方面的內容,希望通過本節學習,你對UML狀態圖的基礎知識有一定的認識,下面讓我們繼續來看一下UML狀態圖的詳細介紹吧。

為復雜的實體創建一個分層的UML狀態圖

  雖然這種表現子狀態的方法是非常好使的,不過最終的圖可能變得相當復雜--我們只要設想一下如果BeingTaught狀態也有子狀態的話,圖2會變成什么樣就知道了。一個替代的方法是創建一個分層的UML狀態圖。例如,圖3表示高階視圖,而圖1描述了一個細節視圖。這種方法的好處是如果需要的話,馬上就能建立一張詳圖來研究BeingTaught狀態。

圖⒊Seminar的高階狀態圖。

  ***階的狀態圖總有初始態和最終態

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

  變換和動作

  變換是從一種狀態到另一種狀態的序列,他可能是通過一個事件觸發的。簡而言之就是被建模的實體的內部或外部的行為。對一個類來說,變換一般是將會導致狀態的重要改動的操作調用的結果,因此我們需要了解一點,并不是所有的方法調用都會導致變換產生的,這一點非常重要。一個動作就是某個東西,對類來說就是個操作,被建模的實體所調用的操作。

  用實現語言的命名規則命名軟件動作

  圖1中的動作遵循Java操作的命名規則(Vermeulenet.2000),因為系統使用用敘述性文字命名角色動作

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

  只有對所有的入口變換都合適時才注明入口動作

  在圖1中你能看到ClosedToEnrollment狀態的入口中操作notifyInstructor()都是經由entry/動作標記來調用的。這暗示著每次進入狀態時都需要調用該操作,如果你不希望每次都發生,那么就把動作關聯到特定的入口變換。例如,addStudent()動作是在studentenrolled變換到OpenForEnrollment變換發生,而在到opened變換則不會發生,這是因為每次你在進入該狀態并不必增加一個學生。

  只有對所有的出口變換適合時才注明出口動作

  出口動作,用exit/標記來表示,工作方式類似于入口動作。

  只有當你想終止并再進入該狀態時才建模遞歸變換

  UML狀態圖中一個遞歸的變換是那些兩個端點都擁有相同狀態的變換。一個重要的暗示是實體從狀態出來,又回到原有的狀態,因此,那些由于entry/或exit/動作標記而被調用的所有一種操作都可能被自動調用。圖1的OpenForEnrollment狀態就是這種遞歸變換的例子,因此當前班級大小就在入口處被記錄下來。#p#

  用過去式命名轉換事件

  圖1中的轉換事件,例如seminarsplit和cancelled,是使用過去式命名的,反映了這樣一個事實:變換是事件的結果--因為事件發生在變換之前,因此應該用過去式命名。

  把轉換標記放在接近源狀態的地方

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

  以轉換方向為基礎放置變換標記

  為了更易于判斷哪個標記和變換是一起的,按照如下的規則來放置變換標記:

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

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

  變換線條右邊的往下。

  變換線條左邊的往上。

  警戒點

  一個警戒點是為了穿過一個轉換而必須為真的一個條件。

  警戒點不應該重疊

  UML狀態圖離開狀態的相似變換上的警戒點必須彼此一致。舉例來說,x<0,x=0,及x>0的警戒點是一致的,而x<=0和x>=0的警戒點就不是一致的,因為他們重疊了,他并沒有明確的指出當x為0時將發生什么。在圖1中,你能看到警界點的一致性,從填寫注冊表活動出發的該學生劃線變換上的警戒點沒有重疊,決策點上的警戒點也相同。

  為可視化的定位警戒點而引入接合點。

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

  警戒點不必配套

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

  一致的命名警戒點

  圖1包含了諸如seatavailable和noseatavailable的警戒點,兩個警戒點的描述是一致的。然而,諸如seatsleft、noseatleft、noseatsleft、noseatsavailable、seatunavailable之類的描述就是不一致,而且難于理解的。本節關于UML建模風格之UML狀態圖介紹到這里。

【編輯推薦】

  1. UML建模風格中UML狀態圖表現形式
  2. 在回歸測試中UML狀態圖切片的應用 
  3. UML用例圖用法實例剖析
  4. 術語匯編 UML統一建模語言簡介
  5. 技術分享 嵌入式建模中UML狀態圖的形式化方法
責任編輯:佚名 來源: csdn.net
相關推薦

2010-07-12 13:00:49

UML建模

2010-06-10 17:02:40

UML建模

2013-09-03 13:01:01

團隊管理團隊

2010-07-06 11:21:37

UML狀態圖

2009-12-17 10:14:04

UML建模

2010-07-09 16:30:31

UML狀態圖

2021-12-08 23:32:42

云計算云遷移數據

2009-04-23 14:30:19

UML建模

2010-07-06 16:19:56

UML圖形

2010-07-06 12:00:23

UML活動圖

2010-06-09 14:31:31

UML狀態圖

2010-06-13 15:03:25

UML實踐

2009-06-10 15:36:25

ubuntu netb開發過程

2010-06-10 13:14:48

UML狀態圖

2010-07-09 11:01:30

UML動態建模

2010-07-15 14:47:05

Perl開發

2010-07-05 12:21:36

UML行為圖

2010-06-09 14:21:05

UML狀態圖

2010-06-09 15:19:20

UML狀態圖

2010-07-09 17:21:32

UML狀態圖
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 婷婷国产一区 | 成年视频在线观看福利资源 | 国产精品久久久久久久久久不蜜臀 | 免费观看一级毛片 | 午夜激情视频 | v亚洲| 99精品在线免费观看 | 九九色综合 | 国产精品视频一二三区 | 9久久精品| 999精品网| 91国内精精品久久久久久婷婷 | 狠狠干2020 | 特一级黄色毛片 | 亚洲风情在线观看 | 久草视频观看 | 精品国产一区二区三区久久 | 亚洲精品一区中文字幕乱码 | 亚洲欧洲成人 | 中文字幕国产一区 | 美女爽到呻吟久久久久 | 范冰冰一级做a爰片久久毛片 | av资源中文在线天堂 | 中文字幕一区二区三区在线乱码 | 狠狠骚| 久久精品视频免费看 | 亚洲高清视频在线 | 日韩精品一区二区三区视频播放 | 国产精品大片 | 亚洲视频二区 | 精品久久久久国产免费第一页 | 精品国产乱码久久久久久蜜柚 | 爱草视频 | 亚洲精品一区二区三区蜜桃久 | 亚洲激情一区二区 | 成人午夜精品 | 九九热最新视频 | 亚洲午夜小视频 | 三级在线免费 | 国产精品特级片 | 成人欧美一区二区三区在线观看 |