基于WF StateMachine的UML状态图动态构建与测试

2018-09-26 10:21孔令东
软件工程 2018年6期
关键词:状态图

摘 要:采用UML分析与设计的业务信息系统,业务流程经过层层的抽象迭代,缺乏一种透明的业务流程实现。WF提供了可视化的业务过程编程模型,便于实现业务流程自动化,在对比分析WF State Machine和UML状态图的基础上,研究从UML状态图到WF State Machine业务流程映射关系,选取UML中典型状态图,依据一定的命名转换规则,实现了从UML状态图分析设计到WF状态机业务过程可视化的构建,完成了动态测试。

关键词:WF;State Machine;UML;状态图

中图分类号:TP311.51 文献标识码:A

1 引言(Introduction)

Windows Workflow Foundation(WF)是微软推出的一个可扩展框架,提供了工作流定义的图形化的工具和界面。WF可将业务逻辑作为规则或条件来实现,作为工作流的基本组成。WF中状态机(State Machine)工作流提供的建模类型,可以对事件驱动方式的工作流进行建模,State Machine活动包含状态和组成的状态机逻辑转换。可以为状态驱动的业务过程提供可视化的建模实现过程[1-3]。UML提供业务过程建模的分析和设计工具,用于企业信息系统的可视化业务流程描述与处理[4,5],在此过程中,经历了的层层的业务抽象,最后到业务的实现,一旦业务流程需要修改,需要不断迭代完成,缺少一种从业务建模到实现的透明转换过程,实现所见即所得。UML中也包含了State Machine的语义描述,便于对离散事件驱动的动态行为建模[6-8]。

本文在研究UML典型状态图(State Diagram)样例的基础上,结合WF的可视化实现,探索从UML状态图建模到WF State Machine编程模型的无缝转换,快速构建便于测试的应用程序。

2 映射关系及典型示例(Mapping relationship and

typical example)

2.1 从UML状态图到WF State Machine的对应关系分析

UML和WF在状态机的可视化建模及实现上具有紧密的关联性,从相关概念的组成和含义几乎都一一对应,这一点保证了无缝的转换。如表1所示WF和UML的State Machine相关组成及含义对比,可以看出WF和UML中的State Machine都是事件驱动的建模,相当于所有状态的容器。相比较而已,在业务系统中,UML中偏重业务流程的分析设计,而WF中更偏重基于工作流的业务实现。两者的State(状态)都可置于State Machine之中。两者的Transition(转换)和FinalState(终止状态)的概念也基本相同。有了相对应的组成,这两个之间在可视化的建模中就有了相对应的可视化图形符号。

如表2所示,WF和UML State Machine的映射关系及图形表示,两者都包括了开始状态、状态、状态转换、结束状态等基本符号组成,从符号的表达到信息的展示,都可以无缝对应转换,从而保证了可视化建模从分析到实现的一致性。表中基于两者的基本符号,初步构建了基本图形结构,可以看出,从形式语义上没有任何信息丢失,主要的区别在于UML中是静态的分析、设计,WF中可以直接动态的实现,在下面的基于WF的UML状态图构建中会详细分析。

2.2 典型的UML状态图示例

为更好的说明基于WF的UML状态图构建和实现,选取了Rational Rose中典型的状态图,以便于深入的转换说明。如图1所示机器人自动转换状态图,在这个示例中,显示了机器人在转换过程中涉及的各种状态,包含了典型的开始状态,结束状态、嵌入状态、自身转换状态、历史状态,以及各种动作活动(入口动作、出口动作等)、监护条件和触发等。

3 转换构建(Convert construction)

依据前面的映射关系和命名规则,如图2所示,基于WF的UML机器人自动转换状态图顶层映射模型,采用分层逐步迭代的思想,清晰地实现了顶层模型的映射。由图中可以看出,UML典型示例中的Start、Movement、FinalState、nestedstates等状态,以及相关的变迁、入口动作、监护条件都信息无损的映射到WF的StateMachine_Automatic Transmission Model for a Robot上。其中UML中Movement状态的Transition to Self变迁映射成toSelf变迁,从Movement到FinalState的变迁映射成toFinal变迁。由于UML中Movement状态是一个复合状态,需进一步的分层构建。

如图3所示StateMachine_Movement細化模型,UML中的Movement复合状态,被构建映射为StateMachine_Movement状态机,嵌入的Start、History、Forward、Reverse置于其内,相关的变迁、入口动作、监护条件都信息无损的映射。由于UML中Forward状态也是一个复合状态,也需要进一步的分层构建。

如图4StateMachine_Forward细化模型,UML中Forward复合状态被映射为StateMachine_Movement状态机,嵌入的First Gear和Second Gear状态置于其内。

4 动态测试(Dynamic test)

在业务系统中,UML主要实现系统静态分析与设计,经过如图2—图4所示的映射,静态的UML状态图被映射成WF的状态机可视化动态建模,所见即所得,如图5基于WF的UML机器人自动转换状态图动态运行测试,构建的WF模型在工作流的引擎牵引下就可以实现动态的运行测试,一定程度上实现了业务过程的自动化,实现了业务流程从UML分析设计到无缝实现。

5 结论(Conclusion)

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

参考文献(References)

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

[2] 钱维平,王坚.基于WF状态机工作流的日常工作管理系统的设计与实現[J].机电产品开发与创新,2015,28(1):81-83.

[3] 冯倩,董丽丽.基于WF状态机工作流的研究与应用[J].电脑知识与技术,2008,4(8):2263-2265.

[4] [美]Grady Booch,James Rumbaugh,Ivar Jacobson.UML用户指南(第二版)[M].北京:人民邮电出版社,2013:5-20.

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

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

[7] 蒋慧,林东,谢希仁.UML状态机的形式语义[J].软件学报, 2002,13(12):2244-2250.

[8] 于晓玲,杨海波.UML状态图形式化方法的分析与比较[J].计算机与数字工程,2014,42(8):1488-1492.

作者简介:

孔令东(1973-),男,博士,讲师.研究领域:软件工程,工作流技术.

猜你喜欢
状态图
航线网络优化方法研究
关于铁碳合金状态图讲解的几点建议
状态图及状态表在软件建模中的适用场景分析
时序电路分析中状态表与状态图输出的合理描述
高强高韧汽车传动轴管双道次W弯曲组合成型工艺的研究与设计
基于UML状态图的列控中心软件测试路径生成方法
UML状态图在软件工程设计中的应用研究
基于UML状态图的软件系统测试用例生成方法
SysML 状态图合理性验证研究与实现
安全协议可视化建模和验证方法的分析与设计①