业务建模之描编划3步得到流程模型

  本文目标:业务分析师,在了解业务建模流程模型制作方法的条件下,进行流程模型制作,达到结构化、标准化描述业务操作过程的程度。

1 场景

  业务建模,使用数据模型、流程模型、产品模型,3个维度展示业务系统的全貌。

  流程模型是核心,能够结构化、标准化描述业务操作过程,依赖数据模型输入的数据标准设计(包含实体、属性、属性域、代码值),以及产品模型输入的产品条件(产品工厂相关)。

  一般的,业务种类繁多,才会涉及抽象出产品模型,大部分只涉及流程模型、数据模型。

基础概念
  首先列举流程模型相关的概念,便于后文理解。

  (1)活动:由内部事件或外部事件触发,为满足特定业务目的,与干系人之间的交互过程;

  (2)交易:活动中,与干系人之间的1次交互;

  (3)任务:交易中,单一角色执行,具备明确业务目的的工作事项集合;

  (4)步骤:任务中,单个工作事项;

  (5)业务规则:步骤中,最细粒度的,具体数据项的加工逻辑;

  流程模型的建设过程为,以数据模型为输入,按顺序进行描述业务规则、编排步骤、划分任务3步,得到“业务规则”、“步骤任务清单”、“输入输出参数”。

  本文以微信公众号实现吉他调音功能,介绍流程模型的建设过程。

  先看一下流程模型建设结果:

  (1)业务规则

业务规则
  按照ICPro顺序(input输入、check检查、process处理、register登记、output输出),以及标准话术模版进行编写。

  业务规则精确到伪代码级别,可以清晰的描述业务过程。

  (2)步骤任务清单

步骤任务
  业务规则按照单个工作事项合并成若干步骤,步骤按照明确业务目的的工作事项集合合并成若干任务。

  交易对应微服务Controller层,任务对应微服务中Service层中的方法,步骤是更下一级的封装,该清单可以直接用于详细设计阶段,设计多少服务、以及服务内的方法。

  (3)参数梳理

参数梳理
  梳理得到的步骤级、任务级、交易级输入/输出参数,可以直接用于接口设计。

  一般的,传达信息时“字不如图、图不如表”,业务建模得到流程模型后,能直观的看到伪代码级的流程描述,以及对应微服务模块的任务步骤划分,为后续详细设计打好了基础。

  下面来看如果得到流程模型。

2 步骤

2.1 熟悉前置工作的输入

  进行流程模型分析前,整体业务流程粗粒度分析已完成,数据模型初步建设也已完成。

  微信公众号实现吉他调音功能,整体业务流程为:

吉他调音泳道图
  可以看到,处理吉他调音活动中,分为2支交易,微信用户首先发送一次请求给微信公众号后台,配置“音调”、“弦号”,再发送语音进行频率计算。

  1个流程模型Excel,只包含1支交易,本次以流程较复杂的计算音频频率交易为例。

  四色分析法,初步梳理过相关实体(绿色表示实体、蓝色表示实体属性):

实体
  进一步完善的数据模型为:

数据模型
  熟悉了前面同事的工作结果后,可以正式开始进行流程模型分析。

2.2 描述业务规则

  按照ICPro顺序(input输入、check检查、process处理、register登记、output输出),以及标准话术模版进行编写。

  模版内容见“3 要点”章节。

  根据模板,得到“计算音频频率”交易的业务规则如下:

业务规则1、接收输入入参
1、接收微信后台转发的用户请求,输入参数包含【微信用户ID】、【音频文件号】;

业务规则2、检查输入参数
1、若输入的【微信用户ID】为空,则报错“【微信用户ID】不可为空!”;
2、若输入的【音频文件号】为空,则报错“【音频文件号】不可为空!”;

业务规则3、下载音频文件
1、根据输入的【音频文件号】,调用<微信平台>《下载音频文件》方法,获取临时音频文件数据;
  (1)若临时音频文件数据下载失败,则报错“音频文件下载失败!”;
2、根据临时音频文件数据,写入文件,生成amr音频文件;

