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

UML狀態(tài)機(jī)視圖解析

開發(fā) 架構(gòu)
UML狀態(tài)機(jī)視圖你是否熟悉,本節(jié)就向大家介紹一下UML狀態(tài)機(jī)視圖的概念,它是通過對(duì)類對(duì)象的生存周期建立模型來描述對(duì)象隨時(shí)間變化的動(dòng)態(tài)行為。

本節(jié)和大家一起學(xué)習(xí)一下UML狀態(tài)機(jī)視圖,狀態(tài)機(jī)用于描述類的行為,但它們也描述用例、協(xié)作和方法的動(dòng)態(tài)行為。這里主要介紹一下UML狀態(tài)機(jī)和組成狀態(tài)兩大部分內(nèi)容,希望本節(jié)的介紹對(duì)你有所幫助。

UML狀態(tài)機(jī)視圖概述

概述

UML狀態(tài)機(jī)視圖通過對(duì)類對(duì)象的生存周期建立模型來描述對(duì)象隨時(shí)間變化的動(dòng)態(tài)行為。每一個(gè)對(duì)象都被看作是通過對(duì)事件進(jìn)行探測并做出回應(yīng)來與外界其他部分通信的獨(dú)立的實(shí)體。事件表示對(duì)象可以探測到的事物的一種運(yùn)動(dòng)變化—如接受到從一個(gè)對(duì)象到另一個(gè)對(duì)象的調(diào)用或信號(hào)、某些值的改變或一個(gè)時(shí)間段的終結(jié)。任何影響對(duì)象的事物都可以是事件,真實(shí)世界所發(fā)生的事物的模型通過從外部世界到系統(tǒng)的信號(hào)來建造的。

狀態(tài)是給定類的對(duì)象的一組屬性值,這組屬性值對(duì)所發(fā)生的事件具有相同性質(zhì)的反應(yīng)。換而言之,處于相同狀態(tài)的對(duì)象對(duì)同一事件具有同樣方式的反應(yīng),所以當(dāng)給定狀態(tài)下的多個(gè)對(duì)象當(dāng)接受到相同事件時(shí)會(huì)執(zhí)行相同的動(dòng)作,然而處于不同狀態(tài)下的對(duì)象會(huì)通過不同的動(dòng)作對(duì)同一事件做出不同的反應(yīng)。例如,當(dāng)自動(dòng)答復(fù)機(jī)處于處理事務(wù)狀態(tài)或空閑狀態(tài)時(shí)會(huì)對(duì)取消鍵做出不同的反應(yīng)。

狀態(tài)機(jī)用于描述類的行為,但它們也描述用例、協(xié)作和方法的動(dòng)態(tài)行為。對(duì)這些對(duì)象方面而言,一個(gè)狀態(tài)代表了執(zhí)行中的一步。我們通常用類和對(duì)象來描述狀態(tài)機(jī),但是它也可以被其他元素所直接應(yīng)用。

狀態(tài)機(jī)

狀態(tài)機(jī)是展示狀態(tài)與狀態(tài)轉(zhuǎn)換的圖。通常一個(gè)狀態(tài)機(jī)依附于一個(gè)類,并且描述一個(gè)類的實(shí)例對(duì)接受到的事件所發(fā)生的反應(yīng)。狀態(tài)機(jī)也可以依附于操作、用例和協(xié)作并描述它們的執(zhí)行過程。

狀態(tài)機(jī)是一個(gè)類的對(duì)象所有可能的生命歷程的模型。對(duì)象被孤立地從系統(tǒng)中抽出和考察,任何來自外部的影響被概述為事件。當(dāng)對(duì)象探測到一個(gè)事件后,它依照當(dāng)前的狀態(tài)做出反應(yīng),反應(yīng)包括執(zhí)行一個(gè)動(dòng)作和轉(zhuǎn)換到新狀態(tài)。狀態(tài)機(jī)可以構(gòu)造成繼承轉(zhuǎn)換,也能夠?qū)Σl(fā)行為建立模型。

狀態(tài)機(jī)是一個(gè)對(duì)象的局部視圖,一個(gè)將對(duì)象與其外部世界分離開來并獨(dú)立考查其行為的圖。利用狀態(tài)機(jī)可以精確地描述行為,但不適合綜合理解系統(tǒng)執(zhí)行操作。如果要更好地理解整個(gè)系統(tǒng)范圍內(nèi)的行為產(chǎn)生的影響,那么交互視圖將更有用些。然而,狀態(tài)機(jī)有助于理解如用戶接口和設(shè)備控制器這樣的控制機(jī)。

組成狀態(tài)

一個(gè)簡單狀態(tài)沒有子結(jié)構(gòu),只帶有一組轉(zhuǎn)換和可能的入口和出口動(dòng)作。UML狀態(tài)機(jī)視圖的組成狀態(tài)是一個(gè)被分解成順序的或并發(fā)的子狀態(tài)的狀態(tài)。表6–4列出了各種狀態(tài)。

表6–4狀態(tài)的種類

將狀態(tài)分解成互斥的子狀態(tài)是對(duì)狀態(tài)的一種專門化處理。一個(gè)外部狀態(tài)被細(xì)分成多個(gè)內(nèi)部子狀態(tài),每一個(gè)子狀態(tài)都繼承了外部狀態(tài)的轉(zhuǎn)換。在某一時(shí)間只有一個(gè)子狀態(tài)處于激活狀態(tài)。外部狀態(tài)表達(dá)了每一個(gè)內(nèi)部狀態(tài)都具有的條件。

