溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

UML狀態(tài)圖及其組成元素有哪些

發(fā)布時間:2021-11-23 09:37:40 來源:億速云 閱讀:889 作者:iii 欄目:開發(fā)技術(shù)

本篇內(nèi)容主要講解“UML狀態(tài)圖及其組成元素有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“UML狀態(tài)圖及其組成元素有哪些”吧!

一、UML狀態(tài)圖簡介(Brief introduction)

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

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

事件有 Open、Close、Lock和Unlock。

注意:

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

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

二、UML狀態(tài)圖元素(State Diagram Elements)

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

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

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

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

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

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

事件標(biāo)記(Trigger):是轉(zhuǎn)移的誘因,可以是一個信號,事件、條件變化(a change in some condition)和時間表達(dá)式。

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

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

3、動作(State Actions)

UML狀態(tài)圖中的動作(Actions)是一個可執(zhí)行的原子操作,也就是說動作是不可中斷的,其執(zhí)行時間是可忽略不計(jì)的。

在上例中,對象狀態(tài)轉(zhuǎn)移后的結(jié)果顯示在轉(zhuǎn)移線上,如果目標(biāo)狀態(tài)有許多轉(zhuǎn)移,而且每個轉(zhuǎn)移有相同的結(jié)果,這時把轉(zhuǎn)移后的結(jié)果(Effect)展示在目標(biāo)狀態(tài)中(Target State)更好一些,可以定義進(jìn)入動作(Entry Action )和退出動作(Exit Action)

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

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

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

5、組合狀態(tài)(Compound States)

UML狀態(tài)圖中嵌套在另外一個狀態(tài)中的狀態(tài)稱之為子狀態(tài)(sub-state),一個含有子狀態(tài)的狀態(tài)被稱作組合狀態(tài)(Compound States). 如下圖,【Check PIN】是組合狀態(tài),【Enter PIN】是子狀態(tài)。

狀態(tài)機(jī)【Check PIN】的細(xì)節(jié)被分割到另外一個圖中了。

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

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

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

8、歷史狀態(tài)(History States)

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

在上圖的UML狀態(tài)圖中,正常的狀態(tài)順序是:【W(wǎng)ashing】- >【Rinsing】->【Spinning】。

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

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

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

到此,相信大家對“UML狀態(tài)圖及其組成元素有哪些”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

uml
AI