手把手教你画活动图,再无难搞的流程分析
编辑导语:在工作中,每当遇到复杂多变的业务,流程冗长时,可以借助活动图来分解流程。作者从四个方面分析如何画活动图,搞定流程分析。
上次介绍了《 用例图这样画,3步让你做需求分析有理有据》,这次聊聊活动图。
也许你对活动图并不了解,不过,说起流程图,想必你不会陌生。你可以暂且把活动图,看成 UML 中的流程图。
都知道,做产品要分析流程,可怎么把流程理清楚呢?当然不能凭空想象,而应该借助分析工具。
每当遇到复杂多变的业务,面对冗长的流程,我总会拿出需求分析工具箱,从中挑选合适的工具。用得最多的,非活动图莫属。
一、认识活动图
之前在《 做产品为什么要画这些图?》谈到, UML 将视图分为静态视图和动态视图。
静态视图,描述产品的结构特征,即产品由什么组成的、能做什么、长什么样。例如,手机由屏幕、外壳、摄像头、电池、芯片等组成,能用来打电话、上网。
动态视图,描述产品的行为特征,即产品是怎样运行,或如何使用。例如,我们要解锁打开手机,得做输入密码,或识别指纹、人脸等操作。
活动图,是常用的动态视图之一,用来描述产品中具体对象,在具体场景下,如何使用产品,或参与实现目标的过程。
所谓对象,是指与产品相关的人或事物,如用户、运营人员、APP、后台系统等。
换句话说,活动图描述的是,谁在什么情况下,如何做特定的事情。
画活动图是为了分析流程,借助可视化的工具,描绘现实世界中具体事情的运转过程(常说的业务分析),输出既方便人们理解,又便于计算机开发实现的内容。
同样用于流程分析,流程图与活动图有啥区别呢?
流程图历史更悠久,使用范围更广,业务人员容易理解。
不过,或许是年代久远,而且画图元素较多,它的画图规范,要么被忽视,要么说法不一,想画出一个标准的流程图,也不容易。
在工作中,经常发现有人画流程图,容易出现把状态当成动作、操作对象不明确等问题。
以请假审批流程为例,看看这两种情况,你是否见过。
△ 请假审批流程图的常见问题
活动图的元素不多、规范明确,在 UML 的官方文档中有清晰的定义,方便学习。
比方说,它贴心规定活动名需用动宾短语,避免了上述流程图的常见问题。同时,活动图有同步的画法,能很好地体现并行流程。
因此,我最常用活动图来描述流程,一起看看它的用法吧。
二、活动图的构成
活动图由起始点、活动、判断、泳道、执行顺序、同步、结束点构成。
△ 活动图常用元素
1. 起始与结束,有头有尾才完整
一个活动图开始,会先画一个起始点,用实心圆表示。流程结束处,再画上结束点,用同心圆表示。
这样的活动图更为完整,有头有尾,阅读者一看便知从哪开始,在哪结束。
需注意的是,起始点只有一个,结束点可能有多个。
如有多个结束点,我习惯尽量把线连接到同一个结束点,让整个过程看起来像一个闭环,简洁一些。
2. 活动,用圆角矩形表示
每个活动,即具体对象做的操作,用圆角矩形表示,里面写上活动名称,活动名用动宾短语描述。
如输入手机号码、点击支付按钮等,为 动词+名词 的动宾组合。
假如一个活动图中有多个执行对象,又没用泳道区分,则需要写清楚是哪个对象做了什么动作,以便阅读理解。
如用户输入手机号码、运营人员点击退款等,为 主语+动词+名词 的主谓宾组合。
还有个细节常被忽视,即圆角矩形的两边是半圆,与流程图、状态图的画法不同。
△ 活动图与流程图、状态图的区别
3. 判断,用菱形表示
活动的执行过程中,遇到需要判断的地方,则用菱形来表示,这也是流程产生分支的地方。
关于判断的内容(如审批是否通过、支付是否成功等),有的写在菱形内,有的写在菱形外,有的干脆没写。
个人觉得不必拘泥于形式,有写判断内容,会更清楚;如字数少,菱形内能写,会更简洁;如写不下,则写在菱形外。
总之,做到统一即可。如一处写在菱形外,则全部写在外面;别有的写在里面,有的写在外面。
4. 泳道,用矩形划分区域
活动图中如有多个不同对象执行的动作,一般会增加泳道来描述各个对象的执行过程。
泳道用矩形来划分区域,矩形上方写明对象名称。
泳道,顾名思义,跟游泳比赛的运动员只能在其泳道中游泳一样,规定每个对象的动作只能画在其对应区域。
泳道活动图,即增加了泳道的活动图,用来梳理、描述有多个对象参与的流程,对象可以是人或部门,也可以是系统。
它可以很好地体现流程中不同参与对象所做的动作和顺序。
5. 执行顺序,带箭头连线
执行顺序,与流程图一样,用带箭头的连线,将不同活动按顺序连接起来。
6. 同步,用小黑棒表示
同步,用一条小黑棒来表示,可以摆竖,也可以摆横。这是活动图的特色,使之能描述并行流程。
不管业务流程,还是系统流程,偶尔会碰到同时触发动作,或要等全部执行完才开始下一步的情况,同步这一方法,能很好地描述这些流程。
三、活动图怎么画
如果你画过流程图,画活动图很容易上手。
下面以之前的手机话费充值 APP 为例(此案例详见《 用例图这样画,3步让你做需求分析有理有据》),来介绍我总结的方法。
1. 明确目标,找对象,识操作
之前谈到,用例图是参与者为完成特定目标的一系列活动或功能集合。说白了是,什么人做什么事。
活动图,正是描述用例实现过程的这些活动,即什么人如何完成这些事。
因此,画活动图,得从用例图开始,根据每一个用例来展开。
如果你没有画用例图,也没关系,但要围绕特定目标来展开,也就是分析的流程,是谁为了完成什么目标。
如果可以,最好拉上与分析主题相关的人,边确认边梳理;如若不能,可先找他们调研,再绘制。
你可以找一块白板,或一张白纸,或打开画图软件(如 Visio ),把参与流程的人或系统写出来。
在脑海里,一步步推演,把他们每一步操作记下来,每一步就是一个活动,活动名是动宾短语。
首先,找出提出服务请求的活动,即活动图的起点。接着,再找出服务被满足、目标被完成时的活动,即结束动作。然后,逐步完善中间的活动。
以案例中的微信手机充值业务为例,我是从用户的视角,围绕用户实现话费充值的目标来展开,记下用户所执行的操作。
△ 用户视角下的微信手机充值活动图
以充值 APP 为例,之前分析得出,充值得有运营商支持,支付对接微信支付、支付宝,协助用户处理未到账,还需有运营人员介入;整个充值 APP ,还应包括后台管理系统。
以“充值话费”用例,就有用户、充值 APP 、管理后台、手机运营商这几个对象参与了实现充值的过程。
找到参与对象后,就能把这些对象执行的操作列出来。
△ 充值 APP 系统用例图
2. 勾勒脉络,先主干,后分支
相信不少人画流程,都遇过越画越乱、分支越多的情况,这是没按上述所说,围绕用例或为特定目标来展开。
一个活动图,建议只有一个目标,如果有多个目标,建议拆分成多个图,这样每个图才不至于太复杂,自己不会画晕,别人不会看懵。
此外,重点还要,先勾勒出主脉络,先把主干流程理出来,再逐步完善分支流程。
梳理主干时,要避免陷入细节,等把核心操作找出来,再补充相关细节。
如有的分支比较复杂,或相对独立,可再拆分成子流程单独画,而在主流程中,只写进入某某流程即可。
常见的分支,一般有审核、异常情况,多是遇到需要判断之后产生的。
画图时,一般遵循从上往下、从左往右的顺序。
△ 充值 APP “充值话费”用例活动图主干
3. 调整布局,边推演,边检查
主干分支都完成了,还得根据版面,调整优化活动或泳道的摆放位置,让图更容易阅读。
请注意,尽量确保连线不要交叉。
连线一旦交叉,整个图会变复杂,执行顺序容易看错,阅读体验很不好。
我一般习惯每个活动占用一行,效果简洁一些。如果活动较多、版面有限,可以适当调整。
但尽量保持从上往下、从左往右的顺序,活动之间居中或水平对齐,连线不要交叉。
△ 充值 APP “充值话费”用例泳道活动图
绘图的过程,要在自己脑海里边画图、边推演,相当于把流程操作过一遍。
之后,再换换视角,退后几步,放大视野,全局去检查整个流程。
这有点像写文章,写完要自己通读几遍。
推演和全局检查,往往能帮我们发现流程是否合理、是否顺畅、是否有遗漏等问题。
最后,还要把画完的活动图,拿去找相关人员(如业务、运营、销售、开发等)沟通,确认流程表达无误、双方理解一致。
四、划划重点
活动图的画法,相对简单,很多人画过流程图,用起来并不难。
啰嗦这么多,是想让你知道其常用元素的意思,掌握画图的思路,明白画图的本质。
我们通过一个个活动,把流程梳理并描述出来的过程。
实际上,是在将脑海里原本模糊、杂乱在的思路理清,使之变得更加清晰、有序。
同时,我们把各自对流程的理解,落实到纸上、屏幕上。
相当于把脑中的想法,变成实实在在的图片,这才有了沟通、讨论的内容基础,更容易达成共识,甚至发现问题、优化流程。
最后,我再给你划划重点:
1. 画活动图的方法
- 明确目标,找对象,识操作
- 勾勒脉络,先主干,后分支
- 调整布局,边推演,边检查
2. 画活动图请遵循
- 从上往下、从左往右的顺序
- 活动之间尽量对齐
- 活动连线不要交叉
总而言之,我们用活动图,是为了帮助我们分析好流程。请灵活使用工具,别被工具使用。
作者:四月;公众号:四月喃哗
本文由 @四月 原创发布于人人都是产品经理。未经许可,禁止转载。
题图来自Unsplash,基于CC0协议。
![种草不回流,电商部和市场部battle怎么办?](https://image.woshipm.com/2023/04/14/025aab2c-da8e-11ed-aeb8-00163e0b5ff3.jpg!/both/120x80)
![构建与优化KPIs的全景指南](https://image.woshipm.com/2023/04/13/1ff282f2-d9eb-11ed-bd74-00163e0b5ff3.jpg!/both/120x80)
![如何调研一个行业在小红书运营现状?](https://image.woshipm.com/2023/04/14/71970436-da8e-11ed-b69c-00163e0b5ff3.png!/both/120x80)
![FeverBee共创感方法04 | 如何以数据驱动改进「超级用户计划」?](https://image.yunyingpai.com/wp/2023/12/oOfrKHDb8zkvs4c7oi7i.png!/both/120x80)
![一篇文章赚800+,做好自媒体竟然这么赚钱!](https://image.woshipm.com/2023/04/14/d9d4d9ec-da8e-11ed-a86f-00163e0b5ff3.jpg!/both/120x80)
写的很详细学到了很多,请教一下,如果有多个起点一个终点只能分开画吗,比如可以通过列表选择人员后修改人员状态,也可以通过搜索后选择人员修改人员状态
一个明确的目标,服务请求只有一个,所以起点只有一个。你举的例子,都是选择人员修改状态,用什么方式选择,只是两个实现方式而已,从更大的粒度来说,都叫选择人员,实现方式可以在单独补充说明,不然图会太细。另外,不可能一上来就直接可以选择人员,也就说要做这个动作之前,应该还有真正的服务请求动作。