產(chǎn)品之術:一目了然的狀態(tài)機圖

21 評論 71863 瀏覽 199 收藏 6 分鐘

什么狀態(tài)機圖,它的使用場景是什么?文章為你解讀。

一、什么是狀態(tài)機?

做產(chǎn)品的時候,我們總能遇到一些比較復雜的邏輯問題。

比如狀態(tài)的轉(zhuǎn)換,字段狀態(tài)的確認,權限的控制,狀態(tài)的對應。

而普通的流程圖,或時序圖,更側(cè)重于流程和動作的描述,對于對象和狀態(tài)的解讀缺乏直觀。

這里我們推薦一種方式,就是畫一個簡單的狀態(tài)機圖:

那么什么是狀態(tài)機呢?狀態(tài)機我們將的一般是指有限狀態(tài)機:

有限狀態(tài)機,(英語:Finite-state machine, FSM),又稱有限狀態(tài)自動機,簡稱狀態(tài)機,是表示有限個狀態(tài)以及在這些狀態(tài)之間的轉(zhuǎn)移和動作等行為的數(shù)學模型。[1]

有限狀態(tài)機,又稱有限狀態(tài)自動機,簡稱狀態(tài)機,是表示有限個狀態(tài)以及在這些狀態(tài)之間的轉(zhuǎn)移和動作等行為的數(shù)學模型。[1]

有限狀態(tài)機可以將復雜的邏輯簡化為有限個穩(wěn)定狀態(tài),在穩(wěn)定狀態(tài)中判斷事件。其中有限不是指有限次處理,而是有限個穩(wěn)定狀態(tài),并且有限狀態(tài)機是一個閉環(huán)系統(tǒng),可以用有限的狀態(tài)處理無盡的事務。

有限狀態(tài)機是一種用來進行對象行為建模的工具,其作用主要是描述對象在它的生命周期內(nèi)所經(jīng)歷的狀態(tài)序列,以及如何響應來自外界的各種事件。在計算機科學中,有限狀態(tài)機被廣泛用于建模應用行為、硬件電路系統(tǒng)設計、軟件工程,編譯器、網(wǎng)絡協(xié)議、和計算與語言的研究。

二 狀態(tài)機圖怎么畫?

基本元素

當你需要描述一個對象或系統(tǒng)的行為狀態(tài)時,相比于直接的語言描述,更推薦使用狀態(tài)機表或狀態(tài)機圖的形式。

首先我們看一下基本元素:

做需求時,至少要了解以下四種元素:起始、終止、狀態(tài)、歷史狀態(tài)。

再加上動作和條件,我們就可以完成一個狀態(tài)機圖了:

所以對于狀態(tài)機圖來說,基本要用到6個元素:

  1. 起始
  2. 終止
  3. 狀態(tài)
  4. 歷史狀態(tài)
  5. 動作
  6. 條件

對于歷史狀態(tài)的使用,我們可以參考下面的案例。

比如我們舉個簡單的例子,一個洗衣機的快洗模式狀態(tài)圖:

遇到斷電的時候,機器是有緩存的,所以跳出流程恢復流程之后,是會回到歷史狀態(tài)。

狀態(tài)機表怎么畫?

首先我們看下下面這張狀態(tài)機圖,展示了一張簡單的單審批人文件的狀態(tài)流轉(zhuǎn)情況。

那么如何把他寫成表呢?這里有多種寫法,區(qū)別于縱坐標的不同,我們舉兩種:

左側(cè)的縱坐標為初始狀態(tài),橫坐標為終止狀態(tài)。

右側(cè)的縱坐標為動作條件,橫坐標為終止狀態(tài)。

那么對于動作比較多且復雜的情況下,可以考慮采用右側(cè)的表格,這樣會比較一目了然。

三 使用場景

  • 在講解邏輯的時候,或泳道圖過于麻煩的時候,你可能會用到狀態(tài)機圖。
  • 可能很多你提出的需求,工程師都會自己去把他畫成狀態(tài)機圖來方便編碼。
  • 所以能為別人多做一步,別人就對你多一份感激。
  • 在梳理需求的時候,狀態(tài)機圖也是一個幫助思維思考的好工具。
  • 狀態(tài)機圖更是一個代入感很強的表現(xiàn)形式。

比如我們可以畫一個狀態(tài)機圖來展示某崗位的一生:

最后希望這個崗位的同事都能夠做到邏輯清晰,身體健康。

#專欄作家#

花生醬先生,人人都是產(chǎn)品經(jīng)理專欄作家,微信公眾號:產(chǎn)品之術。金融業(yè)資深產(chǎn)品經(jīng)理,對職涯規(guī)劃與個人發(fā)展有豐富經(jīng)驗,產(chǎn)品涉獵廣泛,ERP、金融領域較多。

本文原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載。

題圖來自 Pixabay,基于 CC0 協(xié)議

更多精彩內(nèi)容,請關注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 您好,請教下,如果有很多種狀態(tài),多個狀態(tài)有一定的業(yè)務邏輯。比如一個建筑,是由未建設、建設中、已建成、建成未管理、建成已管理、未經(jīng)營、已經(jīng)營;是拆成3個狀態(tài)(建設狀態(tài)、管理狀態(tài)、經(jīng)營狀態(tài))還是用一個狀態(tài)呢?

    來自四川 回復
  2. 最后這個圖的終點只有養(yǎng)傷。。
    思考ING

    來自香港 回復
  3. 最后這個圖感覺被冒犯到了

    來自北京 回復
    1. ~~

      來自北京 回復
  4. get新技能 ??

    來自陜西 回復
  5. 這是什么字體,好看

    來自廣東 回復
  6. 我會清晰注明作者和出處的,謝謝了大佬

    來自廣西 回復
  7. 您好,大佬,請問我能轉(zhuǎn)載收藏嗎

    來自廣西 回復
  8. 新技能get

    來自北京 回復
  9. 新技能get

    來自北京 回復
    1. 謝謝!

      來自廣東 回復
  10. 寫的很好

    來自廣東 回復
    1. 謝謝!

      來自廣東 回復
  11. 很棒的分享 請問文章中的圖是用什么軟件畫的呢

    來自廣東 回復
    1. 是keynote做的,ppt也可以

      來自廣東 回復
    2. 謝啦~

      來自廣東 回復
    3. 線條上文字是如何加的?

      來自江蘇 回復
    4. 直接選中輸入文字

      來自上海 回復
  12. mark

    回復
    1. 謝謝

      回復
    2. vv

      回復