UML软件工程组织

 

 

工作流的模式
 
2008-06-30 来源:网络
 

流模式(Sequential)

1.适合一个比效机械化的流程

2.在这种流程中,参与者处于一种被动的局面,他必须沿设定的路线一步一步完成。

例1:在MIS系统中,一个操作机器的工作流:

(开始->关1闸 –> 关2闸 -> 修理 -> 开2闸-> 开1闸 -> 结束)

在这个工作流中,需要严格按流程操作。而且在[修理]结点处可能还要调用一个修理某类设备的工作流。

例2:比如一个购物的工作流:

(开始->浏览->选择->缴费->取货 -> 结束)

在该例中,流程序顺的严格性就显得不是很重要,比如[缴费]与[取货]结点谁先谁后就不是很重要,只要[缴费]与[取货]都完成了就可以结正常[结束]该流程。

对于像这样的业务需求,就可以使用状态机模式

流模式的执行并非完全是顺序的。它们仍然可以接收外部事件或者启动并行任务,在这种情况下,可能会有状态机模式的表现形式。但就其设计与维护方式来说仍是 流模式

状态机模式(State Machine )

在状态机模式下,参与者的自主性比效大,工作流更多的是一个提醒的作用

例:一个审批流程:有六个部门批准才能通过,这六个部门的审批行为是独立进行的,不受其他部门结果的影响,可以使用状态机模式,配合规则实现

A.六个部门审批行为是并行模式

B.规则可以使用:全票通过,一票通过,简单多数,绝对多数,额定通过,等

另外状态可以由一种进入到另一种,如上例出现平票状态后,将进入联合听证流程

如何选择工作流模式

一个简单的判断标准

影响工作流程的一些重要的选择是否发生在工作流外部?是否由用户进行控制?

如果是,那就不适合采用流模式。而最好选用状态机模式

因为流模式本质上是对工作流的路径建模,将路径信息都编码到了模型之中。但是在某些时候,业务并不关心路径,而只关心结果,并且不关心结果是如何实现的。

这时要用流模式,就需要画出许多复杂的路径流程,但是这些复杂的路径却并非我们所关注的问题。而最后往往是维护路径的付出远远大于维护业务模块。

实际设计中的模式:

在实际设计中,模式的应用并不是泾渭分明的。同一工作流,在不同参与者的眼中就有不同的模式。

如一个请假的工作流,参与都有两种:申请人、审批人

在申请人眼里,他所参与的工作流是[流模式]

在审批人眼里,他所参与的工作流是[状态机模式]

 

组织简介 | 联系我们 |   Copyright 2002 ®  UML软件工程组织 京ICP备10020922号

京公海网安备110108001071号