技术开发 频道

UML与工作流完美结合

    【IT168 技术文章】

    由于工作流技术具有在异构环境中处理复杂事务的能力,工作流引擎成为了工作流管理系统的核心。而UML与它的结合使用更成为了一种新的趋势。

    作为社会经济的基本行为在网络经济时代的体现,电子商务所涉及的一个最根本的问题就是如何利用现代科技实现网络时代的业务流程管理。

    为了解决这个问题,研究人员在深入研究业务流程本质的基础上,提出了采用工作流技术作为网络时代业务流程管理的核心工具的思路。

    在实现对业务过程的工作流管理的过程中,需要有相应的软件系统的支撑。此种软件系统我们称之为工作流管理系统(Workflow Management System)。

    根据工作流管理联盟的定义,工作流管理系统是“一种在工作流形式化表示的驱动下,通过软件的执行而完成工作流定义、管理及执行的系统”,其主要目标是对业务过程中各步骤(或称活动、环节)发生的先后次序及同各步骤相关的相应人力或信息资源的调用等进行管理从而实现业务过程的自动化。

    此种管理可能会在不同的信息及通信环境下实现,所涉及的范围可以小至一个只有几个人的工作组,也可以大到企业(机构)与企业(机构)之间。

    构建一套计算机化的流程管理系统,企业可以提高工作效率,降低管理成本。为了从具体的行业、具体的流程中脱离开来,我们需要从中提取共性,开发出一套引擎系统,即流程管理引擎系统(Process Management Engine System,缩写为PMES)。

    今后针对具体的行业和需求,进行适当的定制及开发,就可以推出适合于不同行业需求的软件系统,从而降低开发成本。

    笔者使用UML来描述PMES系统,并用需求阶段获取的用例模型来驱动整个开发过程。

    图1 PMES系统用例视图

    用Use Case表达系统需求

    UML是一种标准的图形化建模语言,是面向对象技术发展的重要成果。UML适用于以面向对象的技术来描述任何类型的系统,而且适用于系统开发的不同阶段,可以应用于任何领域。

    Use Case是捕获业务过程和系统需求的有效方式。

    用例和其它描述方式相比具有自己独特的优点。首先,它把系统看作一个黑盒子,从外部活动者的角度来理解系统;其次,它使得在需求阶段就能看出实现方法简便易行;再次,Use Case模型的建立是系统开发者和用户反复讨论的结果;最后,用例驱动了需求之后各个阶段的开发工作。

    由于用例自身的特点,他表达需求的顺序必须符合以下标准:确定执行者和目标;给出用例的提纲;简短的用例描述;细化基本流;细化可选流;检验用例;记录前置和后置条件;概括总结所有的用例,建立用例模型。

    流程管理引擎(PMES)系统

    PMES系统的主要功能为依据流程的定义,由系统自动地按照规则选取合适的人员完成流程中的特定工作,并决定下一步应该进行的工作。

    建立PMES系统将达到以下目标:可作为各个流程管理系统的支持引擎;对流程化事务处理速度的提高;管理信息服务的改进;人员工作效率的提高;企业管理成本的降低。

    PMES系统的用户需求

    PMES包含三大功能模块:建立时功能、运行时实例控制功能和运行时同用户及应用的交互功能。另外,系统还包括系统管理与维护、流程日志查询等功能。

    系统通过定义工具产生流程定义。在流程定义过程中可能会引用组织的有关资源以及相关的应用程序。流程定义被流程引擎解释并按定义进行执行;引擎执行流程的过程中,将维护流程控制数据并使用流程实例的相关的数据对流程进行处理;引擎还会和组织的相关资源进行交互,以决定流程定义中的下一项任务应该如何(由谁)完成,如果是由应用程序自动完成,则引擎将调用相关的引用来完成任务,如果应该由具体的人来实施,则将任务发向相关人员的Worklist中。用户通过Worklist Handler访问Worklist,获取他应该执行的任务并在任务完成后进行提交。

    图2 流程定义用例图

    PMES系统的用例视图

    PMES的主要目的是对流程管理提供建模工具和执行过程的驱动平台,并对流程的执行提供管理和监控手段,并为与其它应用系统的集成提供接口。系统涉及到的主要角色包括建模人员、任务完成者、监督人员、系统管理员和集成引擎的其它应用,如图1所示。以流程定义为例,图2给出了其细化的用例图。

    PMES系统的实现

    PMES系统的总体结构划分如图3所示。

    流程引擎是系统的核心,负责对各个流程的执行并决定下一步要执行的工作,并通过资源获取包得到的结果,将下一步要执行的工作发送到相应的用户接入服务器的Worklist中去。

    同时,将流程执行过程的日志调用临时日志包以非常简明的方式写入到日志临时记录库中,以保证引擎的执行效率。日志翻译包读取引擎所写的临时日志,将其翻译为便于人理解的格式。执行流程时,引擎要与中心数据库进行交互,如读取流程定义等。

    工作列表服务器为用户提供工作接口。一个流程引擎可以与多个工作列表服务器相连。

    日志监控包为用户提供日志的查询监控服务,如流程执行过程的监视与跟踪、历史流程的查询等工作。日志查询服务器对中心数据库中的日志记录进行只读操作。系统管理包封装对整个系统的维护工作,如解决流程执行失败问题、删除历史数据、对流程定义的版本控制、流程定义的Check In/Out、用户管理、权限管理等功能。

    流程定义工具为具有图形用户界面的工具,以便用户对流程进行定义、修改等功能。即:流程的逻辑在这里定义,在引擎中被解释执行。每个流程对应为一个操作系统文件,然后由系统管理工具通过处理转化到中心数据库中以表的方式进行记录。

    图3 PMES系统包图

    流程管理引擎系统(PMES)是流程管理系统的支持引擎。建设流程管理系统,企业可以提高工作效率,降低管理成本。

    使用UML能够对PMES系统进行有效的需求分析。用例驱动开发过程,在将PMES系统的功能性需求表示为用例模型后,就可以根据用例模型创建分析模型。然后将分析模型转化为设计模型,设计类和用例实现。最后,根据测试用例对PMES系统进行测试。

    链 接

    用例的三个术语:

    ◆ Actor(执行者):是与系统进行交互的人或其它系统,通常要接收和发送数据;

    ◆ Use Case(用例):系统执行的一系列活动,然后把可见的结果返回给指定的Actor;

    ◆ Use Case视图:是执行者所能观察到的系统功能的模型图,是由Actor和Use Case以及它们之间的关联构成的图形。
 

0
相关文章