流程類
圖形化表達方式
思維類
結構化表達方式
筆記類
高效化表達方式

狀態圖在線繪製

免費使用
狀態圖在線繪製
什麼是 狀態圖

狀態圖也叫狀態機圖,是狀態機的表現形式。狀態圖利用狀態機可以精確描述對象在其生存期間的動態行為,表現為一個對象所經歷的狀態序列,引起狀態轉移的事件,以及因狀態轉移而伴隨的動作。

有限狀態機,又稱有限狀態自動機,簡稱狀態機,狀態機可以將複雜的邏輯簡化為有限個穩定狀態,在穩定狀態中判斷事件。

狀態機用於對模型元素的動態行為進行建模,或者對系統中受事件驅動的方面進行建模,描述一個對象或一個交互在其生命週期內響應時間所經歷的狀態序列。

狀態機涉及到其它一些元素,如狀態、轉移、事件和動作等。從對象的初始狀態起,開始響應事件並執行某些動作,這些事件引起狀態的轉移,對象在新狀態下又開始響應事件和執行動作,如此連續進行直到終止狀態。

免費使用

ProcessOn 狀態圖 功能亮點

線上協作

支援多人線上同屏創作,可設置分享連結,即時傳遞資訊

線上協作
AI一鍵生成

只需輸入一句話,自動生成所需圖形,並自動美化圖形風格

AI一鍵生成
個性化風格定制

內建多種主題風格,也可自由設計喜愛的樣式

個性化風格定制
多種形式元件

支援插入圖示、圖片、標籤、備註LaTex公式、程式碼塊、連結、附件等多種形式元件

多種形式元件
相容多種格式

支援匯出PNG、VISIO、PDF、SVG等格式,支援匯入VISIO、Mermaid格式

相容多種格式
數據多端同步

檔案即時儲存,多端裝置雲同步,歷史版本可追溯,資料安全有保障

數據多端同步
狀態圖和活動圖區別

狀態圖是以狀態為核心表達,圓角矩形表示狀態,在轉移線上寫的內容,對應的是活動圖的活動。

活動圖是以活動為核心表達,圓角矩形表示活動,轉移線上通常不寫內容,只是在進行判斷的時候,要在線上寫出判斷的條件。

線上建立圖表
狀態圖和活動圖區別
狀態分類

狀態是指對象在其生命週期中,滿足某些條件、執行某些活動或等待某些事件時的一個狀況,用圓角矩形表示。

初始狀態:代表狀態機圖的開始,使用實心圓表示,一個狀態機圖只有一個初始狀態。

結束狀態:表示狀態機圖的結束,使用實心的圓環表示,一個狀態機圖可以有多個結束狀態。

組合狀態:組合狀態是狀態內部嵌套有子狀態的狀態,根據狀態是否同時存在,分為順序子狀態和並發子狀態。

歷史狀態:歷史狀態是一種偽狀態,它表示在狀態再次轉移到該組合狀態時,應處於上一次退出時的一個子狀態,而不是從組合狀態的初態開始。

線上建立圖表
狀態分類
轉移組成

轉移是兩個不同狀態之間的一種關係,表示對象將在源狀態中執行一定的動作,並在某個特定事件發生而且某個特定的警界條件滿足時,進入目標狀態。

觸發事件:是轉移的誘因,可以是一個信號,事件、條件變化和時間表達式。
警戒條件:是一個邏輯表達式,觸發事件發生且警戒條件為真時,轉移才會被激活。
動作:可以是一個賦值操作或算術運算,也可以是一個動作序列,包括給另外一個對象發送消息、調用一個操作、設置返回值、創建或銷毀對象等。

線上建立圖表
轉移組成
觸發事件種類

信號事件:是指一個對象接收到信號的事件,該接收信號的事件會導致其狀態的轉換。

時間事件:代表時間的流逝,當時間條件被滿足時可能要觸發某個事件,時間可以是相對的也可以絕對的。

改變事件:指依賴特定屬性值的邏輯表達式所表示的條件滿足時,事件發生。

調用事件:表示一個對象接收到一個對調用的請求,這個對象用狀態的轉移而非特定的處理過程來實現操作。

線上建立圖表
觸發事件種類
狀態圖應用場景

控制器:如電梯控制系統

