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

摘 要:采用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-),男,博士,讲师.研究领域:软件工程,工作流技术.
相关文章!
  • 融合正向建模与反求计算的车用

    崔庆佳 周兵 吴晓建 李宁 曾凡沂<br />
    摘 要:针对减振器调试过程中工程师凭借经验调试耗时耗力等局限性,引入反求的思想,开展了

  • 浅谈高校多媒体教育技术的应用

    聂森摘要:在科学技术蓬勃发展的今天,我国教育领域改革之中也逐渐引用了先进技术,如多媒体技术、网络技术等,对于提高教育教学水平有很

  • 卫星天线过顶盲区时机分析

    晁宁+罗晓英+杨新龙<br />
    摘 要: 分析直角坐标框架结构平台和极坐标框架平台结构星载天线在各自盲区状态区域附近的发散问题。通过建