BPMN建模示例

news2024/10/6 9:24:59

背景

对BPMN已经有了初步的了解,并且已经理解了BPMNJS这种流程引擎的工具,那么接下来我们已具体的案例来感性认知BPMN的能力,为接下来BPMN的学习做个铺垫。

是的,我们需要一个通俗易懂的例子,于是乎,我在网上找了一个,一个工单,物业维修流程的例子。

业务场景

这是一个典型的物业维修流程。我们需要先建立一个战略层面上的流程,为什么需要比较高层(High-level)的流程呢?

业务还原

上面的例子,当我们使用业务分析的方法,去还原业务时,我们会发现现实是这样的:

客户参会人员:

  1. 我们的维修流程并不总是这样从业主填写维修单开始的,业主也可能是电话报修;
  2. 如果维修的工程量比较大的话,我们还得先提出方案,然后交给公司领导审批;
  3. 如果过了保修期的话,那我们还要收钱的;
  4. 业主如果是预约的话,我们还得根据他预约时间安排工作;
  5. 并不一定是业主报修,也可能是在物业巡检的时候发现问题,由巡检员报修。
  6. ……….

我们的BA,产品经理,或者项目经理估计很快就会崩溃,这也是我们常见的为何工作中能画出极其复杂的流程的原因。

这是画high-level流程的基本原因,从宏观看,方式迷失在细节,引入使用一些概念

  • 泳池 泳道
  • 任务 子流程
  • 网关
  • 事件

这些概念,需要分别一一的进行详细的拆解和学习

具体建模

和业务人员一起,把所有业务场景进行分解,然后使用BPMN建模如下:

各个泳道,看不清,是的,我也没有看清的版本,也没有表要看清,看清了你可能很多地方也理解不了,就是根据业务规则的细化分解,到了具体的操作流程,不同的条件下,网关的路由(这个时候可能你对网关也是比较晕的概念),就是这样一张图,如果交给实施,开发,另外如果还出现新的业务变更,加上统计分析,是不是各种崩溃。

大问题

上面的业务场景,随着业务的梳理,面临着比较大的问题,就是一个大流程,还是分解为多个小流程,现实生活中由于受到技术和能力的限制,经常会碰到这样的问题,高耦合还是低耦合,类似于微服务带来的好处同时,坏处也是大大的,利弊如下:

分解流程的优点:

  1. 一个庞大的模型,它的版本迁移过程往往非常复杂,如果将它进行恰当的分解,那么我们只需要对发生了变动的部分进行迁移即可,可以有效的降低迁移成本。
  2. 对于开发者来说,庞大的或者过于复杂的模型会导致理解和开发成本迅速上升,而且一个单体模型,几乎只能由一个开发者来负责,不适合多人协作;而分解的手段可以将一个单体复杂模型分解成多个简单、可独立开发的流程模型,可以提升开发效率和降低理解难度。
  3. 对于企业工作流来说,多个工作流之间经常会存在共通的部分,就像这里的物业服务的回访流程,将这些公共部分剥离出来;长远来看,可以提升模型的复用率,从而提升开发效率。

缺点:

  1. 分解到什么程度并不那么容易把握,虽然按照经验来说往往是分解到每一个流程参与者,但在有些时候也可以将一些任务比较简单的参与者流程进行合并。
  2. 为了实现流程实例之间的通信,往往会存在较多的消息/信号事件或者调用活动,要求开发者对BPMN中的事件有足够的了解。
  3. 流程走向的观测可能会比较繁琐,因为需要在多个流程实例之间来回切换观察。

总结

由于是一篇感性认知篇,以上的业务场景由于并没有很深入业务细节、表单部分、还有统计等等,一个业务线可以拆解为几十个业务线,所以BPMN为何搞得那么繁琐,几百页的规范是有原因的,毕竟是为了从底层落地用的,当然,如何用最少的元素再抽象再去平衡,是非常考验产品经理和技术经理能力的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1575215.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

阿里云服务器的主要用途是什么?

阿里云服务器可以干嘛?能干啥你还不知道么!简单来讲可用来搭建网站、个人博客、企业官网、论坛、电子商务、AI、LLM大语言模型、测试环境等,阿里云百科aliyunbaike.com整理阿里云服务器的用途: 阿里云服务器活动 aliyunbaike.com…

文心一言指令词宝典之咨询分析篇

作者:哈哥撩编程(视频号、抖音、公众号同名) 新星计划全栈领域优秀创作者博客专家全国博客之星第四名超级个体COC上海社区主理人特约讲师谷歌亚马逊演讲嘉宾科技博主极星会首批签约作者 🏆 推荐专栏: 🏅…

PDPS教程:镜像对象功能介绍与使用方法

