基于WF Flowchart的UML活动图动态构建与测试

2018-06-14 07:15:14孔令东
软件 2018年5期
关键词:流程图业务流程入口

孔令东

(盐城工学院信息工程学院,江苏 盐城 224051)

0 引言

Windows Workflow Foundation(WF)是微软推出的一个可扩展框架,可用于快速生成启用工作流应用程序,WF自带编程模型和可以自定义的工作流引擎,工作流引擎可将业务逻辑作为规则或条件来实现,可视化地实现业务过程自动化。WF内置的Flowchart工作流图形化工具,可以为流程活动驱动的业务过程提供可视化的建模实现方案[1-3]。

Unified Modeling Language(UML)作为 Object Management Group(OMG)面向对象分析与设计的标准,可以为系统业务流程提供可视化的分析与设计工具,尽管在实践过程中,人们总结出了各种软件开发过程,比如说Rational Unified Process(RUP)统一开发过程,核心也离不开迭代的思想,对于庞大的业务流程来说,需要耗时耗力去回溯修改业务流程[4,5],动态的业务分析建模到可视化的实现便于追溯和动态修改业务流程变化。UML包含了活动图(Activity Diagram)的语义描述,提供一种业务流程工作流建模的方法,便于对离散事件驱动的动态行为建模[6-8]。

本文在研究Rational Rose帮助中UML典型活动图样例的基础上,基于 WF的可视化 Flowchart实现模型,探索从UML活动建模到WF Flowchart工作流的无缝转换,快速生成便于测试的业务流程应用程序。

1 转换关系及典型示例

1.1 从UML活动图到WF Flowchart的对应关

系分析

