日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

UML——状态图

發布時間:2025/6/15 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 UML——状态图 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?狀態和狀態機

狀態、狀態表示法及狀態機

?狀態?是指在對象生命周期中滿足某些條件、執行某些活動或等待某些事件的一個條件和狀況

?一個狀態通常包括名稱、進入/退出活動、內部轉換、子狀態和延遲事件?等五個部分組成

?狀態機?是計算機科學理論的一部分,但UML中的狀態機模型主要是基于David Harel所做的擴展,是用來展示狀態與狀態之間轉換的圖

?如何閱讀狀態機圖

閱讀最簡單的狀態圖

?最為核心的元素無外乎是兩個:一個是用圓角矩形表示的狀態?(初態和終態例外);另一個則是在狀態之間的、包含一些文字描述的有向箭頭線,這些箭頭線稱為轉換

轉換的五要素

?源狀態:即受轉換影響的狀態

?目標狀態:當轉換完成后對象的狀態

?觸發事件:用來為轉換定義一個事件,包括調用、改變、信號、時間四類事件

?監護條件:布爾表達式,決定是否激活轉換、

?動作:轉換激活時的操作

讀圖小結

?與狀態off相關的轉換有兩個,其觸發事件都是turnOn,只不過其監護條件不同。如果對象收到事件turnOn,那么將判斷壺中是否有水;如果[沒水],則仍然處于off狀態;如果[有水]則轉為on狀態,并執行“燒水”動作

?而與狀態on相關的轉換也有兩個,如果“水開了”就執行turnOff,關掉開關;如果燒壞了,就進入了終態了

復雜轉換

轉換類型

描述

語法

外部轉換

??????對事件做出響應,引起狀態變化或自身轉換,同時引發一個特定動作,如果離開或進入狀態將引發進入轉換、離開轉換

事件?(?參數?)[?監護條件?]/?動作

內部轉換

??????對事件做出響應,并執行一個特定的活動,但并不引起狀態變化或進入轉換、離開轉換

事件?(?參數?)[?監護條件?]/?動作

進入轉換

?????當進入某一狀態時,執行相應活動

entry/?活動

退出轉換

??????當離開某一狀態時,執行相應活動

exit/?活動

閱讀帶有復雜轉換的狀態圖

只有動作描述,進入和退出和操作方法寫在了里面

各種轉換的區別

?進入和退出轉換?:當進入一個狀態時,執行某個動作;或當退出某個狀態時,執行什么動作。這時就可以使用進入和退出轉換?來表示

?內部轉換?:用來處理一些不離開該狀態的事件

活動與延遲事件

?活動:當對象處于一個狀態時,它一般是空閑的,在等待一個事件的發生。但是某些時間,你可能希望描述個正在進行的活動。在處于一個狀態的同時,對象做著某些工作,并一直繼續到被某個事件中斷

? 延遲事件:延遲事件是一種特殊的事件,它是指該事件不會觸發狀態的轉換,當對象處于該狀態時事件不會丟失,但會被延遲執行。例如,當E-mail程序中正 在發送第一封郵件時,用戶下達發送第二封郵件執令就會被延遲,但第一封郵件發送完成后,這封郵件就會被發送。這種事件就屬于延遲事件

復合狀態表示法

?分解指示符

順序復合狀態圖

監護條件為“應答音?”,代表已連接。

并發復合狀態圖

三種評測方式

歷史

?“一個圓圈中加上字母H”,是用來表示歷史狀態的。

它的含義是:當從狀態“結賬”和“顯示購物車”返回子狀態“顯示索引信息”時,將進入的是離開時的歷史狀態。也就是說,轉到購物車或結賬區之后,再回到“瀏覽目錄”的頁面時,其中的內容是不變的,仍然保留原來的信息。

子狀態機

?將子狀態機單獨定義,并對其進行命名(通常以大寫字母開頭),然后在需要使用的地方來引用它

引用C狀態機

?如何繪制狀態機圖

繪制狀態機圖

?繪制狀態機圖的理想步驟是:尋找?主要的狀態,確定狀態之間的轉換?,細化?狀態內的活動與轉換,用復合狀態來展開細節

?尋找主要狀態:對于航班機票預訂系統而言,顯然包括的狀態主要有 -- 在剛確定飛機計劃時,顯然是沒有任何預訂的,并且在有人預訂機票之前都將處于這種“無預訂”狀態 -- 對訂座而言顯然有“部分預訂”和“預訂完”兩種狀態 -- 而當航班快要起飛時,顯然要“預訂關閉” 總結一下,主要有四種狀態:無預訂、部分預訂、預訂完以及預訂關閉

?確定狀態間轉換

表格橫向是轉出

表格縱向是轉入

源目標

無預訂

部分預訂

預訂完

預訂關閉

無預訂

?

預訂?()

不直接轉換

關閉?()

部分預訂

退訂?(),?使預訂人?=0

?

預訂?(),?無空座

關閉?()

預訂完

不直接轉換

退訂?()

?

關閉?()

預訂關閉

無轉換

無轉換

無轉換

?

?細化狀態內的活動與轉換

?使用復合狀態

?狀態機圖應用說明

?對對象生命周期建模?:主要描述對象能夠響應的事件、對這些事件的響以及過去對當前行為的影響

?對反應型對象建模:這個對象可能處于的穩定狀態、從一個狀態到另一個狀態之間的轉換所需的觸發事件,以及每個狀態改變時發生的動作

?狀態機圖既可以用來表示一個業務領域的知識,也可以用來描述設計階段對象的狀態變遷

?本章小結

?首先介紹了“狀態”的概念和UML表示法,然后引入了狀態機的概念

?通過三個例子逐一說明簡單狀態機圖、包含復雜轉換的狀態機圖以及包含復合狀態的狀態機圖的閱讀方法

?,緊接著通過一個航班機票預訂系統來闡述了狀態圖的繪制過程:確定狀態,分析狀態間的轉換,細化活動與內部轉化,通過復合狀態來組織

?簡明地點出狀態圖的兩大功能:對對象的生命周期建模以及對反應型對象的行為建模

總結

以上是生活随笔為你收集整理的UML——状态图的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。