业务规则4、处理音频文件格式转换
1、根据amr音频文件,调用<ffmpeg>《处理文件转换》方法,生成pcm音频文件;
  (1)若pcm音频文件生成失败,则报错“pcm文件生成失败!”;
2、读取pcm音频文件,得到临时pcm音频文件数据;

业务规则5、计算频率
1、根据临时pcm音频文件数据,调用《fft傅里叶变换计算频率》方法,获取临时音频频率;
  (1)若临时音频频率计算失败,则报错“音频频率计算失败!”
2、通过输入的【微信用户ID】,获取{调音参数表}记录;
3、通过{调音参数表}【音调】、{调音参数表}【弦号】,获取{频率标准对照表}记录;
4、计算临时偏差值,临时偏差值=临时音频频率-{频率标准对照表}【频率】;
  (1)若临时偏差值大于0,则设置临时偏差方向为“1-偏高”,设置临时偏差绝对值为临时偏差值;
  (2)若临时偏差值小于0,则设置临时偏差方向为“2-偏低”,设置临时偏差绝对值为临时偏差值的绝对值;
  (3)临时偏差值等于0,则设置临时偏差方向为“0-无偏差”,设置临时偏差绝对值为05、设置【调音结果描述】为“音频为”拼接临时音频频率,拼接“,偏差方向为:”,拼接临时偏差方向,拼接“,偏差值为:”,拼接临时偏差绝对值;

业务规则6、登记音频下载信息
1、登记{音频下载记录表}记录:
  【音频文件号】赋值为输入的【音频文件号】;
  【微信用户ID】赋值为输入的【微信用户ID】;
  【交易日期】赋值为当前【交易日期】;
  【交易时间】赋值为当前【交易时间】;
  【文件下载状态】赋值为“1-成功”;

业务规则7、登记音频文件转换信息
1、登记{音频文件转换记录表}记录;
  【音频文件号】赋值为输入的【音频文件号】;
  【微信用户ID】赋值为输入的【微信用户ID】;
  【交易日期】赋值为当前【交易日期】;
  【交易时间】赋值为当前【交易时间】;
  【文件转换状态】赋值为“1-成功”;

业务规则8、登记音频计算结果信息
1、登记{音频计算结果记录表}记录
  【音频文件号】赋值为输入的【音频文件号】;
  【微信用户ID】赋值为输入的【微信用户ID】;
  【音调】赋值为{调音参数表}【音调】;
  【弦号】赋值为{调音参数表}【弦号】;
  【频率】赋值为临时音频频率;
  【偏差方向】赋值为临时偏差方向;
  【偏差值】赋值为临时偏差绝对值;
  【交易日期】赋值为当前【交易日期】;
  【交易时间】赋值为当前【交易时间】;

  如果是面向过程的开发模式,其实可以直接拿业务规则描述结果进行业务代码开发了,按顺序实现所有过程即可。

  面向对象设计,需要增加代码复用,所以需要进一步识别步骤、任务,封装到更高级别的模块里,碰到可能通用的,就独立开发给各个交易复用。

2.3 编排步骤

  业务规则按照单个工作事项合并成若干步骤。

  (1)下载音频文件步骤:包含业务规则3;

  (2)处理音频文件格式转换步骤:包含业务规则4;

  (3)计算频率步骤:包含业务规则5;

  (4)登记吉他调音信息步骤:包含业务规则6、7、8;

  可以看出,下载音频文件步骤是通用的,其他和音频有关的交易,可以服用该功能,不需要重复开发。

2.4 划分任务

  步骤按照明确业务目的的工作事项集合合并成若干任务。

  (1)处理音频文件下载任务:包含下载音频文件步骤;

  (2)处理音频频率计算:包含处理音频文件格式转换步骤、计算频率步骤、登记吉他调音信息步骤;

  可以看出,处理音频文件下载任务是通用的,其他和音频有关的交易,可以服用该功能,不需要重复开发。

2.5 梳理输入输出参数

  如果想要为后续的接口设计提供更好的输入材料,可以额外梳理出步骤、任务、交易的输入输出参数。

