產(chǎn)品之術(shù):一目了然的狀態(tài)機(jī)圖
什么狀態(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è)元素:
- 起始
- 終止
- 狀態(tài)
- 歷史狀態(tài)
- 動(dòng)作
- 條件
對于歷史狀態(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é)議
您好,請教下,如果有很多種狀態(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)呢?
最后這個(gè)圖的終點(diǎn)只有養(yǎng)傷。。
思考ING
最后這個(gè)圖感覺被冒犯到了
~~
get新技能 ??
這是什么字體,好看
我會(huì)清晰注明作者和出處的,謝謝了大佬
您好,大佬,請問我能轉(zhuǎn)載收藏嗎
新技能get
新技能get
謝謝!
寫的很好
謝謝!
很棒的分享 請問文章中的圖是用什么軟件畫的呢
是keynote做的,ppt也可以
謝啦~
線條上文字是如何加的?
直接選中輸入文字
mark
謝謝
vv