【UML用戶指南】-26-對高級行為建模-狀態圖

目錄

1、概念

2、組成結構

3、一般用法

4、常用建模技術

4.1、對反應型對象建模


一個狀態圖顯示了一個狀態機。在為對象的生命期建模中

活動圖展示的是跨過不同的對象從活動到活動的控制流

狀態圖展示的是單個對象內從狀態到狀態的控制流。

在UML中,用狀態圖對一個對象按事件排序的行為建模。

1、概念

狀態圖 (state diagram)顯示了一個狀態機,它強調從狀態到狀態的控制流。

狀態機 (state machine)是一個行為,它說明對象在它的生命期中響應事件所經歷的狀態序列以及它對那些事件的響應。

狀態(state)是對象的生命期中的一個條件或狀況,在此期間對象將滿足某些條件、執行某些活動或等待某些事件。

事件(event)是對一個有意義的發生的規約,這種發生在時間和空間上占有一定位置。在狀態機的語境中,事件是一次激勵的發生,激勵能夠觸發狀態轉移。

轉移(transition)是兩個狀態之間的關系,它指明當特定事件發生而且特定條件滿足時,在第一個狀態中的對象執行一定的動作并進入第二個狀態。

活動 (activity)是狀態機中正在進行的執行。

動作 (action)是一個可執行的原子計算,它引起模型狀態改變或值的返回。

在圖形上,狀態圖是頂點和弧的集合。
?

2、組成結構

狀態圖通常包括:

簡單狀態和組合狀態;

轉移、事件和動作。

與所有其他圖一樣,狀態圖也可以包括注解和約束。

狀態圖基本上是狀態機中的元素的投影。這意味著狀態圖可以包括分支、分岔、匯合、動作狀態、活動狀態、對象、初始狀態、終止狀態和歷史狀態等。

事實上,狀態圖可以包括狀態機的任何和所有特征。

3、一般用法

反應型(或事件驅動的)對象是這樣一種對象,其行為通常是由對來自其語境外部的事件所做出的反應來最佳刻畫的。反應型對象在接收到一個事件之前通常處于空閑狀態;當它接收到一個事件時,它的反應常常依賴于以前的事件;在這個對象對事件做出反應后,它就又變成空閑狀態,等待下一個事件。對于這種對象,將著眼于對象的穩定狀態,觸發從狀態到狀態轉移的事件,以及當每個狀態改變時所發生的動作。

4、常用建模技術

4.1、對反應型對象建模

交互是對共同工作的對象群體的行為建模,

狀態圖是對一個單獨的對象在它的生命期中的行為建模。

活動圖是對從活動到活動的控制流建模,狀態圖是對從事件到事件的控制流建模。

這個對象可能處于的穩定狀態、

觸發從狀態到狀態的轉移的事件

以及當每個狀態改變時發生的動作。

對反應型對象的行為建模還包括對對象的生命期建模,從對象的創建時刻開始,直到它被撤銷時結束,強調在其中可能發現的這個對象的穩定狀態。

????????穩定狀態表示一個條件,對象可以在該條件下存在一段可識別的時間。當一個事件發生時,這個對象可能從一個狀態轉移到另一個狀態。這些事件也可能觸發自身轉移和內部的轉移,其中轉移的源和目標是同一個狀態。在對事件或狀態變化的反應中,對象可能要執行一個動作來做出響應。

上圖顯示了一個狀態圖,用于分析一個簡單的與語境無關的語言,正如在向XML輸入或輸出消息的系統中可能發現的那樣。在這種情況下,該機器被設計得能分析與語法相匹配的字符流:

message: '<' string '>' string ';'

其中,第一個串表示一個標記,第二個串表示該消息體。給定一個字符流,只有遵從這個語法的形式良好的消息才能被接受。

如圖所示,這個狀態機僅有3個穩定狀態:Waiting、GettingToken和GettingBody。這個狀態機被設計成有動作附加在轉移上的米利機。

在這個狀態機中僅有一種感興趣的事件,即帶有實際參數c(一個字符)對put的調用

