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

全面認(rèn)識(shí)UML狀態(tài)圖

開發(fā) 架構(gòu)
你對(duì)UML狀態(tài)圖的概念是否熟悉,UML狀態(tài)圖(StatechartDiagram)主要用于描述一個(gè)對(duì)象在其生存期間的動(dòng)態(tài)行為,表現(xiàn)為一個(gè)對(duì)象所經(jīng)歷的狀態(tài)序列。

本文和大家重點(diǎn)討論一下UML狀態(tài)圖的概念,UML狀態(tài)圖(StatechartDiagram)主要用于描述引起狀態(tài)轉(zhuǎn)移的事件(Event),以及因狀態(tài)轉(zhuǎn)移而伴隨的動(dòng)作(Action)。

詳解UML建模中的UML狀態(tài)圖

一、UML狀態(tài)圖簡(jiǎn)介(Briefintroduction)

UML狀態(tài)圖(StatechartDiagram)主要用于描述一個(gè)對(duì)象在其生存期間的動(dòng)態(tài)行為,表現(xiàn)為一個(gè)對(duì)象所經(jīng)歷的狀態(tài)序列,引起狀態(tài)轉(zhuǎn)移的事件(Event),以及因狀態(tài)轉(zhuǎn)移而伴隨的動(dòng)作(Action)。一般可以用狀態(tài)機(jī)對(duì)一個(gè)對(duì)象的生命周期建模,UML狀態(tài)圖用于顯示狀態(tài)機(jī)(StateMachineDiagram),重點(diǎn)在與描述UML狀態(tài)圖的控制流。如下圖例子,狀態(tài)機(jī)描述了門對(duì)象的生存期間的狀態(tài)序列,引起轉(zhuǎn)移的事件,以及因狀態(tài)轉(zhuǎn)移而伴隨的動(dòng)作(Action)。

狀態(tài)有Opened、Closed、Locked。

事件有Open、Close、Lock和Unlock。

注意:

1、并不是所有的事件都會(huì)引起狀態(tài)的轉(zhuǎn)移,比如當(dāng)門是處于【Opened】狀態(tài),不能進(jìn)行【Lock】事件。

2、轉(zhuǎn)移(Transition)有警備條件(guardcondition),比如只有doorWay->isEmpty條件滿足時(shí),才會(huì)響應(yīng)事件。

二、UML狀態(tài)圖元素(StateDiagramElements)

1、狀態(tài)(States)

指在對(duì)象的生命周期中的某個(gè)條件或者狀況,在此期間對(duì)象將滿足某些條件、執(zhí)行某些活動(dòng)活活等待某些事件。所有對(duì)象都有狀態(tài),狀態(tài)是對(duì)象執(zhí)行了一系列活動(dòng)的結(jié)果,當(dāng)某個(gè)事件發(fā)生后,對(duì)象的狀態(tài)將發(fā)生變化。

狀態(tài)用圓角矩形表示 


初態(tài)和終態(tài)(InitialandFinalStates)初態(tài)用實(shí)心圓點(diǎn)表示,終態(tài)用圓形內(nèi)嵌圓點(diǎn)表示。

2、轉(zhuǎn)移(Transitions)

轉(zhuǎn)移(Transitions)是兩個(gè)狀態(tài)之間的一種關(guān)系,表示對(duì)象將在源狀態(tài)(SourceState)中執(zhí)行一定的動(dòng)作,并在某個(gè)特定事件發(fā)生而且某個(gè)特定的警界條件滿足時(shí)進(jìn)入目標(biāo)狀態(tài)(TargetState)

事件標(biāo)記(Trigger):是轉(zhuǎn)移的誘因,可以是一個(gè)信號(hào),事件、條件變化(achangeinsomecondition)和時(shí)間表達(dá)式。

警界條件(GuardCondition):當(dāng)警界條件滿足時(shí),事件才會(huì)引發(fā)轉(zhuǎn)移(Transition)。

結(jié)果(Effect):對(duì)象狀態(tài)轉(zhuǎn)移后的結(jié)果。

3、動(dòng)作(StateActions)

動(dòng)作(Actions)是一個(gè)可執(zhí)行的原子操作,也就是說動(dòng)作是不可中斷的,其執(zhí)行時(shí)間是可忽略不計(jì)的。

