天天看點

【UML】狀态圖Statechart diagram(轉)

前言

        UML由動态圖和靜态圖組成,狀态圖就是屬于動态圖中較為重要的一張圖。

定義

        用來描述一個特定對象的所有可能狀态以及由于各種事件的發生而引起的狀态之間的轉移。

目的

        研究類、角色、子系統、或元件的複雜行為。

組成元素

定義:指在對象的生命周期中的某個條件或者狀況,在此期間對象将滿足某些條件、執行某些活動活活等待某些事件。

表示方法:圓角矩形。

【UML】狀态圖Statechart diagram(轉)

初态和終态(Initial and Final States):初态用實心圓點表示,終态用圓形内嵌圓點表示。

【UML】狀态圖Statechart diagram(轉)

事件标記(Trigger):是轉移的誘因,可以是一個信号,事件、條件變化(a change in some condition)和時間表達式。

警界條件(Guard Condition):當警界條件滿足時,事件才會引發轉移(Transition)。

結果(Effect):對象狀态轉移後的結果。

        UML狀态圖中的動作(Actions)是一個可執行的原子操作,也就是說動作是不可中斷的,其執行時間是可忽略不計的。

        狀态可以有傳回自身狀态的轉移,稱之為自身轉移(Self-Transitions)。

         嵌套在另外一個狀态中的狀态稱之為子狀态(sub-state),一個含有子狀态的狀态被稱作組合狀态(Compound States)。

        由于一些原因并不會執行初始化(initialization),而是直接通過一個節點進入狀态【Ready】,則此節點稱之為進入節點(Entry Point)。

        曆史狀态是一個僞狀态(Pseudostate),其目的是記住從組合狀态中退出時所處的子狀态,當再次進入組合狀态,可直接進入這個子狀态,而不是再次從組合狀态的初态開始。

        狀态圖可以分為區域,而區域又包括退出或者目前執行的子狀态。說明組合狀态在某一時刻可以同時達到多個子狀态。

狀态機

        描述一個對象或一個互動在生命期内響應事件所經曆的狀态序列。單個類或一組類之間的協作行為可用狀态機描述。

機房收費系統狀态圖

        歡迎大家提出寶貴建議。

【UML】狀态圖Statechart diagram(轉)
【UML】狀态圖Statechart diagram(轉)
【UML】狀态圖Statechart diagram(轉)
【UML】狀态圖Statechart diagram(轉)

總結

        不難發現,在UML圖中,各個圖都是互相關聯的,尤其有兩個圖之間聯系緊密,比如協作圖和序列圖,同為互動圖,構件圖和部署圖同為實作圖,對象圖和類圖之間為執行個體化,狀态圖和活動圖之間也是相關聯的。

兩個圖的之間的差別:

狀态圖從行為的結果來描述。

活動圖從行為的動作來描述。

        狀态圖描述了一個具體對象的可能狀态以及他們之間的轉化。

繼續閱讀