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

21 評論 70555 瀏覽 198 收藏 6 分鐘

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

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

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

比如狀態(tài)的轉(zhuǎn)換,字段狀態(tài)的確認(rèn),權(quán)限的控制,狀態(tài)的對應(yīng)。

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

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

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

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

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

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

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

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

基本元素

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

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

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

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

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

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

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

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

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

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

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

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

左側(cè)的縱坐標(biāo)為初始狀態(tài),橫坐標(biāo)為終止?fàn)顟B(tài)。

右側(cè)的縱坐標(biāo)為動(dòng)作條件,橫坐標(biāo)為終止?fàn)顟B(tài)。

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

三 使用場景

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

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

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

#專欄作家#

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

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

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

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

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

    來自香港 回復(fù)
  3. 最后這個(gè)圖感覺被冒犯到了

    來自北京 回復(fù)
    1. ~~

      來自北京 回復(fù)
  4. get新技能 ??

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

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

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

    來自廣西 回復(fù)
  8. 新技能get

    來自北京 回復(fù)
  9. 新技能get

    來自北京 回復(fù)
    1. 謝謝!

      來自廣東 回復(fù)
  10. 寫的很好

    來自廣東 回復(fù)
    1. 謝謝!

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

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

      來自廣東 回復(fù)
    2. 謝啦~

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

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

      來自上海 回復(fù)
  12. mark

    回復(fù)
    1. 謝謝

      回復(fù)
    2. vv

      回復(fù)