本文介绍了用于描述业务流程和系统控制逻辑的图形化建模语言 BPMN,并以示例介绍了如何通过 BPMN 定义业务逻辑,以及BPMN 本身所面临的挑战。原文:A Comprehensive Guide to Business Process Modeling

BPMN 定义

BPMN (Business Process Model and Notation)是一种用于描述业务流程和系统控制逻辑的图形化建模语言,通过直观的符号来弥合业务分析和流程实现之间的差距。

工作流和 BPM 发展历史

  • 19世纪70年代:泰勒引入了标准化工作流程,福特进一步发展为流水线生产。
  • 20世纪70年代:工作流技术在办公自动化研究中兴起,但由于计算机普及率低和网络薄弱而面临挑战。
  • 20世纪90年代:传统流程通过集成 IT 系统实现了自动化,引入了 Sabre、MRP、MIS和CIMS等系统。
  • 21世纪:BPM 将管理与治理相结合,在 BPR/BPI 失败率高的情况下,专注于流程驱动的策略。
  • 2004年: BPMI 发布了 BPMN 1.0,后来被 ISO 标准化,成为 ISO/IEC/EN 14889 的一部分。
  • 2011年:OMG 发布了 BPMN 2.0,引入了语义和可执行的规范。

BPMN 的主要目标是为业务用户提供普遍可理解的符号,促进了分析阶段的流程设计,并支持流程执行和监控。BPMN 还可以生成可执行的 BPEL4WS (Business Process Execution Language for Web Services),将流程建模与技术实现联系起来。

BPMN 基于业务流程图(BPD,一种基于流程图的流程操作表示)实现,包括图形元素(如活动和流控制),以说明流程的顺序和逻辑。

BPMN 主要元素

A) 流对象事件(Flow Objects Events):表示关键时刻(例如,开始、中间、结束)。

  • 启动事件(Start Event):启动进程(例如,由定时器或消息触发)。
  • 中间事件(Intermediate Event):在处理过程中发生,捕获(例如接收消息)或抛出(例如发送信号)事件。
  • 结束事件(End Event):结束过程,有选择的给出特定结果(如错误、取消)。

活动:表示任务或工作步骤。

  • 任务(Task):单个操作(例如“发送电子邮件”)。
  • 子流程(Sub-Process):一组活动的详细信息。
  • 事务(Transaction):确保工作流一致性的子过程。

网关:通过分割或合并路径来控制流程流。

  • 独占网关(Exclusive Gateway):选择一条路径(例如,if-else逻辑)。
  • 并行网关(Parallel Gateway):为同时执行的任务创建并发路径。
  • 基于事件的网关(Event-Based Gateway):根据外部事件选择路径。
  • 兼容性网关(Inclusive Gateway):在条件允许的情况下执行多条路径。
  • 复杂网关(Complex Gateway):处理自定义流逻辑。

B) 连接对象

  • 序列流(Sequence Flow):定义活动顺序的实线。
  • 消息流(Message Flow):虚线显示参与者或系统之间的通信。
  • 关联(Association):将注释或工件链接到元素的虚线,以获得额外上下文。

C) 泳道:代表角色或部门,以明确任务职责。

  • 泳道(Lane):代表某个角色或部门。
  • 泳池(Pool):一组泳道,通常用于跨组织协作。

D) 工件:用额外上下文或数据补充过程。

  • 数据对象(Data Object):表示输入/输出(例如,报告)。
  • 注释(Annotation):解释流程细节。
  • 数据存储(Data Store):长期存储数据(如数据库)。
  • 组(Group):在不影响流程逻辑的情况下,直观的组织元素。

BPMN 特性

A) 直观易懂

  • 标准化的符号(任务、网关、事件)使 BPMN 具有可访问性和视觉上的清晰性。
  • 通过提供图形化流程建模工具,简化了业务分析人员、开发人员和用户之间的沟通。

B) 标准化和一致

  • 由 OMG 维护的 BPMN 2.0 是 ISO 认可的流程建模和执行标准。
  • 支持可执行模型的可移植性和技术兼容性。
  • 确保不同系统的执行结果一致。

C) 表达丰富

  • 对顺序、分支、并行和循环流程进行建模。
  • 支持编排(详细的内部逻辑)、编排(参与者之间的交互)以及适用于真实世界的交互场景。

D) 可执行和自动化

  • 为所有元素定义精确的行为,使模型可以直接执行。
  • 与流程引擎集成以实现自动化和进度跟踪。
  • 允许在设计和运行时修改以优化工作流程。

E) 可灵活定制

  • 支持针对独特业务需求的定制。
  • 适应不同的场景,如目标设定和评估。
  • 通过基础度量和版本管理促进更改。

F) 异步和同步机制

  • 同步机制要求活动在开始之前等待前一个活动的完成和结果。
  • 异步机制允许活动继续进行,而无需等待前一个活动的完成或结果。请求发送后,处理继续进行,结果通过回调或通知进行转发。

BPMN 应用场景

A) 采购流程

采购流程包括需求确认、供应商选择、合同签订、收货等多个步骤。

需求确认

  • 事件:流程从start事件开始。
  • 活动:员工通过任务节点提交采购请求,采购部门对任务节点进行审查,以确认采购请求的有效性。
  • 网关:独占网关根据紧急情况和预算决定下一步。

