BPMN (Business Process Model and Notation) 也是一个用来做业务流程图的表示方法,他是一个系列的规范构成的画图模式。
在什麽情况下你可能会需要再深入了解 BPMN 或尝试使用它呢?
恰好 BPMN 这个工具或许可以把很多成山的文件变成流程图,令工程师易懂,也好与交付对象建立更好的沟通传达。
Wiki [1] 记录的 BPMN 的基本要素有:
特别标注泳道,是因为他与上一节介绍的泳道图恰好有关,这两者的差异在於 BPMN 衍生出自己的一套绘制心法、流程。
以下是一个简易的 BPMN 流程图:
对於上图的画法中,可以注意到图特别关注了开始跟结束点,这是源自使用 BPMN 的核心思想: 把每一个业务中将会发生的事情定义成事件,每个事件都有开始跟结束,形成一个周期,像是: 客户下订事件、供应商进货、调货事件、夏季优惠事件、收银台结帐流程、预约课程流程、会员签到入场、维修工单。
现在看起来这张图根本就是基础流程图,所以得继续加一些 BPMN 的元素进去,看起来不那麽像传统的图片。
把上一节的泳道图加进来,就等於有角色 (甚至部门、组织) 的区分了,泳道在哪?
BPMN 图很有趣,泳道图就真的用游泳池水蓝色,而这个图表中,可以看到客户泳道跟 B2C 店商平台的泳道是完全分离的,如果你有去大型游泳池游过,有些大型泳池会提供 5M 浮潜训练用的泳道而且会完全跟旁边的泳道分开,池水甚至不会共用。
每个泳道里面有池水 (Pool),你就知道这个池水等等要放… 流程图了,刚好泳道 (Lane)、池水 (Pool) 都介绍了,这就是 BPMN 的 Swimlanes 这个概念。
现在,试图把泳道跟流程放进来:
在这里的虚线箭头,表示的是 BPMN 的 Message Flow (讯息流),可以想成事讯息告知,事件告知,也可以当作是一种 PubSub 流程; 实线箭头就是熟知的流程走向 (有顺序性)。
客户泳道与 B2C 平台泳道完全切割开来,因为他们在处理事务上并没有我认定的那麽紧密,也许不同的部门,不相关的部门也可以再拆出第三个分隔的泳道出来。
为了善用 BPMN,我在图片中继续增加: 档案、注解、群组三个概念,这就可以让人知道发票要印出纸本,(出货明细/物流单) 要整合放进货品一起寄出,最终客户手上拿到的是纸本的两张纸(发票 + (出货明细/物流单))。
上面图片中,绿色圆角方形就是 Task,Task, Sub-Process 都是属於 Activities, Sub-Process 用途在可以缩减任务项目,整合成一块,然後再告诉读者还有很多 Task 在里面,简单的说,处理购物车根本就是个流程黑洞吧,特意把它使用了 Sub-Process 的图案来标示。
这就是 BPMN,不过还有一些东西没介绍到,像是 Intermediate Events, Choreography Task, Choreography Sub-Process, Call Activity, Sub-Process,所以看看能不能再改一版有用这些额外图形表示工具的流程图,就使用 Sub-Process 这个概念。
上图把处理购物车的任务换成了 Sub-Process,基本上就是把很多的任务压缩在处理购物车这个任务中,购物车的检查流程就直接被包成一块。
最後再统整一下 Wiki 上列的 BPMN 对照解释:
面对复杂的业务流程,划出流程图会是最难想到的起手式,因为他在一开始的绘制时间成本就很高,甚至还要整理很多内容,可是变相的想一想,假设你的文件库快爆炸了,文件上尽是一堆文字,找不到方向及目标,那还不如投资时间在建立那些有共识、结构性的东西上,比方说图片。
本文章绘制的工具是使用 Visual Diagram Online: https://online.visual-paradigm.com/drive/#diagramlist:proj=0&new=BusinessProcessDiagram。
可另外参考一个开源的工具 BPMN.js
注: BPMN 是 Object Management Group 这个组织发表的标准,简称 OMG (喔卖尬)
更多详情可以看看 Wiki - 业务流程模型和标记法 ,最後的 References 也有提供一些材料。
Reference:
[1] 业务流程模型和标记法
[2] 快速指南 BPMN - 2019
[3] 【SOP制作教学】流程图教学、重点范例、BPMN符号介绍!
<<: [Day 1] 全民疯AI系列2.0-机器学习实战手册
影音串流的解决方案有很多,可以自己从 IaaS 架设,像是使用 AWS/GCP/Azure 启动虚拟...
Swift 游戏示意 Swift 游戏纪录 最後一个功能是游戏纪录 修改一下Player.swift...
完赛感言 不知不觉才没有不知不觉,每天都在想着放弃,但最後还是撑到完赛,回想这三十天铁人赛的挣扎旅程...
说到架站,虽然CentOS稳定性和安全性更好,但很多人还是偏向使用Ubuntu Server 依据小...
XSS 全称为 Cross-site scripting 中文为「跨站脚本攻击」。 通常是指利用网页...