狀態圖是以狀態為核心表達,圓角矩形表示狀態,在轉移線上寫的內容,對應的是活動圖的活動。
活動圖是以活動為核心表達,圓角矩形表示活動,轉移線上通常不寫內容,只是在進行判斷的時候,要在線上寫出判斷的條件。
狀態圖也叫狀態機圖,是狀態機的表現形式。狀態圖利用狀態機可以精確描述對象在其生存期間的動態行為,表現為一個對象所經歷的狀態序列,引起狀態轉移的事件,以及因狀態轉移而伴隨的動作。
有限狀態機,又稱有限狀態自動機,簡稱狀態機,狀態機可以將複雜的邏輯簡化為有限個穩定狀態,在穩定狀態中判斷事件。
狀態機用於對模型元素的動態行為進行建模,或者對系統中受事件驅動的方面進行建模,描述一個對象或一個交互在其生命週期內響應時間所經歷的狀態序列。
狀態機涉及到其它一些元素,如狀態、轉移、事件和動作等。從對象的初始狀態起,開始響應事件並執行某些動作,這些事件引起狀態的轉移,對象在新狀態下又開始響應事件和執行動作,如此連續進行直到終止狀態。
支援多人線上同屏創作,可設置分享連結,即時傳遞資訊
只需輸入一句話,自動生成所需圖形,並自動美化圖形風格
內建多種主題風格,也可自由設計喜愛的樣式
支援插入圖示、圖片、標籤、備註LaTex公式、程式碼塊、連結、附件等多種形式元件
支援匯出PNG、VISIO、PDF、SVG等格式,支援匯入VISIO、Mermaid格式
檔案即時儲存,多端裝置雲同步,歷史版本可追溯,資料安全有保障
狀態圖是以狀態為核心表達,圓角矩形表示狀態,在轉移線上寫的內容,對應的是活動圖的活動。
活動圖是以活動為核心表達,圓角矩形表示活動,轉移線上通常不寫內容,只是在進行判斷的時候,要在線上寫出判斷的條件。
狀態是指對象在其生命週期中,滿足某些條件、執行某些活動或等待某些事件時的一個狀況,用圓角矩形表示。
初始狀態:代表狀態機圖的開始,使用實心圓表示,一個狀態機圖只有一個初始狀態。
結束狀態:表示狀態機圖的結束,使用實心的圓環表示,一個狀態機圖可以有多個結束狀態。
組合狀態:組合狀態是狀態內部嵌套有子狀態的狀態,根據狀態是否同時存在,分為順序子狀態和並發子狀態。
歷史狀態:歷史狀態是一種偽狀態,它表示在狀態再次轉移到該組合狀態時,應處於上一次退出時的一個子狀態,而不是從組合狀態的初態開始。
轉移是兩個不同狀態之間的一種關係,表示對象將在源狀態中執行一定的動作,並在某個特定事件發生而且某個特定的警界條件滿足時,進入目標狀態。
觸發事件:是轉移的誘因,可以是一個信號,事件、條件變化和時間表達式。
警戒條件:是一個邏輯表達式,觸發事件發生且警戒條件為真時,轉移才會被激活。
動作:可以是一個賦值操作或算術運算,也可以是一個動作序列,包括給另外一個對象發送消息、調用一個操作、設置返回值、創建或銷毀對象等。
信號事件:是指一個對象接收到信號的事件,該接收信號的事件會導致其狀態的轉換。
時間事件:代表時間的流逝,當時間條件被滿足時可能要觸發某個事件,時間可以是相對的也可以絕對的。
改變事件:指依賴特定屬性值的邏輯表達式所表示的條件滿足時,事件發生。
調用事件:表示一個對象接收到一個對調用的請求,這個對象用狀態的轉移而非特定的處理過程來實現操作。
控制器:如電梯控制系統
用戶界面流程:如登錄流程
生命週期管理:如訂單、任務、請求等
一個狀態機圖只有一個初始狀態,可以有多個結束狀態。
順序子狀態:在組合狀態的生命週期中,任何時刻只能處於一個子狀態,即多個子狀態之間是互斥的關係,不能同時存在。
並發子狀態:在組合狀態的生命週期中,多個子狀態可以同時存在。
二者不是一個意思。
歷史狀態一般存在於組合狀態中,它是一種偽狀態,表示在狀態再次轉移到該組合狀態時,應處於上一次退出時的某個子狀態。
內部轉移是指不會導致狀態改變的轉移,表示方法:事件(參數名)[警戒條件]/動作。
我們需要在某狀態下處理一些無需離開該狀態的事件,可以定義一個內部轉移。
各種動作的種類及相關語法可描述如下:
(1)賦值:target:=expression
(2)調用:opname(arg1,arg2)
(3)創建對象:new Cname(arg1,arg2)
(4)銷毀對象:object.destroy()
(5)返回值:return value
(6)向對象發送消息:sname(arg1,arg2)
(7)對象自我終止:terminate
(8)不可中斷動作:[用語言說明]
不要把普通動作當作狀態,如:“點擊按鈕”不是狀態。
狀態圖不能直接表示多個對象之間的關係,狀態圖主要針對單個對象或單個類的行為建模。如果多個對象間有交互,可用時序圖、協作圖或活動圖來表示。
可以。對於複雜系統,一個對象的行為可能被拆分為多個視角或維度的狀態圖,也可以將多個子狀態圖嵌入為複合狀態圖。
事件是觸發器,指觸發狀態轉移的外部信號,如:用戶點擊“提交”按鈕;
動作是反應,指在狀態轉移時或狀態中執行的操作,如:發送確認郵件、計時、驗證密碼。