参数梳理

3 要点

3.1 标准话术模版

  标准话术模板很重要,决定业务规则是否能标准化描述整个交易的处理流程。

建模话术统一模板
1.括号使用规则:表名为{},字段名为【】,系统名为<>,交易名称和服务名称为《》,字段值和码值为“”
2.序号层次使用规则:第一层阿拉伯数字(比如1);第二层中文小括号阿拉伯数字(比如(1));第三层阿拉伯数字后面加中文反小括号(比如1));第四层小括号大写字母(比如(A));第五层小括号小写字母(比如(a));
  1、
    (11)
         (A)
           (a)
3.补充信息描述:用括号包裹,比如(xxx);
4.表操作话术:
(1)查询:通过【xx1】、【xx2】、【xx3】,获取{table}【xxx】/获取{table}记录
	(2)更新:更新{table}的【xx1】为“0001-基本户”
	(3)登记:登记{table}(竖向排列)
5.判断条件话术:描述清晰规则的执行前提条件
	(1)简单分支条件:
		①单个条件逻辑:“若……,则……,否则……”
		②多个条件逻辑:“若……,且……,且……,则……,否则……”
	(2)复杂分支条件:
		①当……时,……(描述接下来要处理的内容)
			A. 若……,则……
			B. 若……,则……
			C. 若……,则……
		②当……时,……(描述接下来要处理的内容)
			A.处理功能1
			B.处理功能2
			C.处理功能3
6.报错话术(要求必须定错误码):
	(1)若……,则报错“...[value]……”([value]表示存在变量值)
	(2)若……,则报错“……”
7.金额计算话术:
	(1)完整描述计算公式,可以采用“……=……加上/减去/乘以/除以……”的表达式,例如:
	【xxx金额】=【xxx金额1+【xxx金额2+……
8.调用基础方法话术:
	(1)内部调用逻辑:
		①根据【xxx】、【yyy】、【zzz】,调用《xxx》方法,获取【xxx】/处理…
	(2)外调逻辑(微服务名称要统一)
		①根据【xxx】、【yyy】、【zzz】,外调<公共服务>《xxx》方法,获取【xxx】/处理…
9.循环类话术:
	获取【XXX list】
	开始循环
		执行操作
	结束循环
10.返回话术:
	(1)输出响应信息:【xx1】、【xx2】、【xx3】、【xx4】、【xx5】、【xx6】
11.引用字段描述来源:
	(1)输入的【客户账号】
	(2{table}【启用标志】
	(3)xxx步骤计算得出的【余额】
	(4)当前【发起渠道】

3.2 命名规范

  (1)活动名、交易名、任务名、步骤名、业务规则名,大原则按照“动词+名词”描述,能一眼看出描述的内容是什么。

  (2)任务名,特殊按照“实体操作类型+实体”描述,能更精确,因为封装到任务级,一般要求至少对1个实体进行了创建、更新操作。

3.3 任务划分依据

  (1)划分原则

    1)对实体有信息创建、更新操作;

    2)一个任务只能归属于1个领域,不同微服务领域不同;

    3)外调的任务,要单独拆分出来,调用其他微服务的方法需要在Service级操作;

    4)通用任务,要单独拆分出来,封装给其他人使用;

    5)可按照不同操作功能进行任务拆分,比如“新增”、“修改”、“删除”不同的操作类型;

  (2)非强制性原则:

    1)对业务实体的检查步骤一般放在实体操作任务里;

    2)角色不同的,拆分成不同任务;同一角色连续做的事情宜合并成一个任务;

4 总结/练习

  本文介绍了业务建模中流程模型的分析过程,分析结果Excel截图可在“1 场景”章节查看。

  流程模型包含了数据模型的结果,按标准话术描述了业务规则,并编写出步骤,划分了任务,更好的与微服务不同层级进行对应,有利于详细设计阶段的分析。

  可以参照前“1 场景”、“2 步骤”、“3 要点”内容,尝试在自己的项目中,进行业务建模的流程模型分析,结构化、标准化描述业务操作过程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值