一、流程图种类
业务流程图是软件开发人员经常制作的。画法有多种,从VISIO的Stencil(模具)中你也可以发现以下3种:
》混合流程图(Flow Chart)
》数据流图(DFD,Data Flow Diagram)
》跨职能流程图
二、如何选择
1、流程描述中有一些共性元素:
》角色(Role)/参与者(Actor),注意,有时需要加上System, Timer 或 DB
》流程/处理(Process)
》流向(Flow)
》数据(Data) / 文档(Document)
2、构成元素的差异
下面先用一张表来比较一下上述3种图构成元素的差异
图类型 | 角色Role | 处理Process | 流向Flow | 数据Data |
FlowChart | Y | Y | ||
DFD | Y | Y | Y | |
跨职能流程图 | Y | Y | Y |
3、比较
流程图(FlowChart)的优点是突出‘Process’及相互间的次序关系;但它的弱点在于:
A)未识别参考者。当参与者较多时,难以区分清楚,导致理解困难。
B)对何对象进行操作,来、去不明。
这2个弱点常常导致业务人员难以理解、开发人员理解偏差。
数据流图(DFD)克服了上述弱点B。从名称上虽然是以‘数据’为核心,事实上是同时展现了数据与处理。通常情况下要比FlowChart清晰。
跨职能流程图则克服了上述弱点A。它有了明确的角色划分(以带状来划定规范)。是不是觉得象泳道(Swimming Lane)?没错,UML中的一个术语。这样,你就很容易明白它将比较容易地转化为时序图了。
有一点需要注意,如果你不能很好地掌握‘自顶向下、逐步细化’的原则,使用后2种方法很容易让你走火入魔。当你将大量内容挤在一页中,排版技巧又不是很高时,看上去会非常混乱。当你大力抨击后2种方法时,想想我刚才的话吧。
三、我的选择与Sample
那么,如果同时补充了‘角色划分’与‘数据对象’,是不是会更好呢?
Yes,我个人比较推崇的正是以‘跨职能流程图’为基础,适当辅助DFD图的技巧。— 或许,这可以称为‘跨职能数据流图’。
PS:这面这个图是个Sample;由于一些现实业务情况的制约,做出来也没什么大价值:(