用戶界面流程:如登錄流程

生命週期管理:如訂單、任務、請求等

線上建立圖表
狀態圖應用場景

狀態圖 怎麼畫?

狀態圖怎麼畫?
1
在開始繪製之前,需要先梳理好狀態圖中的狀態、轉移和觸發事件
2
新建"UML圖",或者先新建"流程圖",然後添加“UML狀態圖/活動圖”符號到作图区
3
在左側工具面板選擇“狀態”的圖標,拖拽到右側作图区,標註狀態名稱
4
添加狀態轉移,通過“線條”+“箭頭”的組合來實現,並添加觸發事件、警戒條件和動作
5
根據作圖需要,創建子狀態、歷史狀態、同步條、泳道等元素
6
檢查並確認圖形正確無誤,這樣,一張專業的狀態圖就製作完成
免費使用

狀態圖 繪製攻略

  • 什麼是狀態圖?-UML指南

    什麼是狀態圖?-UML指南

    狀態圖,又稱為狀態機圖,作為UML(統一建模語言)中的核心組件,它能夠幫助我們清楚地描繪出物件在其生命週期中所經歷的各種狀態以及這些狀態之間的轉換關係。本文將深入解析狀態機圖的概念、組成、繪圖教程,模板與範例等,相信看完本篇文章後你能夠熟練狀態機圖。
    Skye
    2024-12-27
    3397
  • UML圖完全指南:10分鐘掌握14種UML圖

    UML圖完全指南:10分鐘掌握14種UML圖

    本文利用ProcessOn作圖工具,快去全面快速解讀什麼是UML圖?UML圖分為那些種類及每種圖形的概念用途等,學會高效使用這一工具來提升開發效率及品質。
    Melody
    2025-03-03
    9961
  • 新手必讀:UML入門

    新手必讀:UML入門

    UML(Unified Modeling Language)是一個通用的視覺化建模語言標準,用於對軟體進行描述、視覺化處理、建構和建立軟體系統製品的文件。本文將從UML的概念、意義、組成等方面對UML進行講解,透過本文的基礎介紹,相信你不僅能夠深刻理解UML的歷史脈絡,更能掌握其在需求分析、系統設計及文檔編制等方面的廣泛應用。
    Skye
    2025-04-03
    675

狀態圖 範本推薦

更多模板

狀態圖 常見問題

初始狀態和結束狀態必須唯一嗎?

一個狀態機圖只有一個初始狀態,可以有多個結束狀態。

順序子狀態和並發子狀態有什麼區別?

順序子狀態:在組合狀態的生命週期中,任何時刻只能處於一個子狀態,即多個子狀態之間是互斥的關係,不能同時存在。

並發子狀態:在組合狀態的生命週期中,多個子狀態可以同時存在。

歷史狀態和源狀態是一個意思嗎?

二者不是一個意思。
歷史狀態一般存在於組合狀態中,它是一種偽狀態,表示在狀態再次轉移到該組合狀態時,應處於上一次退出時的某個子狀態。

什麼是內部轉移?

內部轉移是指不會導致狀態改變的轉移,表示方法:事件(參數名)[警戒條件]/動作。
我們需要在某狀態下處理一些無需離開該狀態的事件,可以定義一個內部轉移。

狀態圖中的動作要怎麼表示?

各種動作的種類及相關語法可描述如下:
(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)不可中斷動作:[用語言說明]

狀態圖中任何動作都可以當做動態嗎?

不要把普通動作當作狀態,如:“點擊按鈕”不是狀態。

狀態圖能不能表示多個對象?

狀態圖不能直接表示多個對象之間的關係,狀態圖主要針對單個對象或單個類的行為建模。如果多個對象間有交互,可用時序圖、協作圖或活動圖來表示。

一個對象可以有多個狀態圖嗎?

可以。對於複雜系統,一個對象的行為可能被拆分為多個視角或維度的狀態圖,也可以將多個子狀態圖嵌入為複合狀態圖。

狀態圖中的事件和動作有什麼區別?

事件是觸發器,指觸發狀態轉移的外部信號,如:用戶點擊“提交”按鈕;
動作是反應,指在狀態轉移時或狀態中執行的操作,如:發送確認郵件、計時、驗證密碼。

相關圖形