上篇文章讲到需求分析的论点——用类图去可视化地描述系统有什么,并介绍了画类图的方法。此篇文章为需求分析的最后一篇文章,说明需求分析的“论证”——如何厘清业务流程。
业务流程是什么?
系统的核心价值之一是顺利推进业务,提高效率,尤其对于B端的产品,而业务则是由一个个的业务流程组成。
那什么是业务流程?
业务流程是为达到特定的价值目标而由不同的人分别共同完成的一系列活动。流程是由每个人的活动组成的,每个活动又会有相应的执行步骤。
另外,从不同的角度来看,有不同的流程;流程会有大小之分;流程之中可能会有子流程等,诸如此类。
流程问题可能很复杂,我们需要系统化地分析好这些流程,清晰地描述事情在某段事件内是如何发展的,这些发展最后会达到怎样的效果。
表达完后,视情况对现有流程进行分析,设计出优化的业务流程,提高效率。
描述业务流程大家可能第一时间会想到用流程图,但流程图有许多局限的地方,例如不能表示同时进行的动作,只能有一个结束点等。所以,推荐使用活动图来描述业务流程,一种UML(Unified Modeling Language)模型。
业务流程的层次
在介绍活动图之前,首先需要明白,活动图是在与业务人员沟通需求时得来的,同时借助活动图,来验证业务流程是否正确。所以,需要根据业务人员的类型,画出对应层次的活动图。
业务流程天然可以分成三层:最宏观的是组织级流程,画的是部门、角色间的协作关系,供高层领导阅读;第二层是部门级流程,画的是岗位间协作关系,供中层领导阅读;第三层则是个人流程,画的是一个岗位的工作步骤,应该到业务场景分析时再细化。
活动图的画法
还是以餐厅管理系统为背景,来介绍一下怎么画活动图,如下就是一个基于宏观层面的顾客点外卖的活动图。
活动图的主要元素
1)开始点和结束点
开始点用一个实心圈表示,结束点用一个圆圈内加一个圆圈来表示。活动图只能有一个起点,但可以有多个终点的。
2)活动
当一个流程中有了分工时,必然会将一个业务事件拆成一系列更小的、相对独立的工作人物,这就是“活动”。活动用圆角矩形表示,例如图中的“顾客提交订单”“顾客选择支付方式“就是活动。活动可大可小,具体的粒度视流程图层次。
3)判断
菱形代表分支判断,表示从这里开始将根据条件选择其中一条分支继续下一个活动。
4)汇合与交叉
汇合与分叉必须组合使用,表示并发动作。分叉表示一个活动完成后产生后续的多个并行的活动;汇合表示多个活动全部完成后再进行下一个活动。
此外,你可以发现以上流程存在并行关系,当顾客提交订单后,会生成该订单给商家,同时顾客需要支付,这是一个并行关系。还存在顺序关系、异步关系等多种可能,这就是逻辑关系,在流程图中就是各个活动之间的连线。
如上便是正常的流程,但还需要考虑异常流程,比如顾客取消订单,或者订单超时导致的支付失败,完善一下。如果想让活动图清晰地表示对应的角色所负责的事情,便可以加入泳道,整理得出如下图:
总结一下,画活动图的基本步骤为:
选择合适的层次:根据读者的角色、流程类型选择合适的层次来描述流程分析的结果;
补充异常流程。
画完活动图之后,也可以用文字补充说明一下活动图的细节,输出业务流程描述,如图所示:
小结
活动图说明事情在某段事件内是如何发展的,这些发展最后会达到怎样的效果。
你有没有发现,这与我们在该系列的第一篇文章中的用例场景十分相似。确实,活动图就是来描述用例场景的,也就是通常所说的业务流程。
另外,在分析流程图中,有助于发现关键的类(上述例子中的订单),这又辅助《用议论文三要素搞定需分析(中)》所讲的类图。
所以,活动图这个“论证”,正好起到了证明类图(论据)是否正确支持了用例(论点)的作用。
最后,引用徐锋老师的一句话来做总结:
需求分析的过程就像在为一个大象画写真,如果你把眼睛放在离大象10厘米的地方,那么想要画完整是不可能的。因此,你需要先退到几米甚至是几十米的地方,把整个轮廓画下来;然后走近一点,将不同的组织部分分解开,最后将细节画出来。
如果放到需求中来,就是需要先厘清宏观部分(确认业务目标),再针对每个业务目标进行分解,细化成用例,建立业务模型。然后,描述系统的结构性特征(画类图),结构决定了这个系统能做什么。另一方面,我们需要描述业务流程(制作活动图),这些流程决定了系统怎么做。
经过以上三个步骤,才能把需求分析清楚。
最后的最后,不要忘记需求分析的核心问题以及目的——弄清楚客户到底想要什么的问题,设计解决方案为客户带来价值。
#相关阅读#
用议论文三要素,搞定需求分析(中)
用议论文三要素,搞定需求分析(上)