基于UML的工作流管理系统分析

本文围绕基于UML的工作流管理系统展开分析。介绍了工作流的起源、发展及应用场景,阐述了工作流管理系统的产生、功能及组成部分。重点分析了其核心的工作流执行子系统和工作流引擎,还给出了创建用例视图的建模实例。

基于UML的工作流管理系统分析

0 引言

随着社会生产的流程化,工作流起着越来越重要的作用。根据 WFMC 的定义,工作流(Workflow)就是自动运作的业务过程部分或整体,表现为参与者对文件、信息或任务按照规程采取行动,并令其在参与者之间传递。简单地说,工作流就是一系列相互衔接、自动进行的业务活动或任务。本文将详细介绍基于UML的工作流管理系统分析与建模。

1 工作流概述

对工作流的研究起源于二十世纪七十年代,受网络的局限性,最初的工作流系统主要以企业内部的文档处理为主。到了二十世纪九十年代,随着Internet 技术的发展及应用,促进了电子商务应用的极大发展,使得公司与公司之间、公司内部部门之间以及子公司之间的业务相互处理成为可能,这为工作流的发展带来了很大的机遇和挑战。

根据国际有关组织的预测,随着电子商务的发展,以数据处理为中心的数据库产品已经进入稳定发展期,以业务过程处理为中心的工作流产品将进入高速发展期。在国内,随着企业管理的规范化和规模的不断扩大,企业的计算机管理将不仅仅停留在信息资源管理上,而将向更复杂的业务过程管理迈进。

为了实现组织目标,有关业务活动依时序或逻辑关系相互连接构成业务流程。在业务开展过程中,文档、信息或任务,依据组织规范在参与者之间传递、处理或执行。总体业务流程中,实现了基于计算机辅助处理而达到自动化的全部或部分称为工作流。也就是说,工作流是在计算机辅助下全部或部分自动执行的工作过程,该过程可运行于异质、分布的运行环境中,供多人协同工作。工作流服务器是供业务流程可视化设计、管理和控制业务流程的运行、并在实际执行过程中可动态修改业务流程的一种计算机软件平台。它使得快速开发、部署和运行企业业务管理系统、电子商务系统等成为可能。它也使得企业在复杂多变的市场环境中,为了快速适应市场的变化,在保存现有投资,现有系统不变的情况下,迅速调整业务或商务流程成为可能。如它可应用在:采购处理、各种申请、订单与报价处理、员工绩效考核、人事变动、贷款审批、索赔处理、B2B、电子商务等。

2 工作流管理系统概述

工作流管理系统是定义、创建和执行工作流的系统,它是一种特殊的计算机支持的协同处理(CSCWComputer Supported CooperativeWork)软件系统。

工作流管理系统的产生

工作流管理系统(WfMS,WorkflowManagementSystem)是以计算机支持的分布式、协同工作业务流程的自动或半自动化为研究目标的软件系统。随着计算机网络,特别是Internet/Intranet 的迅猛发展和应用,计算机支持的分布式、协同工作的工作流系统在企、事业单位中的地位显得越来越重要,也有着广阔的前景。

工作流管理系统是定义、创建、执行工作流的系统。开发这类软件系统就是要协调分布式、协同处理的各个节点上的活动,按照预定义的控制流程进行执行,以达到对它们的自动执行和有效的管理。开发这类软件有很大的重复性,工作流管理系统就是将这类软件的公共的流程控制部分(工作流运行服务、引擎)、管理部分和其他公共部分抽象出来,形成一种软件开发平台,用户只需要将它们的控制流程描述出来,该平台软件就可对它们的控制流程进行自动执行和有效地管理,而不需要对每次不同的应用重复地开发。

不同工作流管理系统可以有不同的实现方法,不同的底层通讯机制,应用的范围也可能有很大的差距,但所有的工作流管理系统从用户的应用层上来看,通用工作流管理系统应该能够提供以下三个方面的功能支持:

首先是建造功能,即对工作流的业务流程及组成这些业务流程的活动进行定义和建模。

其次是运行控制功能,即在一定的运行环境下,负责创建、执行和控制工作流实例,激活相应的资源和应用,并完成过程中从一个活动到另一个活动的控制转移。它是整个工作流管理系统的核心部分。

最后是运行交互功能,即在工作流实例的运行中,工作流管理系统与工作流参与者(业务工作的参与者或控制者)及外部应用程序进行交互的功能。

由于信息技术的发展和日趋激烈的商业竞争,人们不再满足于独立、零散的办公自动化和计算机应用,而是需要综合的、集成化的解决方案。作为一种对常规性事务进行管理、集成的技术,WfMS 的出现是必然的。它可以改进和优化业务流程,提高业务工作效率;实现更好的业务过程控制,提高顾客服务质量;提高业务流程的柔性等。

3 工作流管理系统的组成

一个完整的工作流管理系统中主要包括如下七个部分的部件和数据。

a.过程定义工具

过程定义工具被用来创建计算机可处理的业务过程描述。它可以是形式化的过程定义语言或对象关系模型,也可以是简单地规定用户间信息传输的一组路由命令。

