【產品】產品之術:一目瞭然的狀態機圖
什麼狀態機圖,它的使用場景是什麼?文章為你解讀。
一、什麼是狀態機?
做產品的時候,我們總能遇到一些比較複雜的邏輯問題。
比如狀態的轉換,欄位狀態的確認,許可權的控制,狀態的對應。
而普通的流程圖,或時序圖,更側重於流程和動作的描述,對於物件和狀態的解讀缺乏直觀。
這裡我們推薦一種方式,就是畫一個簡單的狀態機圖:
那麼什麼是狀態機呢?狀態機我們將的一般是指有限狀態機:
有限狀態機,(英語:Finite-state machine, FSM),又稱有限狀態自動機,簡稱狀態機,是表示有限個狀態以及在這些狀態之間的轉移和動作等行為的數學模型。 有限狀態機,又稱有限狀態自動機,簡稱狀態機,是表示有限個狀態以及在這些狀態之間的轉移和動作等行為的數學模型。 有限狀態機可以將複雜的邏輯簡化為有限個穩定狀態,在穩定狀態中判斷事件。其中有限不是指有限次處理,而是有限個穩定狀態,並且有限狀態機是一個閉環系統,可以用有限的狀態處理無盡的事務。 有限狀態機是一種用來進行物件行為建模的工具,其作用主要是描述物件在它的生命週期內所經歷的狀態序列,以及如何響應來自外界的各種事件。在電腦科學中,有限狀態機被廣泛用於建模應用行為、硬體電路系統設計、軟體工程,編譯器、網路協議、和計算與語言的研究。
二 狀態機圖怎麼畫?
基本元素
當你需要描述一個物件或系統的行為狀態時,相比於直接的語言描述,更推薦使用狀態機表或狀態機圖的形式。
首先我們看一下基本元素:
做需求時,至少要了解以下四種元素:起始、終止、狀態、歷史狀態。
再加上動作和條件,我們就可以完成一個狀態機圖了:
所以對於狀態機圖來說,基本要用到6個元素:
- 起始
- 終止
- 狀態
- 歷史狀態
- 動作
- 條件
對於歷史狀態的使用,我們可以參考下面的案例。
比如我們舉個簡單的例子,一個洗衣機的快洗模式狀態圖:
遇到斷電的時候,機器是有快取的,所以跳出流程恢復流程之後,是會回到歷史狀態。
狀態機表怎麼畫?
首先我們看下下面這張狀態機圖,展示了一張簡單的單審批人檔案的狀態流轉情況。
那麼如何把他寫成表呢?這裡有多種寫法,區別於縱座標的不同,我們舉兩種:
左側的縱座標為初始狀態,橫座標為終止狀態。
右側的縱座標為動作條件,橫座標為終止狀態。
那麼對於動作比較多且複雜的情況下,可以考慮採用右側的表格,這樣會比較一目瞭然。
三 使用場景
- 在講解邏輯的時候,或泳道圖過於麻煩的時候,你可能會用到狀態機圖。
- 可能很多你提出的需求,工程師都會自己去把他畫成狀態機圖來方便編碼。
- 所以能為別人多做一步,別人就對你多一份感激。
- 在梳理需求的時候,狀態機圖也是一個幫助思維思考的好工具。
- 狀態機圖更是一個代入感很強的表現形式。
比如我們可以畫一個狀態機圖來展示某崗位的一生:
本文轉載自人人都是產品經理專欄作家