在Waiting狀態下,該機器丟棄任何不是開始標記的字符(通過監護條件來說明)。當接收到一個開始標記時,該對象的狀態就改變為GettingToken。在這個狀態中,機器保存任何不是結束標記的字符(通過監護條件來說明)。當接收到一個結束標記時,該對象的狀態就改變為GettingBody。在這個狀態中,機器保存任何不是一個消息體結束標記的字符(通過監護條件來說明)。當接收到一個消息結束標記時,該對象的狀態就改變為Waiting,并返回一個值,表示該消息已被分析過(并且機器準備接收另一個消息)。
?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/38430.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/38430.shtml
英文地址,請注明出處:http://en.pswp.cn/web/38430.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

tcpdump命令詳解及使用實例

1、抓所有網卡數據包&#xff0c;保存到指定路徑 tcpdump -i any -w /oemdata/123.pcap&一、tcpdump簡介 tcpdump可以將網絡中傳送的數據包完全截獲下來提供分析。它支持針對網絡層、協議、主機、網絡或端口的過濾&#xff0c;并提供and、or、not等邏輯語句來去掉無用的信…

【Python】已解決:SyntaxError: positional argument follows keyword argument

文章目錄 一、分析問題背景二、可能出錯的原因三、錯誤代碼示例四、正確代碼示例五、注意事項 已解決&#xff1a;SyntaxError: positional argument follows keyword argument 一、分析問題背景 在Python編程中&#xff0c;當我們在調用函數時混合使用位置參數&#xff08;p…

RabbitMQ進階篇

文章目錄 發送者的可靠性生產者重試機制實現生產者確認 MQ的可靠性數據持久化交換機持久化隊列持久化消息持久化 Lazy Queue(可配置~)控制臺配置Lazy模式代碼配置Lazy模式更新已有隊列為lazy模式 消費者的可靠性消費者確認機制失敗重試機制失敗處理策略 業務冪等性唯一消息ID業…

西部智慧健身小程序+華為運動健康服務

1、 應用介紹 西部智慧健身小程序為用戶提供一站式全流程科學健身綜合服務。用戶通過登錄微信小程序&#xff0c;可享用健康篩查、運動風險評估、體質檢測評估、運動處方推送、個人運動數據監控與評估等公益服務。 2、 體驗介紹西部智慧健身小程序華為運動健康服務核心體驗如…

idea xml ctrl+/ 注釋格式不對齊

處理前 處理后 解決辦法 取消這兩個勾選

核方法總結(三)———核主成分(kernel PCA)學習筆記

一、核主成分 1.1 和PCA的區別 PCA &#xff08;主成分分析&#xff09;對應一個線性高斯模型&#xff08;參考書的第二章&#xff09;&#xff0c;其基本假設是數據由一個符合正態分布的隱變量通過一個線性映射得到&#xff0c;因此可很好描述符合高斯分布的數據。然而在很多實…

ViewBinding的使用(因為kotlin-android-extensions插件的淘汰)

書籍&#xff1a; 《第一行代碼 Android》第三版 開發環境&#xff1a; Android Studio Jellyfish | 2023.3.1 問題&#xff1a; 3.2.4在Activity中使用Toast章節中使用到了kotlin-android-extensions插件,但是該插件已經淘汰,根據網上了解,目前使用了新的技術VewBinding替…

UE4_材質_材質節點_DepthFade

一、DepthFade參數 DepthFade&#xff08;深度消退&#xff09;表達式用來隱藏半透明對象與不透明對象相交時出現的不美觀接縫。 項目說明屬性消退距離&#xff08;Fade Distance&#xff09;這是應該發生消退的全局空間距離。未連接 FadeDistance&#xff08;FadeDistance&a…

【數據分析“三劍客”】—— Pandas

Pandas Pandas 是基于NumPy的一種工具&#xff0c;該工具是為解決數據分析任務而創建的, Pandas提供了大量能使我們快速便捷地處理數據的函數和方法。Pandas與出色的 Jupyter工具包和其他庫相結合&#xff0c;Python中用于進行數據分析的環境在性能、生產率和協作能力方面都是…

光照老化試驗箱:材料耐久性的“時間加速器”

光照老化試驗箱&#xff1a;材料耐久性的“時間加速器”概述 光照老化試驗箱是一種模擬自然光照條件下材料老化過程的設備&#xff0c;廣泛應用于材料科學領域的耐久性能評估。通過模擬日光中的紫外線、熱輻射等環境因素&#xff0c;加速材料老化過程&#xff0c;以此來驗證材…

redhawk:tech file與lefdef layer name不匹配問題

