狀態機圖
一、概念
Ⅰ. 活動圖、狀態圖的區別:
活動圖將流程分解為一個一個的活動,通過活動的先后順序來展示流程
狀態機圖從某個事物的狀態是如果變化的角度來展示流程。
Ⅱ. 活動圖、狀態機圖圓角邊框的區別
活動圖 | 狀態機圖 | |
---|---|---|
圖例 | ![]() |
![]() |
文字表達 | 采用主動賓或動賓的表達方式,表示某某做什么事情 | 一般使用形容詞或名詞,表示某種狀態 |
框框的形狀 | 左右兩邊框全部都是弧線 | 只有四個角是弧線 |
Ⅲ. 轉換(Transition)
狀態與狀態之間的箭頭叫轉換(Transition),箭頭上的文字說明發生了什么事情導致狀態發生變化。
轉換一般都應該有文字說明,但有例外情況:
- 不想說明或不好說明轉換的具體原因,只想表達狀態A可以轉換為狀態B,那么可以只畫箭頭,不加說明。
- 達到該狀態后,流程直接進入結束狀態,這時只需要畫箭頭,不用加說明。
二、進階
Ⅰ. 分支結構
監護(Guard)”,[......]
,表示某個條件,符合這個條件時走這個分支,這與活動圖的監護類似。
- 狀態圖表示分支結構的方式就是通過多個轉換來表示的,轉換還可以加上監護,表明執行這個轉換應具備的條件。
- 如果兩個狀態的后續處理方式都是一樣的,我們就不應該拆分為兩個狀態,更多的狀態可能或帶來更多的分支結構,讓流程更加復雜,如無必要,狀態應該盡量少。
示例:請假申請二級審批
少於等於3天表明經理審批,超過3天還需要部門經理審批。
Ⅱ. 常見問題
【問題1】如何克服活動圖的思維習慣?(應用狀態機圖需要記住什么?)
- 流程是圍繞什么事物開展的?
- 這個事物有怎樣的狀態?
- 當一個狀態可以轉換為兩個或以上狀態時,這表示分支結構。
【問題2】活動圖的泳道狀態機圖可以用嗎?
- 活動圖的每一條泳道,表示當中的活動都是有該泳道所代表的角色發動。
- 狀態機圖中的圓角框代表的不是活動,而是某個事物的狀態,這個狀態是屬於該事件的,而不是屬於某個角色的,所以泳道在狀態機圖中不適應。
【問題3】活動圖和狀態機圖只能選中其一嗎?
如果流程是圍繞某一事物的狀態展開的,可首選狀態機圖。但不代表使用了其中一種另外一種就無法不能用。實際上跟建議使用兩種圖來分析
兩種圖分析的好處:
- 你會對兩種圖有更深刻的認識,讓你更加嫻熟地應用這兩種圖。
- 兩種圖是兩種角度,用兩種角度來分析問題,會有相得益彰的效果,讓你分析問題更加全面透徹。
三、復雜的狀態機圖
Ⅰ. 狀態機圖的實踐建議
- 流程圍繞某一事物展開時,可考慮使用狀態機圖來分析。
- 不管用什么圖來分析流程,都必須清楚流程的目的是什么,有什么角色參與,這些角色如何推動流程的發展?
- 針對該流程的目的,列出流程中存在的問題。
- 確定流程圍繞說明事物展開,思考該事物在流程不同階段有說明狀態,狀態為什么會發生變化?
- 嘗試用狀態機圖表達出當前流程的情況。
- 根據流程的目的和當前存在的問題,思考狀態應該如何調整。適當地增加、減少狀態,引入適當的狀態轉換,可能會簡化問題,達到流程的目標。
- 用狀態機圖繪制出優化后的流程。
Ⅱ. 實踐
根據上述描述所創建的缺陷管理狀態機圖
圖中任未解決的問題:
- 項目經理會指派缺陷給某位開發人員修改嗎?
- 對於某些缺陷,測試人員與開發人員意見不一致時,如何處理?
四、練習
Ⅰ. 增加“草稿”狀態,重新繪制請假申請兩級審批狀態機圖。
Ⅱ. 用活動圖表達出缺陷管理流程,並且和狀態機圖做比較,列出你的心得