b.过程定义

过程定义(数据)包含了所有使业务过程能被工作流执行子系统执行的必要信息。这些信息包括起始和终止条件、各个组成活动、活动调度规则、各业务的参与者需要做的工作、相关应用程序和数据的调用信息等。

c.工作流执行子系统和工作流引擎

工作流执行子系统也称为(业务)过程执行环境,包括一个或多个工作流引擎。工作流引擎是WfMS 的核心软件组元。它的功能包括:解释过程定义,创建过程实例并控制其执行,调度各项活动,为用户工作表添加工作项,通过应用程序接口(API,Application Program Interface)调用应用程序,提供监督和管理功能等。工作流执行子系统可以包括多个工作流引擎,不同工作流引擎通过协作共同执行工作流。

d.工作流控制数据

指被工作流执行子系统和工作流引擎管理的系统数据,例如工作流实例的状态信息、每一活动的状态信息等。

e.工作流相关数据

指与业务过程相关的数据。WfMS 使用这些数据确定工作流实例的状态转移,例如过程调度决策数据、活动间的传输数据等。工作流相关数据既可以被工作流引擎使用,也可以被应用程序调用。

f.工作表和工作表处理程序

工作表列出了与业务过程的参与者相关的一系列工作项,工作表处理程序则对用户和工作表之间的交互进行管理。工作表处理程序完成的功能有:支持用户在工作表中选取一个工作项,重新分配工作项,通报工作项的完成,在工作项被处理的过程中调用相应的应用程序等。

g.应用程序和应用数据

应用程序可以直接被WfMS 调用或通过应用程序代理被间接调用。通过应用程序调用,WfMS 部分或完全自动地完成一个活动,或者对业务参与者的工作提供支持。与工作流控制数据和相关数据不同,应用数据对应用程序来讲是局部数据,对WfMS 的其他部件来说是不可见的。

 

术语解释

1 工作流管理系统术语解释

术语/缩写

   释

过程定义

由过程定义工具所定义的一个工作流过程

过程实例

过程定义运行之后转化为过程实例,一个过程定义可以产生多个过程实例

活动

一个相对独立的工作的描述,它是过程定义的一个重要组成部分

活动实例

活动运行之后的一个实例

工作项

在一个活动实例中,工作流参与者所需执行的工作

工作项列表

一个参与者所负责的所有工作项的详细描述

信牌箱

活动之间传递信息的驿站

转移

从活动到信牌箱或从信牌箱到活动,描述信牌箱与活动之间关系的连接

工作流控制数据

表示过程实例、活动实例的状态信息

工作流相关数据

与业务过程相关的数据,工作流引擎根据它们来确定过程实例的状态转移

日志数据

系统中所有发生的事件及相应数据的记录

运行服务器

负责整个过程的运行、调度、查询及日志的记录等

过程定义状态

表示过程定义目前所处的状态,如:是否已发布等

过程实例状态

表示过程实例目前所处的状态,如:运行、挂起等

活动实例状态

表示活动实例目前所处的状态,如:运行、挂起等

工作项状态

表示工作项目前所处的状态,如:运行、挂起等

引擎

运行服务器的核心,负责过程实例的执行、调度

引擎容器

包含了多个引擎,并提供多引擎管理功能

 

4 工作流管理系统功能分析

前面已经介绍过,一个完整的通用工作流管理系统应当包括七个部件,这里限于篇幅的原因,只对工作流管理系统的核心部分:工作流执行子系统和工作流引擎进行分析。

 工作流管理系统核心功能

工作流管理系统的核心组成部分称为工作流执行子系统,它为创建、初始化和执行过程实例提供了一个运行环境。

在一个工作流执行子系统中可以包括一个或多个工作流引擎,前者是一种集中式的实现方式,而后者是一种分布式的实现方式。分布式的实现方式又可以分为同构和异构两种不同的情况。所谓同构是指在一个运行服务系统中包含了多个兼容的工作流引擎;所谓异构是指在工作流管理系统中包含了两个以上异构的工作流执行子系统。

工作流引擎是工作流管理系统的核心软件部件。它的主要功能有:解释过程定义,控制过程实例(创建、激活、挂起、终止等),按照过程定义已确定的业务逻辑调用各项活动,为用户工作表添加工作项,维护工作流控制数据和工作流相关数据,调用应用程序,提供监督,管理和审计功能。

工作流执行子系统涉及四种数据:工作流控制数据、工作流相关数据、组织/角色模型数据和工作表。

第一种,工作流控制数据。指只由工作流执行子系统维护的内部控制数据,主要用于表示过程实例与活动实例的状态信息。

第二种,工作流相关数据。指与业务过程相关的数据,他们由应用程序或由用户通过工作项处理来产生和更新,工作流引擎根据相关数据来确定过程实例的状态转移,例如过程调度决策数据、活动间的传输数据等。

第三种,组织/角色模型数据。是描述组织结构的数据,主要用于确定工作项的执行者。

第四种,工作表。列出了与工作流参与者相关的一系列工作项。