供应商选择

  • 事件:通过中间事件收到供应商报价。
  • 活动:基于预定义标准(如价格、交货时间和历史表现)通过任务节点评估和选择供应商。
  • 网关:独家网关选择最佳供应商。

合同签署

  • 活动:合同起草,内部审核,并通过任务节点与供应商确认。
  • 网关:并行网关允许多部门合同审查,提高效率。

收货

  • 事件:由中间事件触发。
  • 活动:任务节点文档接收信息和库存操作。
  • 网关:独占网关根据收货结果确定是否存储物品。

数据对象

  • 采购请求:跟踪员工提交的请求,包括描述、数量和预算。
  • 供应商报价:记录供应商提供的报价,如价格、交货时间和付款条件。
  • 合同文件:日志合同内容,包括条款和双方签字。

笔记

  • 请求审查标准:概述审查过程的指导方针,包括紧急定义和预算批准程序。
  • 供应商评价标准:对供应商的评价标准,如价格竞争力、交货可靠性等。

泳道

  • 采购部:处理订单确认、供应商选择、合同签订等事宜。
  • 财务部:负责财务审核及付款处理。
  • 仓库管理部:监督物品的验收和入库。

数据存储

  • 供应商历史表现:保持供应商表现的记录,以备将来评估。
  • 采购记录:跟踪所有采购记录,以便审核和分析。

B) 休假审批流程

休假审批流程包括员工请假申请、直接主管审批和人力资源部审批。

员工请假申请

  • 事件:流程从start事件开始。
  • 活动:员工通过任务节点提交休假请求。

直接主管审批

  • 事件:中间事件通知直接主管审核批准请假。
  • 活动:直接主管通过任务节点审核并批准请求。
  • 网关:独占网关根据休假天数或原因确定是否需要进一步批准。

人力资源部审批

  • 事件:中间事件通知人力资源部提供最终批准。
  • 活动:人力资源部门通过任务节点授予最终批准。
  • 网关:并行网关允许多个部门同时审查请求,提高效率。

结果通知

  • 事件:批准过程以结束事件结束。
  • 消息流:批准结果通过消息流传递给员工。

数据对象

  • 休假申请表:记录员工的休假请求,包括休假类型、天数、原因。
  • 审批记录:在审批过程的每个阶段记录审批结果和意见。

笔记

  • 休假批准标准:提供不同休假类型的批准权限、时间表和要求的详细指南。
  • 审批事项:包括对异常情况的特殊处理和审批结果的文件记录。

泳道

  • 员工:提交休假申请。
  • 直接主管:执行初步批准。
  • 人力资源部:进行最终审批。

数据存储

  • 员工休假历史:保存所有休假历史记录,以便分析和管理。
  • 审批记录:记录所有审批历史,用于审核和分析。

BPMN 实现中的挑战和考虑

BPMN 为业务流程建模提供了一种标准化语言,但在实际应用中也面临着挑战。

A) 技术复杂性 —— BPMN 包括多个图形元素和复杂的流程逻辑,非技术用户可能很难掌握。

解决方案

  • 工具支持:利用图形化 BPMN 建模工具(例如,Camunda Modeler, Activiti Designer)来简化建模过程。

B) 跨部门协作 —— 采购或请假等流程涉及多个部门,使得协作和沟通颇具挑战。

解决方案

  • 明确定义的角色:通过泳道清晰概述每个部门的角色。
  • 形成文件的流程:记录详细的步骤和角色,以确保所有部门都了解流程。

C) 数据管理 —— 过程涉及大量数据输入和输出,使得数据的准确性和一致性难以维护。

解决方案

  • 数据对象:使用数据对象记录和管理流程中的数据。
  • 数据存储:引入数据存储,用于管理长期数据记录。
  • 数据验证:在关键环节纳入验证步骤,以确保数据的准确性。

D) 过程变更管理 —— 业务需求经常变化,需要对过程进行持续调整。频繁的变更可能会导致混乱和错误。

解决方案

  • 版本管理:跟踪和管理进程的不同版本。
  • 变更控制:在上线之前实施严格的批准和测试变更的机制。
  • 持续改进:应用 PDCA 循环定期评估和优化过程。

E) 用户体验 —— 业务用户可能会发现 BPMN 流程图不熟悉,影响用户体验。

解决方案

  • 简化过程:避免图表中过于复杂的图形元素。
  • 用户反馈:根据用户反馈调整图表设计,提高满意度。
  • 用户培训:提供培训以帮助用户阅读和使用 BPMN 图。

你好,我是俞凡,在Motorola做过研发,现在在Mavenir做技术工作,对通信、网络、后端架构、云原生、DevOps、CICD、区块链、AI等技术始终保持着浓厚的兴趣,平时喜欢阅读、思考,相信持续学习、终身成长,欢迎一起交流学习。为了方便大家以后能第一时间看到文章,请朋友们关注公众号"DeepNoMind",并设个星标吧,如果能一键三连(转发、点赞、在看),则能给我带来更多的支持和动力,激励我持续写下去,和大家共同成长进步!

本文由mdnice多平台发布


俞凡
30 声望22 粉丝

你好,我是俞凡,在Motorola做过研发,现在在Mavenir做技术工作,对通信、网络、后端架构、云原生、DevOps、CICD、区块链、AI等技术始终保持着浓厚的兴趣,平时喜欢阅读、思考,相信持续学习、终身成长,欢迎一起...