目录 概述 命令说明 创建目标资源 镜像对象操作 模型保存 概述 PDPS中也有与机械设计软件相类似的模型镜像功能,在Process Simulate中这个功能叫做“镜像对象”,使用镜像对象命令可以创建与已有模型关于指定平面镜像对称的复制体(模型实…

Day16_IDEAJavaWeb项目下在WEB-INF添加jar包导致Tomcat无法启动的问题解决记录

0 起因 自己用的是Tomcat 9.0.69,老师用的是Tomcat 9.0.87。本以为都是9.0.x,差别不会很大,但是老师演示的时候他没导入mysql包查询数据库的servlet就不能运行,而我的却可以,于是问了GPT,得到以下答复。 …

docker部署小霸王游戏

下载镜像 docker pull registry.cn-beijing.aliyuncs.com/wuxingge123/jsnes:1.0.0docker-compose部署 vim docker-compose.yml version: 3 services:jsnes:container_name: jsnesimage: registry.cn-beijing.aliyuncs.com/wuxingge123/jsnes:1.0.0ports:- 8082:80restart: …

ssm026校园美食交流系统+vue

校园美食交流系统 摘 要 1 前 言 3 第1章 概述 4 1.1 研究背景 4 1.2 研究目的 4 1.3 研究内容 4 第二章 开发技术介绍 5 2.1Java技术 6 2.2 Mysql数据库 6 2.3 B/S结构 7 2.4 SSM框架 8 第三章 系统分析 9 3.1 可行性分析 9 3.1.1 技术可行性 9 3.1.2 经济可行…

用Python做一个4399游戏脚本原来这么简单 !(内含完整思路)

说明 简述:本文将以4399小游戏《宠物连连看经典版2》作为测试案例,通过识别小图标,模拟鼠标点击,快速完成配对。对于有兴趣学习游戏脚本的同学有一定的帮助。 运行环境:Win10/Python3.5。 主要模块:win3…

【亲测有效】微信公众号设置菜单栏显示,未开启自定义菜单,微信公众平台自定义菜单接口开发

微信公众平台自定义菜单接口开发 问题:运营人员在设置微信公众号设置菜单栏显示,未开启自定义菜单解决方案(微信公众平台自定义菜单接口开发):自定义菜单-创建接口请求链接完整代码第一步:在WeChat类里添加代码情况一:没有WeChat类情况,如果已有请看情况二情况二:已有…

(2024,CLIP 文本嵌入,属性解耦与控制,编辑迁移,SDXL)通过识别语义方向在 T2I 模型中进连续目标特定的属性控制

Continuous, Subject-Specific Attribute Control in T2I Models by Identifying Semantic Directions 公和众和号:EDPJ(进 Q 交流群:922230617 或加 VX:CV_EDPJ 进 V 交流群) 目录 0. 摘要 2. 相关工作 3. 方法 …

LLM-base版本和chat版本的比较

突然想到了这个问题,网上搜集了一些资料,自己也总结一下 首先放一张llama2论文当中的图,可以很直观的看到区别 面试回答版 问题: 大语言模型base版和chat版的区别是什么? 回答: base版本更适合文本补全…

【Python】文件操作和异常

Python基础 读文件操作写文件操作异常异常处理else 和 finally 模块安装第三方包 使用 open() 方法打开一个文件,返回一个文件对象。对应 close() 就是文件关闭。 完整格式:open(file, mode‘r’, buffering-1, encodingNone, errorsNone, newlineNone, …

Android Studio学习16——Activity跳转时的参数传递

传递数据——example 传递对象类型的数据——example 传递 接收 回传数据——example

Numpy数组转换为csv文件

参考:Converting Numpy Array to CSV 在数据分析和处理中,经常会涉及到将数据从一个形式转换为另一个形式的操作。 其中,将Numpy数组转换为csv文件是一种常见的操作,因为csv文件是一种通用的数据存储格式,方便与其他软…

图数据库技术:知识图谱的存储与查询

图数据库技术:知识图谱的存储与查询 一、引言 在探索知识的宇宙中,知识图谱是组织和理解海量信息的星系图。在这张图中,每一个概念、实体与事物不再是孤立的点,而是通过关系与边相互连接,形成一个复杂而有机的网络。图…

Python景区票务人脸识别系统(V2.0),附源码

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…

链表实验.

#include<stdio.h> #include<stdlib.h>// 定义单链表节点结构体 struct Node {int data;struct Node* next; };struct Node* initList() {struct Node* list (struct Node*)malloc(sizeof(struct Node));list->data 0;list->next NULL;return list; }void…

CLIP模型 图片问答

先简短介绍一下CLIP模型&#xff1a; CLIP (Contrastive Language–Image Pretraining) 是由 OpenAI 开发的先进的多模态视觉模型&#xff0c;结合了图像和文本处理能力。 CLIP 模型的主要特色在于它不仅可以理解图像&#xff0c;同时也能理解描述这些图像的文本。通过这样的方…

uniapp:聊天消息列表(好友列表+私人单聊)支持App、H5、小程序

&#x1f3ac; 江城开朗的豌豆&#xff1a;个人主页 &#x1f525; 个人专栏 :《 VUE 》 《 javaScript 》 &#x1f4dd; 个人网站 :《 江城开朗的豌豆&#x1fadb; 》 ⛺️ 生活的理想&#xff0c;就是为了理想的生活 ! 目录 ⭐ 文章简介&#xff08;效果图展示&#xff…

Python小白入门教程:手把手教你安装最新版本Anaconda及运行第一个程序

1、Anaconda是什么&#xff1f; 其实通过百度搜索就能了解到&#xff0c;再次可以看下它自己官网的介绍&#xff1a;如下 简单的说&#xff0c;它就是一个集成的管理软件&#xff0c;管理很多工具包 2、为什么安装Anaconda&#xff1f; 简单的说&#xff0c;就是为了方便&am…

QMC5883芯片I2C驱动开发指南

这个芯片纯国产挺好用的&#xff0c;电路很好设计&#xff0c;我这垃圾焊功&#xff0c;纯手焊&#xff0c;&#xff0c;居然能用。 第一部分 硬件连接 画的很简陋&#xff0c;看看就可以了。 第二部分 软件驱动 I2C的具体时序实现需要自己搞定&#xff01;&#xff01; 2…