進(jìn)入或離開一個(gè)組成狀態(tài)的轉(zhuǎn)換會(huì)引起入口動(dòng)作或出口動(dòng)作的執(zhí)行。如果有多個(gè)組成狀態(tài),跨越多個(gè)層次的轉(zhuǎn)換會(huì)引起多重入口動(dòng)作(最外層***執(zhí)行)和出口動(dòng)作(最內(nèi)層***執(zhí)行)的執(zhí)行。如果轉(zhuǎn)換帶有動(dòng)作,那么這個(gè)動(dòng)作在入口動(dòng)作執(zhí)行后,出口動(dòng)作執(zhí)行前執(zhí)行。

UML狀態(tài)機(jī)視圖中組成狀態(tài)也可能在其內(nèi)部具有一個(gè)初始狀態(tài)。組成狀態(tài)邊界上的轉(zhuǎn)換隱含為初始狀態(tài)上的轉(zhuǎn)換。一個(gè)新對(duì)象起始于它的最外層的初始狀態(tài)。如果一個(gè)對(duì)象到達(dá)了它最外層狀態(tài)的終止?fàn)顟B(tài),那么該對(duì)象將被銷毀。初始狀態(tài)、終止?fàn)顟B(tài)、入口動(dòng)作和出口動(dòng)作封裝了狀態(tài)的定義,使?fàn)顟B(tài)的定義與進(jìn)出狀態(tài)的轉(zhuǎn)換無關(guān)。

圖6–5展示了一個(gè)狀態(tài)的順序分解,其中包括一個(gè)初始狀態(tài)。這是售票系統(tǒng)的狀態(tài)機(jī)模型。

圖6-5狀態(tài)機(jī)

將一個(gè)狀態(tài)分解成并發(fā)的多個(gè)子狀態(tài)代表相互獨(dú)立的并行處理過程。當(dāng)進(jìn)入一個(gè)并發(fā)超狀態(tài)時(shí),控制線程的數(shù)目增加;當(dāng)離開一個(gè)并發(fā)超狀態(tài)時(shí),控制線程的數(shù)目減少對(duì)于每一個(gè)狀態(tài)而言,并發(fā)通常依靠不同的對(duì)象實(shí)現(xiàn),但是,并發(fā)子狀態(tài)還可以代表一個(gè)單獨(dú)狀態(tài)內(nèi)部的邏輯并發(fā)關(guān)系。圖6–6展示了選修一門大學(xué)課程的并發(fā)分解。

圖6–6帶有并發(fā)組成狀態(tài)的狀態(tài)機(jī)

圖6–7子機(jī)器狀態(tài)

 

UML狀態(tài)機(jī)視圖中通常,可以在一個(gè)狀態(tài)機(jī)中使用其他狀態(tài)機(jī)的一部分,這種可重用性會(huì)帶來一些方便。狀態(tài)機(jī)可以命名,并可以用名字引用其他一個(gè)或多個(gè)狀態(tài)機(jī)。目標(biāo)狀態(tài)機(jī)是一個(gè)子機(jī)器,引用這個(gè)子機(jī)器的狀態(tài)叫做子機(jī)器引用狀態(tài)。它的含義是在需要引用的地方用一個(gè)狀態(tài)機(jī)來替換原有內(nèi)容。一個(gè)狀態(tài)機(jī)可以包含一個(gè)活動(dòng),即可以包含一個(gè)處理過程或一個(gè)需要消耗時(shí)間才能完成的持續(xù)過程或是可以被中斷的事件,而子機(jī)器不能圖6-7演示了子機(jī)器的引用。

進(jìn)入一個(gè)子機(jī)器引用狀態(tài)的轉(zhuǎn)換會(huì)激活目標(biāo)子機(jī)器的初始狀態(tài)。要進(jìn)入其他狀態(tài)的子機(jī)器,需要在子機(jī)器引用狀態(tài)中安置一個(gè)或多個(gè)樁狀態(tài)。樁狀態(tài)用于在子機(jī)器中標(biāo)識(shí)狀態(tài)。

【編輯推薦】

  1. UML狀態(tài)機(jī)圖繪制方法及其應(yīng)用說明
  2. 揭秘UML狀態(tài)機(jī)視圖中的四大事件
  3. 解析UML狀態(tài)機(jī)視圖狀態(tài)和轉(zhuǎn)換
  4. 教你繪制整潔的UML圖
  5. UML狀態(tài)圖創(chuàng)建過程中需要注意問題
責(zé)任編輯:佚名 來源: uml.org.cn
相關(guān)推薦

2010-06-18 12:38:38

UML狀態(tài)機(jī)視圖

2010-07-12 15:09:20

UML狀態(tài)機(jī)視圖

2010-07-12 15:00:56

UML狀態(tài)機(jī)視圖

2010-07-08 13:03:31

UML狀態(tài)機(jī)圖

2010-06-18 13:08:05

UML狀態(tài)機(jī)視圖

2010-06-13 16:16:21

UML狀態(tài)圖

2010-06-12 11:11:55

UML應(yīng)用

2010-06-12 16:42:03

UML設(shè)計(jì)

2010-06-18 13:15:07

UML狀態(tài)機(jī)圖

2010-06-11 17:34:37

UML對(duì)象圖

2010-06-11 16:38:22

UML協(xié)作圖

2010-06-30 14:46:49

UML類圖

2010-06-13 12:40:44

UML序列圖

2010-06-13 15:58:03

UML類圖

2023-03-06 07:35:30

狀態(tài)機(jī)工具訂單狀態(tài)

2010-06-13 16:07:56

UML活動(dòng)圖

2010-06-28 18:44:54

UML對(duì)象圖

2010-06-11 11:28:00

UML視圖

2021-07-08 09:15:20

單片機(jī)編程狀態(tài)機(jī)編程語言

2013-09-03 09:57:43

JavaScript有限狀態(tài)機(jī)
點(diǎn)贊
收藏

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