UML活动图和WF流程图在可视化建模及实现上具有紧密的关联性,从相关概念的组成和含义几乎都一一对应,这一点保证了无缝的转换。如表 1 UML活动图和WF流程图的映射关系及图形表示,UML活动图中的 Start(开始)、Activity(活动)、Transition(变迁)、Decision(决策)、Swimlane(泳道)、End(结束)分别和 WF中的 Start(开始)、Activity(活动)、Transition(变迁)、Decision(决策)、InvokeMethod Activity Object(调用方法活动对象、TerminateWorkflow(终止工作流活动)相对应。在 UML中一个泳道对象负责相应的活动,活动之间通过消息动作完成活动之间的转换,WF中一个流程图由若干活动组成,根据活动的相应条件完成流程的转换,虽然在WF中没有专门的泳道与之相对应,但是,在实际模型转换过程中,我们采用InvokeMethod Activity Object同UML中的泳道对应,不仅解决的活动的归属问题,而且可以清晰的表示,活动对象调用相关动作,后面样例的实现上会详细介绍。在映射的基础上,两者之间在可视化的建模中就有了相对应的可视化图形符号。如表 1所示 从符号的表达到信息的展示,都基本可以一一对应转换,从而保证了可视化建模从分析到实现的一致性。从形式建模的语义上没有信息丢失,主要的区别在于UML活动图的模型偏重于分析、设计,WF流程图中可以直接动态的实现,在下面的基于WF流程图的UML活动图构建中会详细分析。

1.2 典型的UML活动图示例

为更好的说明基于WF流程图的UML活动图构建和实现,选取了Rational Rose帮助中典型的活动图,以便于深入的转换说明。如图1所示运送部件到客户活动示例图,在这个示例定义了运送部件到客户所涉及的相关过程和步骤,每一个泳道(Manufacturing、Shipping、Customer)对象负责一个或多个活动,同时每一个活动都特别定义了不同的入口动作或出口动作,来完成不同活动之间的转换,其中,对部件运输包裹称重来确定运输的途径,使用了决策判断。这是一个典型的 UML活动图,典型包括了开始、转换、活动、入口动作、出口动作、决策、结束等基本活动图组成,为基于WF映射构建奠定了坚实的基础。

2 转换构建

2.1 转换命名规则

一个UML活动图包含若干个交互的活动对象,根据前面分析的映射关系,每一个WF中的活动都以 UML的活动图中活动名来命名,由于 WF中Activity都置于Flowchart之中,那么所有UML时序图中对象,形成了一个Flowchart对象。如在图1和图 2所示,一个 UML活动图中名为 Part to Shipping活动和Flowchart中的Part to Shipping相对应,Part to Shipping、Package Part、Ship Next Day、Ship Second Day Air、Receive Part等四个活动置于一个 Flowchart中,形成了一个名为 Flowchart_Shipping the Part to the Customer流程图;入口动作和出口动作的命名以此类推。这样的命名保证了两种图形转换的一致性,更强调了活动和对象的依附关系,在构建实现上便于编码测试。这样命名便于我们去追溯状态的形成过程,可以很清晰的区分状态的起源和嵌入状况,也便于有效的扩展。

表1 UML 活动图和WF流程图的映射关系及图形表示Tab.1 Mapping relationship and graphical representation between WF Flowchart and UML activity diagram

图1 运送部件到客户活动图Fig.1 Activity diagram of shipping the part to the customer

2.2 静态的映射转换

依据前面的映射关系和命名规则,如图2基于WF的运送部件到客户静态映射模型所示,采用分层逐步迭代的思想,清晰地实现了模型转换。由图中可以看出,UML活动图示例1中的Part to Shipping、Package Part、Ship Next Day、Ship Second Day Air、Receive Part等活动以及相关的变迁、决策、入口动作、出口动作等都信息无损的映射到WF的Flowchart_Shipping the Part to the Customer流程图上。其中UML 中Part to Shipping活动中的入口动作和出口动作被显式的映射为“do/Verify Quality”和“exit/ Give to Shipping”动作方法,图3中详细介绍这些动作的实现,其他的活动以此类推;UML中的Weigh Decision决策判断也被无缝的映射成可以执行的分支判断,图3中将会详细的介绍判断执行的过程。

至此,基于WF Flowchart的静态映射模型下,活动图中所有静态信息,完全被映射和转换成功。相对于系统业务流程中的分析和设计,这部分映射和转换仅仅实现了静态的信息转移,对于动态变化的模型分析来说,业务流程如何执行,变迁如何启动,判断如何动态地实现等等,UML的活动图都没有体现,按照传统的 UML分析与设计规范,需要进一步的抽象建模、细化算法实现,基于 WF Flowchart可视化工作流实现模型模型,可以无缝的进一步实现。

2.3 动态的构建实现

微软WF基础框架提供了是可视化的工作流编程实现模型,对于活动图中的每一个活动、变迁和决策都可以动态的实现。如图3所示Part to Shipping、Package Part活动细化和实现模型,Part to Shipping活动入口动作和出口动作被细化实现,可以显式的看出,入口动作由 Manufacturing对象的DoVerifyQuality 方法来实现,并给出了“Verify-Result”验证结果,入口动作结束后进入“Give to Shipping”提醒;同理Package Part活动入口动作由

“new Shipping()”创建Shipping对象的DoVerify-Address方法来实现。

图2 基于WF的运送部件到客户静态映射模型Fig.2 Static mapping model of shipping the part to the customer based on WF

3 运行测试

在业务分析建模过程中,传统的 UML分析与设计实现了静态的建模,经过如图2的静态映射模型到如图3的动态细化实现模型,静态的UML活动图被映射成WF Flowchart的可视化动态模型。如图4 基于WF的运送部件到客户活动图动态运行测试,构建的WF模型在工作流的引擎牵引下就可以实现动态的运行测试,一定程度上实现了业务过程的自动化,实现了业务流程从 UML分析设计到无缝实现。

图4 基于WF的运送部件到客户活动图动态测试Fig.4 Dynamic test of shipping the part to the customer activity diagram based WF

4 结论

在 UML业务流程建模分析、设计到实现的过程中,动态的迭代分析总是存在着信息的丢失和不一致性,探索一种从业务分析到实现的无缝转换是必要的。本文在分析UML活动图和WF Flowchart结合优势及相关概念和符号表示的基础上,选取Rational Rose中典型的活动图,深入研究了基于WF Flowchart流程图的 UML活动图的构建实现,从UML活动中简单活动之间的转换、入口动作、出口动作,到泳道对象的映射,显式地活动及变迁决策的转换映射为一定的规则或条件,构建了基于 WF的流程图的可视化动态模型,基于微软工作流引擎,实现了业务过程建模自动化测试,探索了从 UML可视化建模分析、设计到WF可视化实现的透明转换,具有实际的意义。

[1] [美]Grady Booch, James Rumbaugh, Ivar Jacobson著. UML用户指南[M]. 北京: 人民邮电出版社. 2013, 1.

[2] Object Management Group: Unified Modeling Language.formal/2017-12-05, OMG UML(2017).

[3] Alexander Knapp and Till Mossakowski.UML Interactions Meet State Machine--An Institutional Approach. 7th Conference on Algebra and Coalgebra in Computer Science(CALCO 2017). 15: 1–15.

[4] 张姝, 张广泉. UML顺序图的一种形式化描述方法[J]. 重庆师范大学学报(自然科学版). 2007, 24(3): 42-45.

[5] 郭艳燕, 张楠, 童向荣. UML顺序图形式化语义的研究综述[J]. 计算机科学. 2017, 44(2): 17-29.

[6] The programming model, samples, and tools of the Windows Workflow Foundation (WF). https://docs.microsoft.com/enus/dotnet/framework/windows-workflow-foundation/index

[7] 梁义芝, 王延章等. UML活动图的形式语义及分析[J]. 计算机工程与应用. 2003, 18: 28-31.

[8] 王聪, 王智学. UML活动图的操作语义[J]. 计算机研究与发展. 2007, 44(10): 1801-1807.

猜你喜欢
流程图业务流程入口
RPA机器人助业务流程智能化
基于新一代称重设备的入口治超劝返系统分析
STK业务流程优化的探究
电子测试(2018年23期)2018-12-29 11:11:28
秘密入口
企业财务管理、业务流程管理中整合ERP之探索
作品三
丝路艺术(2018年3期)2018-06-23 10:12:28
第九道 灵化阁入口保卫战
基于财务业务流程再造的ERP信息系统构建探析
中国商论(2016年34期)2017-01-15 14:24:22
专利申请审批流程图
河南科技(2016年8期)2016-09-03 08:08:22
专利申请审批流程图
河南科技(2016年6期)2016-08-13 08:18:29