在上例中,對(duì)象狀態(tài)轉(zhuǎn)移后的結(jié)果顯示在轉(zhuǎn)移線上,如果目標(biāo)狀態(tài)有許多轉(zhuǎn)移,而且每個(gè)轉(zhuǎn)移有相同的結(jié)果,這時(shí)把轉(zhuǎn)移后的結(jié)果(Effect)展示在目標(biāo)狀態(tài)中(TargetState)更好一些,可以定義進(jìn)入動(dòng)作(EntryAction)和退出動(dòng)作(ExitAction),如下圖

 

4、自身轉(zhuǎn)移(Self-Transitions)

狀態(tài)可以有返回自身狀態(tài)的轉(zhuǎn)移,稱之為自身轉(zhuǎn)移(Self-Transitions)

2S后,Pollinput事件執(zhí)行,轉(zhuǎn)移到自己狀態(tài)【W(wǎng)aiting】

5、組合狀態(tài)(CompoundStates)

嵌套在另外一個(gè)狀態(tài)中的狀態(tài)稱之為子狀態(tài)(sub-state),一個(gè)含有子狀態(tài)的狀態(tài)被稱作組合狀態(tài)(CompoundStates).如下圖,【CheckPIN】是組合狀態(tài),【EnterPIN】是子狀態(tài)。

6、進(jìn)入節(jié)點(diǎn)(EntryPoint)

由于一些原因并不會(huì)執(zhí)行初始化(initialization),而是直接通過一個(gè)節(jié)點(diǎn)進(jìn)入狀態(tài)【Ready】,則此節(jié)點(diǎn)稱之為進(jìn)入節(jié)點(diǎn)(EntryPoint)

7、退出節(jié)點(diǎn)(ExitPoint)

8、歷史狀態(tài)(HistoryStates)

歷史狀態(tài)是一個(gè)偽狀態(tài)(Pseudostate),其目的是記住從組合狀態(tài)中退出時(shí)所處的子狀態(tài),當(dāng)再次進(jìn)入組合狀態(tài),可直接進(jìn)入這個(gè)子狀態(tài),而不是再次從組合狀態(tài)的初態(tài)開始。

如果是從狀態(tài)【Rinsing】突然停電(PowerCut)退出,,洗衣機(jī)停止工作進(jìn)入狀態(tài)【PowerOff】,當(dāng)電力恢復(fù)時(shí)直接進(jìn)入狀態(tài)【Running】。

9、并發(fā)區(qū)域(ConcurrentRegions)

UML狀態(tài)圖可以分為區(qū)域,而區(qū)域又包括退出或者當(dāng)前執(zhí)行的子狀態(tài)。說明組合狀態(tài)在某一時(shí)刻可以同時(shí)達(dá)到多個(gè)子狀態(tài)。如下圖剎車系統(tǒng),同時(shí)進(jìn)入前剎車【ApplyingFrontBrakes】狀態(tài)和后剎車【ApplyingRearBrakes】狀態(tài)。

【編輯推薦】

  1. UML狀態(tài)圖及其組成元素簡(jiǎn)介
  2. UML部署圖繪制及應(yīng)用說明
  3. 在回歸測(cè)試中UML狀態(tài)圖切片的應(yīng)用 
  4. UML建模風(fēng)格 UML狀態(tài)圖表現(xiàn)形式解析
  5. UML圖形中UML狀態(tài)圖和組件圖用法實(shí)例解析

 

 

責(zé)任編輯:佚名 來源: 博客園
相關(guān)推薦

2010-07-01 17:43:23

UML包圖

2010-07-02 12:39:38

UML對(duì)象圖

2010-07-12 13:47:09

UML部署圖

2010-07-01 16:02:48

UML組件圖

2010-07-01 15:12:34

UML時(shí)序圖

2010-07-06 11:21:37

UML狀態(tài)圖

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í)踐

2010-07-01 12:53:34

UML用例圖

2010-07-05 09:19:35

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

2010-06-10 13:14:48

UML狀態(tài)圖

2009-12-17 10:14:04

UML建模

2010-07-05 16:07:15

UML圖設(shè)計(jì)模式

2010-07-01 11:33:17

UML類圖關(guān)系

2010-07-05 12:21:36

UML行為圖

2010-06-09 15:19:20

UML狀態(tài)圖

2010-07-06 16:19:56

UML圖形

2010-07-09 17:21:32

UML狀態(tài)圖

2010-07-09 15:19:58

UML類圖建模
點(diǎn)贊
收藏

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