我正在「拾陸樓」和朋友們討論有趣的話題&#xff0c;你?起來吧&#xff1f; 拾陸樓知識星球入口 一些工藝廠商給的redhawk tech file是加密的&#xff0c;讀完tech file再讀lef/def會報錯&#xff0c;根本不知道問題在哪&#xff0c;他們一般會搭配給一個layer map&#xff…

分解+降維+預測!多重創新!直接寫核心!EMD-KPCA-Transformer多變量時間序列光伏功率預測

分解降維預測&#xff01;多重創新&#xff01;直接寫核心&#xff01;EMD-KPCA-Transformer多變量時間序列光伏功率預測 目錄 分解降維預測&#xff01;多重創新&#xff01;直接寫核心&#xff01;EMD-KPCA-Transformer多變量時間序列光伏功率預測效果一覽基本介紹程序設計參…

【簡單講解神經網絡訓練中batch的作用】

&#x1f3a5;博主&#xff1a;程序員不想YY啊 &#x1f4ab;CSDN優質創作者&#xff0c;CSDN實力新星&#xff0c;CSDN博客專家 &#x1f917;點贊&#x1f388;收藏?再看&#x1f4ab;養成習慣 ?希望本文對您有所裨益&#xff0c;如有不足之處&#xff0c;歡迎在評論區提出…

Maven依賴解析過程詳細講解

Maven依賴解析是一個遞歸的過程&#xff0c;涉及從項目的POM文件開始&#xff0c;逐步解析直接依賴和傳遞依賴。以下是詳細的解析過程&#xff1a; 讀取項目的POM文件&#xff1a; Maven首先讀取項目的POM文件 (pom.xml)&#xff0c;該文件定義了項目的直接依賴。 解析直接依賴…

STM32第十五課:LCD屏幕及應用

文章目錄 需求一、LCD顯示屏二、全屏圖片三、數據顯示1.顯示歡迎詞2.顯示溫濕度3.顯示當前時間 四、需求實現代碼 需求 1.在LCD屏上顯示一張全屏圖片。 2.在LCD屏上顯示當前時間&#xff0c;溫度&#xff0c;濕度。 一、LCD顯示屏 液晶顯示器&#xff0c;簡稱 LCD(Liquid Cry…

node_sqlite3.node is not a valid win32 application

electron打包報錯 使用electron在linux平臺打包含有sqlite3的項目為win32應用時在運行階段&#xff0c;有時會遇到下面的錯誤 node_sqlite3.node is not a valid win32 application出現該錯誤的原因主要是在64bit的linux環境中&#xff0c;sqlite3默認build出來的二進制文件不…

【Windows】Visual Studio Installer下載緩慢解決辦法

【Windows】Visual Studio Installer下載緩慢解決辦法 1.背景2.分析3.結果 1.背景 使用visual studio在線安裝包進行IDE安裝&#xff0c;發現下載幾乎停滯&#xff0c;網速幾乎為零。 經過排查并不是因為實際網絡帶寬導致。 這里涉及DNS知識&#xff1b; DNS&#xff08;Dom…

消防認證-防火卷簾

一、消防認證 消防認證是指消防產品符合國家相關技術要求和標準&#xff0c;且通過了國家認證認可監督管理委員會審批&#xff0c;獲得消防認證資質的認證機構頒發的證書&#xff0c;消防產品具有完好的防火功能&#xff0c;是住房和城鄉建設領域驗收的重要指標。 二、認證依據…

TP8 JS(html2canvas) 把DIV內容生成二維碼并與背景圖、文字組合生成分享海報

方法一&#xff1a;前端JS生成(推薦) 注意&#xff1a; 1.這個網頁只能截圖圖片效果代碼&#xff0c;其它任何html效果都不能有&#xff0c;不然截圖就不準確 2.如果要生成的圖片DIV內容中引用了第三個方的圖片&#xff0c;就是不使用同一個域名下的圖片&#xff0c;需要把后…

Python爬取淘寶商品評價信息實戰:從零到一的高效教程

引言&#xff1a;揭秘淘寶數據金礦 在電商領域&#xff0c;用戶評價是衡量產品優劣的金標準。作為Python爬蟲工程師&#xff0c;掌握從淘寶這座數據金礦中挖掘寶貴評價信息的技能至關重要。本文將帶你手把手實操&#xff0c;用Python爬蟲技術獲取淘寶商品的評價信息&#xff0…