Jacky Wu bio photo

Jacky Wu

Software Architect in China

Email Twitter Facebook LinkedIn Github Weibo

% 工作流建模设计方法
% jacky wu
% 2014-12-30

工作流建模设计方法

  • 基于状态机的工作流建模方法
  • 基于顺序工作流的建模方法

基于状态机的工作流建模方法

状态机

  • 状态机是一个有向图, 由一系列状态节点和状态节点间的转移函数构成.
  • 状态机通过响应一些列的事件来实现各状态间的流转.
  • 必须要有一个终态, 状态机在此状态停止.

建模方法

  1. 抽象业务流程, 划分步骤, 给每个步骤确定状态机的状态.
  2. 确定每个状态之间转移的触发事件.
  3. 确定产生每个触发事件的动作.

适用场景

状态机是为事件驱动的工作场景设计的. 如果某流程涉及到跟其他子系统的等待、依赖关系,有状态的变迁,状态机模型更加适合。

例如公司请假流程:

员工提交申请请假表单信息(员工姓名、所在部门、职位)等信息--->如果是普通员工,自动流转到员工所在部门审批,如果部门审批通过且请假天数<=3则成功并系统备案,如果请假天数>3则自动流转到综合部审批,综合部审批通过则请假成功并备案--->如果是部门领导,自动流转到综合部门审批,综合部审批通过则请假成功并备案。

基于顺序工作流的建模方法

顺序工作流

由一系列预定义的步骤组成, 是个串行化的顺序流,有明确的开始和终止点,一般情况下不可逆。

建模方法

  1. 抽象业务逻辑,划分步骤
  2. 给每两个相邻的步骤定义流转条件
  3. 在每个步骤添加条件判断逻辑,决定是否流转到下一个步骤

适用场景

如果某流程是顺序化的,一步一步从开头执行到结尾,比较独立, 不涉及到跟其他子系统交互, 无等待、依赖关系, 适合用顺序工作流模型。

例如申请使用笔记本电脑流程:

员工提交申请表单信息(员工姓名、所在部门、职位)等信息--->如果当前公司空闲笔记本电脑数量=0则返回,否则继续--->如果当前员工为正式工则继续,否则返回--->如果当前员工为技术部、市场部、商务部则继续,否则返回--->通知综合部人员提取库存电脑发放给申请人并系统备案,流程结束。
申请笔记本电脑的流程由电脑自动根据用户提交的申请信息就可以完成,期间不需要人工交互或者因等待其它事件而暂停或者中止,这就是常见的顺序工作流。

Reference