状态机图
状态机图
一、概念
Ⅰ. 活动图、状态图的区别:
活动图将流程分解为一个一个的活动,通过活动的先后顺序来展示流程
状态机图从某个事物的状态是如果变化的角度来展示流程。
Ⅱ. 活动图、状态机图圆角边框的区别
活动图 | 状态机图 | |
---|---|---|
图例 | ||
文字表达 | 采用主动宾或动宾的表达方式,表示某某做什么事情 | 一般使用形容词或名词,表示某种状态 |
框框的形状 | 左右两边框全部都是弧线 | 只有四个角是弧线 |
Ⅲ. 转换(Transition)
状态与状态之间的箭头叫转换(Transition),箭头上的文字说明发生了什么事情导致状态发生变化。
转换一般都应该有文字说明,但有例外情况:
- 不想说明或不好说明转换的具体原因,只想表达状态A可以转换为状态B,那么可以只画箭头,不加说明。
- 达到该状态后,流程直接进入结束状态,这时只需要画箭头,不用加说明。
二、进阶
Ⅰ. 分支结构
监护(Guard)”,[......]
,表示某个条件,符合这个条件时走这个分支,这与活动图的监护类似。
- 状态图表示分支结构的方式就是通过多个转换来表示的,转换还可以加上监护,表明执行这个转换应具备的条件。
- 如果两个状态的后续处理方式都是一样的,我们就不应该拆分为两个状态,更多的状态可能或带来更多的分支结构,让流程更加复杂,如无必要,状态应该尽量少。
示例:请假申请二级审批
少于等于3天表明经理审批,超过3天还需要部门经理审批。
Ⅱ. 常见问题
【问题1】如何克服活动图的思维习惯?(应用状态机图需要记住什么?)
- 流程是围绕什么事物开展的?
- 这个事物有怎样的状态?
- 当一个状态可以转换为两个或以上状态时,这表示分支结构。
【问题2】活动图的泳道状态机图可以用吗?
- 活动图的每一条泳道,表示当中的活动都是有该泳道所代表的角色发动。
- 状态机图中的圆角框代表的不是活动,而是某个事物的状态,这个状态是属于该事件的,而不是属于某个角色的,所以泳道在状态机图中不适应。
【问题3】活动图和状态机图只能选中其一吗?
如果流程是围绕某一事物的状态展开的,可首选状态机图。但不代表使用了其中一种另外一种就无法不能用。实际上跟建议使用两种图来分析
两种图分析的好处:
- 你会对两种图有更深刻的认识,让你更加娴熟地应用这两种图。
- 两种图是两种角度,用两种角度来分析问题,会有相得益彰的效果,让你分析问题更加全面透彻。
三、复杂的状态机图
Ⅰ. 状态机图的实践建议
- 流程围绕某一事物展开时,可考虑使用状态机图来分析。
- 不管用什么图来分析流程,都必须清楚流程的目的是什么,有什么角色参与,这些角色如何推动流程的发展?
- 针对该流程的目的,列出流程中存在的问题。
- 确定流程围绕说明事物展开,思考该事物在流程不同阶段有说明状态,状态为什么会发生变化?
- 尝试用状态机图表达出当前流程的情况。
- 根据流程的目的和当前存在的问题,思考状态应该如何调整。适当地增加、减少状态,引入适当的状态转换,可能会简化问题,达到流程的目标。
- 用状态机图绘制出优化后的流程。
Ⅱ. 实践
根据上述描述所创建的缺陷管理状态机图
图中任未解决的问题:
- 项目经理会指派缺陷给某位开发人员修改吗?
- 对于某些缺陷,测试人员与开发人员意见不一致时,如何处理?
四、练习
Ⅰ. 增加“草稿”状态,重新绘制请假申请两级审批状态机图。
Ⅱ. 用活动图表达出缺陷管理流程,并且和状态机图做比较,列出你的心得