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

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

開發(fā) 架構(gòu)
在這里我們將跟大家討論的是UML建模中的狀態(tài)圖,希望通過本文能對大家用好UML有所幫助。

本文將為大家介紹的是UML建模中的狀態(tài)圖,希望通過本文能對大家了解UML,了解UML建模有所幫助。

狀態(tài)圖目錄:

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

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

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

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

3、動作(State Actions)

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

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

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

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

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

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

三、狀態(tài)圖案例分析(State Diagram Example Analysis)

四、總結(jié)(Summary)

一、狀態(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)機對一個對象的生命周期建模,狀態(tài)圖用于顯示狀態(tài)機(State Machine Diagram),重點在與描述狀態(tài)圖的控制流。如下圖例子,狀態(tài)機描述了門對象的生存期間的狀態(tài)序列,引起轉(zhuǎn)移的事件,以及因狀態(tài)轉(zhuǎn)移而伴隨的動作(Action).

狀態(tài)圖

狀態(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)事件。

二、狀態(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)和終態(tài)(Initial and Final States)初態(tài)用實心圓點表示,終態(tài)用圓形內(nèi)嵌圓點表示。

初態(tài)和終態(tài)

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

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

轉(zhuǎn)移

事件標(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)

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

在上例中,對象狀態(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)

自身轉(zhuǎn)移

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

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

嵌套在另外一個狀態(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ìn)行描述

描述

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

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

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

進(jìn)入節(jié)點

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

退出節(jié)點

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)開始。

歷史狀態(tài)

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

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

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

狀態(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)。

并發(fā)區(qū)域

三、狀態(tài)圖案例分析(State Diagram Example Analysis)

案例

訂單成立狀態(tài)主要有:

訂單成立

訂單取消(Guard:會員訂單-繳款期限已過期)

備貨中(Guard:已付款、訂單成立、庫存量足夠)

出貨中(Effect:扣除商品可接單量及移除購物車中的購買資料)

出貨確認(rèn)(Guard:實際配達(dá)日及發(fā)票代碼、號碼均不為空值)

出貨完畢(Guard:實際配達(dá)日不為空)

出貨失敗

訂單成立(Guard:出貨完畢,已付款、鑒賞期結(jié)束日期 小于等于 [系統(tǒng)日期])

分析:

1、購物車生成訂單進(jìn)入狀態(tài)【訂單成立】

2、系統(tǒng)檢測訂單已經(jīng)付款并且?guī)齑媪孔銐颍瑒t進(jìn)入狀態(tài)【備貨中】

3、物流發(fā)貨,進(jìn)入狀態(tài)【發(fā)貨中】,狀態(tài)轉(zhuǎn)移為【發(fā)貨中】后,需要做的操作有“扣除商品可接單量及移除購物車中的購買資料”

4、發(fā)貨完畢后,狀態(tài)分為【出貨確認(rèn)】和狀態(tài)【出貨失敗】,如果狀態(tài)是【出貨失敗】,則【結(jié)束】,如果狀態(tài)為【出貨確認(rèn)】,則進(jìn)入下一步。

5、配貨人員填寫實際配達(dá)日期,進(jìn)入狀態(tài)【出貨完畢】。

6、如果”已付款、鑒賞期結(jié)束日期 小于等于 [系統(tǒng)日期]”,則【訂單成立】。

四、總結(jié)(Summary)

狀態(tài)圖重點在于描述對象的狀態(tài)及其狀態(tài)之間的轉(zhuǎn)移,狀態(tài)圖的基本元素主要有:狀態(tài)、轉(zhuǎn)移、動作、自身轉(zhuǎn)移、組合狀態(tài)、進(jìn)入節(jié)點、退出節(jié)點、歷史狀態(tài)、并發(fā)區(qū)域等,狀態(tài)中的事件分為調(diào)用事件(Call)、變化事件(Change)、時間事件(Time)和信號事件(Singal)。最后以實例對狀態(tài)對進(jìn)行了分析。

原文標(biāo)題:UML建模之狀態(tài)圖(Statechart Diagram)

鏈接:http://www.cnblogs.com/ywqu/archive/2009/12/17/1626043.html

【責(zé)任編輯:彭凡 TEL:(010)68476606】

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

2010-07-06 11:21:37

UML狀態(tài)圖

2010-07-09 11:01:30

UML動態(tài)建模

2010-07-06 12:00:23

UML活動圖

2010-06-09 15:19:20

UML狀態(tài)圖

2010-07-09 16:30:31

UML狀態(tài)圖

2010-06-30 10:42:23

UML動態(tài)建模機制

2010-07-06 16:19:56

UML圖形

2010-06-10 10:53:10

UML實例

2010-06-09 14:31:31

UML狀態(tài)圖

2010-06-13 15:03:25

UML實踐

2010-06-09 14:21:05

UML狀態(tài)圖

2010-06-09 14:10:04

UML狀態(tài)圖

2010-06-10 13:14:48

UML狀態(tài)圖

2010-06-09 14:43:27

2010-07-05 12:21:36

UML行為圖

2010-07-09 17:21:32

UML狀態(tài)圖

2010-07-12 14:16:19

UML活動圖

2010-06-09 14:58:13

UML狀態(tài)圖

2010-06-13 16:16:21

UML狀態(tài)圖

2011-11-17 09:30:00

UML
點贊
收藏

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

主站蜘蛛池模板: 日韩欧美三级 | 久久99精品久久久久久 | 成人在线视频免费观看 | 秋霞在线一区二区 | 国产精品久久 | 国产成人免费视频网站视频社区 | 日韩精品一区二区三区在线观看 | 香蕉二区| 又黑又粗又长的欧美一区 | 亚洲成人中文字幕 | av一级久久 | 久久伊人精品 | 欧美午夜激情在线 | 91国内外精品自在线播放 | 欧美在线成人影院 | 午夜私人影院在线观看 | 日韩精品久久久久久 | 成人午夜激情 | 福利网站在线观看 | 精品国产91乱码一区二区三区 | 亚洲精品久久久久久国产精华液 | 黄色国产视频 | 久久亚洲欧美日韩精品专区 | 日韩欧美在 | 久久精品亚洲 | 免费在线观看一级毛片 | av在线一区二区 | 成人福利在线观看 | 亚洲三级在线 | 在线免费观看毛片 | 久久婷婷麻豆国产91天堂 | 国产一二三区精品视频 | 亚洲电影一级片 | av在线播放网站 | 国产视频一区在线 | 免费二区| 91麻豆产精品久久久久久夏晴子 | 日韩久久久久久久久久久 | 亚洲精品一区中文字幕乱码 | 日韩国产欧美在线观看 | 水蜜桃久久夜色精品一区 |