• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

工作流模型设计

发布: 2008-4-21 11:15 | 作者: 葛志春 | 来源: 希赛网 | 查看: 98次 | 进入软件测试论坛讨论

领测软件测试网
关键字:工作流模型
摘要:工作流模型是组织机构经营过程的模型表示,但由于工作流建模理论研究的相对滞后,现行工作流管理系统中普通存在语义不够丰富、柔性不好、表示不直观等问题。为此作者在开发UniFlow工组流管理系统时,设计了一套基于有向图理论的工作流模型,该模型有效的解决了这些问题。本文主要从工作流模型理论出发向读者介绍了本模型的设计思想。文章首先详细介绍了工作流模型的定义和组成关系,然后详细介绍了基于有向图理论的工作流模型的主要功能和设计思想。 

关键词:工作流 工作流模型  有向图  过程

 

1 引言

  工作流模型是对组织机构业务过程的抽象表示。工作流模型是整个工作流管理系统的基础,它的确定性保证了系统内各组成部分之间交互的一致性,也决定了一个工作流管理系统从设计开发到运行实施的诸多环节。不同的工作流模型也就形成了不同的工作流管理系统。相对工作流产品的实现技术和发展而言,工作流建模理论的研究相对滞后,在建模方法上还没有形成比较系统化的理论体系。目前已有的建模方法主要有:基于活动网络的建模方法、基于Petri网的建模方法、基于语言行为理论的建模方法、基于活动与状态图的建模方法和基于扩展事务模型的建模方法等。但这些工作流模型普遍都存在以下问题:(1)模型语义不够丰富,表示复杂问题的能力不足;(2)P偷娜嵝圆缓茫蝗菀状碓谥葱泄讨谐鱿值牟蝗范ㄐ晕侍猓唬?)表示方法不够直观等。

  在信息管理自动化的环境下,工作流模型必须采用简单、直观、又具有较强描述能力的面向组织用户的模型。因此,作者设计UniFlow工作流管理系统时,在参照工作流管理联盟(Workflow Manangement Coalition 简称:WfMC)工作流理论的基础上,博采众长,建立了基于有向图理论的UniFlow工作流管理系统工作流模型,该模型有效的解决了工作流模型中普通存在的问题。下文主要向读者详细介绍这一模型的相关理论与设计思想。

2 工作流模型概要

  企业、政府机关等组织机构是一个复杂的系统,用过程的观点来看待这些组织机构,组织机构的组成元素就是过程,过程的组成元素就是活动;工作流模型就是对这些业务过程的抽象表示。

  过程是指为了完成组织机构的某个经营目标或任务,而按某种顺序联结在一起的一系列活动。过程的主要属性有:触发事件、过程结果、执行规律集。过程的执行规律集用来描述过程内部各活动、子过程之间的控制流程。执行规律集由顺序、并发、与、或、循环等五种连接关系组成,通过这五种连接可以完整的描述活动与活动之间的逻辑关系。

  活动是指一种变换或操作,是组织机构过程的最基本单元。一个活动的属性由功能输入、输出,资源输入、输出、控制输入、输出和活动的描述等组成。功能输入、输出是指活动中要运作、产生的组织机构对象,它们描述了组织机构过程的物流,所以通常与上级过程的执行规律集有紧密联系。资源输入、输出是指活动执行所占用、释放的资源,包括执行活动所必须的设备、物料、人员等,它们不仅可以在一定程度上描述不同活动之间的竞争关系,还可以用于实现对过程的分析和优化;控制输入是指对活动进行控制和限制的信息单位或对象;控制输出是活动结束状态的信息单位集合;活动描述是与活动执行有关的具体信息,如活动的编号、名称、优先级、成本核算单位、开始时间、完成期限、执行者、负责人、所需资源等。

  功能输入、资源输入、控制输入统称为活动的前条件,前条件对活动的发生有制约作用,只有所有的前条件都满足了,活动实例才能进入“活动”状态;功能输出、资源输出、控制输出统称为活动的后条件,后条件影响着后继活动实例的发生。

  一个完整的工作流模型主要有工作流表示方法、工作流元模型、工作流模型接口和建模工具组成。

