狀態圖是過程的抽象表示。它在計算機科學中常用來對編程語言的過程進行建模,它還可以幫助分析師繪製業務流程。系統的元素通常被稱為對象並且可以改變狀態。
在整個圖(也稱為 UML 狀態機圖)中跟踪統一建模語言 (UML) 中的這些轉換。UML 狀態圖可以捕捉對象、子系統和系統的生命週期,並且可以告知對象可以具有的狀態,以及事件如何(如消息的接收、時間的流逝、錯誤、條件為真等) .) 將隨著時間的推移而演變以影響這些狀態。
狀態圖還可以用來描述一個對象的各種狀態,狀態之間的轉換過程,以及觸發狀態轉換的各種事件和條件。

什麼是狀態轉換?
狀態圖的流程通常由發生的轉換決定。某些對象狀態可以轉換為冗餘狀態。有時,多個轉換會導致相同的狀態,這可能會導致混亂。在這種情況下,可以將多個盒子封裝在另一個盒子中,這通常稱為超狀態。如果系統中的事件和轉換很複雜,這種格式可以使狀態圖更易於閱讀。
狀態圖與流程圖
人們經常將狀態圖與流程圖混淆。下圖是狀態圖與流程圖的對比。左下圖中的狀態機圖執行操作以響應顯式事件。相比之下,右下圖中的活動圖不需要顯式事件,而是在活動完成後自動在其圖中從一個節點轉換到另一個節點。

什麼是活動圖?
活動圖 描述了涉及並發和同步的活動,它們是狀態圖的一種變體,專注於動作和事件的流動。它們可用於:
- 對人工任務(例如,業務流程)進行建模。
- 描述由用例表示的系統功能。
- 在操作規範中,描述操作的邏輯。

活動圖與狀態機圖
活動圖
在 UML 語義中,活動圖可以簡化為狀態機,並帶有一些附加符號,即頂點表示活動的執行,而邊表示從一個活動集合完成到新活動集合開始的轉換。活動圖捕獲高級活動方面。特別是,可以在活動圖中表示並發和協調。
查看活動圖,它為事件的動作流建模。這樣的活動圖側重於系統內的數據流。

狀態機圖
在狀態機中,頂點表示類中對象的狀態,邊表示事件的發生。附加符號記錄了活動是如何協調的。對象具有行為和狀態。對象的狀態取決於其當前的活動或狀況。狀態機圖顯示了對象的可能狀態以及導致狀態變化的轉換。
看看下面的狀態機圖。它模擬事件的狀態轉換。這樣的狀態圖側重於單個抽象(對象、系統)的一組屬性。

現在嘗試繪製UML狀態機圖
您已經了解了狀態機圖是什麼以及如何繪製狀態機圖。是時候繪製自己的狀態機圖了。獲取 Visual Paradigm Community Edition,一個免費的 UML 軟件工具,並使用免費的狀態機圖工具創建您自己的狀態機圖。它易於使用且直觀。