5 建模实例

5.1 创建用例视图

用例视图从外部用户的角度捕获系统的行为。它将系统功能划分为对活动者(系统的理想用户)具有意义的事务。这些功能片被称为用例。用例通过系统与一个或多个活动者之间的一系列消息描述了与活动者的交互。其活动者包括人员、其它的计算机系统和进程。

活动者用一个小人表示,活动者的名字标在这个小人的下方。用例用一个椭圆表示,用例的名字标在椭圆中或下方,用实线与同自身通信的活动者相连接。用例视图对活动者,所感知的系统功能进行建模,目的是列举活动者和用例,显示活动者在每个用例中的参与情况。

a. 工作流执行子系统

<shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><lock v:ext="edit" aspectratio="t"></lock></shapetype>

 

1表示工作流执行子系统的用例图。活动者包括WfClient(工作流客户端)、Monitor(工作流监控端)、DefinitionDB(工作流定义数据库)、EnactmentDB(工作流运行数据库)、OrganizationDB(组织机构数据库)、ApplicationDB(应用程序数据库)、WorkItemDB(工作项数据库)、ConfigFile(工作流系统配置文件)。这里,WfClient 作为接收用户交互的界面部分,将用户所作的行为,依照固定的规则,将请求送给工作流执行子系统进行处理。Monitor 作为接收系统管理员交互的界面部分,将系统管理员对系统作出的调整,发送给工作流执行子系统进行处理。其余的DefinitionDB 等活动者,负责将工作流执行子系统每一步的操作与状态记录到数据库中,以永久保存。用例包括ResourceLocate ( 资源定位)、EngineContainer ( 引擎容器)、ProcessDefLoad(定义装载)、ProcessMonitor(过程监控)、Util(公用程序)。其中,EngineContainer 通过ResourceLocate 定位所有系统所用到的资源,表EngineContainer 用例使用ResourceLocate 用例,用带有箭头的实线表示。EngineContainer 不直接与用户交互,活动者对工作流的参与都是通过ProcessMonitor 这个工作流执行子系统的入口来进行的。EngineContainer 通过ProcessDefLoad 将现有的工作流定义装入,这样才能运行该工作流,EngineContainer 用例与ResourceLocate 用例之间是使用关系。

这里仅给出用例ProcessMonitor 的具体功能分析。这些功能分析作为对ProcessMonitor 用例的注释,不在用例图上标识,只作为系统详细设计时的要点。对其余用例的分析方法与之类似。

过程监督服务器作为引擎容器的一部分,主要提供外部对引擎容器的运行状况的监督,即对引擎当前运行状况的查询。

譬如,当客户端或管理端需要了解引擎的运行状况时,首先发出一个消息请求,消息服务器接受到该消息后对消息进行解释,如果属于查询引擎的运行状况,则调用监督服务部分提供的API

基于UML 的资料室管理系统 用例 时序图 状态图 测试分析 毕业设计论文 摘要 I Abstract II 目录 III 第1章 引言 1 第2章 系统需求分析 2 1.1项目描述 2 1.1.1 开发背景 2 1.1.2 开发目的 2 1.1.3 业务范围 2 1.1.4 参考文档 3 1.1.5 术语说明 3 1.2约束及假定 3 1.2.1软件运行环境及技术约束 3 1.2.2 交付及部署约束 3 1.3功能性需求 4 1.3.1系统角色 4 1.3.2需求描述 6 1.4.非功能性需求 12 1.4.1性能需求 12 1.4.2可扩展性 12 1.4.3可用性 12 1.4.4安全性 12 1.4.5易用性 13 1.4.6可维护性 13 1.5.用例规约描述 13 1.5.1 目的 13 1.5.2 定义 13 1.5.3 用例描述 14 第3章 系统设计实现 51 3.1 系统分析设计 51 3.1.1架构设计 51 3.1.2领域模型 52 3.1.3时序图 55 3.1.4状态图 71 3.1.4设计类 72 3.2 数据库设计 76 3.2.1书籍类型表 77 3.2.2书籍基本表 77 3.2.3书籍明细表 78 3.2.4管理员信息表 78 3.2.5读者信息表 78 3.2.6预借信息表 79 3.2.7借阅信息 79 3.2.8罚款信息表 80 3.3 用户界面设计 80 3.3.1系统主界面 80 3.3.2查询统计界面 81 3.3.3库存统计界面 82 3.3.4类型统计界面 82 3.3.5借阅统计界面 83 3.3.6推荐购书统计界面 83 3.3.7季度报表统计界面 84 3.4 系统功能实现 84 3.4.1开发环境配置 84 3.4.2系统功能实现 84 3.4.3系统测试 99 第4章 系统运行测试 102 4.1系统运行环境 102 4.1.1 系统硬件运行环境 102 4.1.2 系统软件运行环境 102 4.2 系统运行调试 102 4.3 系统操作步骤 103 第5章 结 论 104 参考文献 105 致 谢 106 附 录 107 附录A: 主要源程序 107 附录B: 软件使用说明书 108
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值