3 工作流模型的有向图表示

  组织机构的一个完整的业务流程是由一系列最基本的生产活动按照一定的逻辑顺序和规则组成的,这些生产活动与他们之间的逻辑关系可以直观的映射成为一个由节点和连接弧组成的有向图。有向图中的节点即表示一个可执行的活动单元,连接于两个节点之间的有向弧即表示活动间的先后顺序关系。

  3.1 有向图理论基础

  对基于有向图理论的工作流模型,我们作如下定义:

  1)有向图G ={N, L}为一个二元组,N= {n1、n2、n3….ns } 为节点集合,L= {l1,l2,l3….ls}为连接弧集合,其中li=(nj, nk)为从nj指向nk的连接弧,nj,nk∈N。
  2)对于任意ni,nj∈N.若有连接弧l = (ni ,nj) ∈L,则ni为nj的一个前驱节点,nj为ni的一个后继节点,l称为nj的一个输入连接弧,或者ni的一条输出连接弧。
  3)若N’包含于N,且N’={n’|(n’ ,n) ∈L} ,则N’为节点n的前驱节点集,记为Pre (n);
  4)若N’包含于N,且N’={n’|(n ,n’) ∈L} ,则N’为节点n的后继节点集,记为Post (n);
  5)节点状态:对于任意n∈N,有状态函数State (n) = {0, 1},当节点n处于非执行状态时,State (n) = 0;当节点n处于执行状态时State ( n )=1。初始时刻,任意State(n) = 0。
  6)转移函数:对于任意l∈L,有转移函数Trans ( l )={0,1};如果Trans ( l ) = 1,则连接弧l容许发生转移(是否发生转移,则要取决于后面的演进规则):如果Trans ( 1 ) = 0,则连接弧不能发生转移。
  7)演进规则:有向图的演进规则是由节点状态的改变与连接弧发生转移这两个动态因素相互作用而完成的,因此,规则包含如下两个方面:
  (1)对于任意n∈N
    ● 当State(n) =0时,若存在l=(n’,n)发生转移,则State(n)=1;
    ● 当State(n)=1时,若节点n执行完毕,则State (n)=0;
  (2)对于任意l=(n,n’) ∈L
    ● 当State(n) 从1变为0时,若Trans(1)=1,则连接弧l发生转移;
    ● 若Trans(1)=0,则连接弧l不发生转移,直至下一次State(n)从1变为0的时候再使用此规则。

  3.2 节点类别

  在基于有向图的工作流模型中有向图的节点代表了具有如下特征的多种实体:

  1)与业务中实际存在的事件或活动有着直接的对应关系;
  2)本身有着具体的或人为定义的含义;
  3)能与其他节点形成一定的逻辑关系;

  因此,区分不同类别的节点、对节点进行具体的类别定义不仅可以明确节点的含义,同时也增强了模型的语义。在这里我们赋予节点有如下几种类型的定义: 活动、子过程、开始、结束、同步节点。

  3.2.1 活动

  活动是指在一个不间断的时间间隔内为实现某一目标由人工或系统自动完成的一个原子任务,它是组成业务流程的基本单元。一个工作流管理系统的所有活动的集合覆盖了组织中各类业务流程的全部细节。活动按自动化程度可分为两类:人工型活动和自动型活动。人工型活动是通过工作表(任务表)的生成来通知相关人员,依靠人员手工或启动应用的方式来完成。自动型活动则是在工作流的驱动下直接驱动应用或利用自动化设备来完成的活动;这种自动型活动充分体现了工作流管理系统所实现的组织内部不同应用间的过程集成。

  3.2.2 子过程

  作为组成业务流程的最基本单元,活动是指不能被进一步分解的原子单元。但在流程较复杂时活动结点数也必然增加,且关系复杂,因此,我们引入了子过程的概念。子过程是一类能够分解的节点类型,它的内部可以包含所有元素类型,实质上是一个子业务流程。子过程的引入大大增强了模型的表达能力,使模型具有了层次的概念,并支持自顶向下的建模过程。同时,我们规定子过程可以出现在任何层次。

  3.2.3 开始节点与结束节点

  开始节点和结束节点是两个标志性的节点,用来标识流程的开始和结束。一个工作流程具有唯一开始点和结束点。

  3.2.4 同步节点

  在将一个实际的业务流程映射成为工作流模型时,很重要的一点,就是要保证活动间的逻辑关系不变。“与”和“或”是两类最基本的逻辑关系,它是表达各种复杂关系的基础,工作流模型必须具备表达“与”和“或”关系的能力。

  我们在前面定义的演进规则,对于任意一个处于非执行状态的节点n,只要有一条输入连接弧发生了转移,那么该节点即可被执行,这实际上就表达了“或”的关系。即∪{n’∈Pre(n),l=(n’,n) ∈L,Trans(l)=1且l发生转移}。

  对于“与”的关系增加同步节点S来表示,它对活动起协调、同步的作用。我们规定,同步节点S的动态行为完全遵循演进规则,所不同的是,当S处于执行状态时,即State(S)=1时,将判断它的所有输入连接弧是否发生转移;若是,则S的状态就由1变为0,即S执行完毕;否则S仍处于等待状态,并继续判断,直至满足上面的条件后才执行完毕、发生转移,State(S)=10。这意味着同步节点将使它的所有前驱节点都执行完毕后才继续推进流程,这实际上就表达了“与”的关系∩{n’∈Pre(n),l=(n’,n) ∈L,Trans(l)=1且l发生转移。

  3.3 连接弧

  连接弧作为有向图中的另一种组成元素表达了有向图中不同节点元素之间的逻辑关系。它从前驱节点指向后继节点,体现了节点状态的转移和有向图的演进。连接弧发生转移根据条件Trans(l)进行,如果Trans(1)≡1则为永真型条件,否则为不定型条件。对于不定型条件根据实际情况取值。在工作流模型设计时我们将连接弧分为三类:普通控制连接弧、条件连接弧和条件设定连接弧。

  3.3.1  普通控制连接弧

  普通控制连接弧,即永真型连接弧,它不需要任何条件的判断,只要前驱节点执行完毕,即可激活后继节点。

  3.3.2  条件连接弧

  条件连接弧,即不定型连接弧,它的转移函数的取值是需要在具体的工作流实例执行过程当中由工作流引擎或人工加以判断来确定的。如果条件成立即可执行后继的节点。

  3.3.3  条件设定连接弧

  条件设定连接弧可以用来动态的设定活动的执行条件、完成条件和时间要求等条件。工作流模型通过动态的设定这些执行和判断条件,可以大大提高工作流管理系统的柔性。

  3.4 工作流模型的设计 

  从以上理论,我们可以得出工作流模型中的元素可以分为节点、连接弧和状态三大类;利用面向对象的继承性,我们设计了如图1所示的工作流模型。该工作流模型定义了三个基类:节点类、无条件连接弧和状态类。由节点类可以派生出7个子类:人工型活动、自动型活动、同步节点、协调节点、开始、结束,子过程。由无条件连接弧可以派生出条件连接弧和条件设定连接弧两个子类。子过程由除节点类外的各个类聚合而成(包括子过程本身)。


图1、工作流模型设计

4、工作流模型定义

  工作流生成是工作流建模的核心,它根据用户在建模工具界面的输入产生可被工作流引擎解释执行的工作流。在工作流生成模块设计时,必须做两个方面的工作:

文章来源于领测软件测试网 https://www.ltesting.net/

TAG: 模型 设计 工作流

21/212>

关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网