基于gmf的可视化建模平台的制作方法

文档序号:6624653阅读:379来源:国知局
基于gmf的可视化建模平台的制作方法
【专利摘要】本发明提供了一种基于GMF的可视化建模平台,该平台是在定义测试系统元模型的基础上,使用基于模型驱动开发方法的GMF图形建模框架技术建立测试系统模型及数据实例编辑器。通过定义领域模型、图形模型、工具模型以及将这三者结合起来的映射模型,解析测试模型转化成的符合相应Schema的XML文件,实现了可视化建模和部分代码的自动生成。该平台是将模型驱动的思想引入测试领域,以模型为核心,实现了测试资源的重利用,有效的缩短了测试周期。
【专利说明】基于GMF的可视化建模平台

【技术领域】
[0001]本发明涉及一种可视化建模平台。更特别地说,是指一种基于GMF(GraphicalModeling Framework,图形建模框架)的可视化建模平台,该平台能够以定义模型的方式来定义视图。

【背景技术】
[0002]早期的图形化界面应用程序主要使用GEF(Graphical Editing Framework,图形编辑框架)框架来开发,如JBPM流程定义工具,采用GEF+javaBean的组合模式,这种方式的缺点就是在模型层的处理上过于繁琐,需要开发人员人为实现模型通知机制,而且也不利于后期的扩展维护,一旦需求变更,模型结构的修改非常困难。
[0003]EMF(Eclipse Modeling Framework)可以帮助我们以模型驱动的方式开发Eclipse应用程序,具体来说,它定义了一套名为Ecore的元模型(类似UML(UnifiedModeling Language,统一建模语言)元模型,包括包、类型、属性和方法等元素),用Ecore定义的模型可以被EMF转换为运行在Eclipse平台上的Java代码,这些代码实现了一套消息通知机制,是构造一个可靠应用不可缺少的基础。
[0004]随着Eclipse平台被更多开发人员接受,结合EMF和GEF逐渐成为了构造GEF应用程序的主要模式,也就是在EMF生成的模型基础上开发GEF应用程序,这样可以在模型部分节约不少的工作量。但也有一些问题,例如两个框架各实现了一套命令机制来操作模型等等,它们又在一定程度上削弱了结合这两种技术带来的改善程度。
[0005]于是尝试EMF+GEF 的组合模式,因为 EMF(Eclipse Modeling Framework,Eclipse建模框架)在模型映射处理上相对比较成熟,并且由EMF所驱动出的实体类本身也具备了通知机制,可以将模型结构的状态改变通知到控制层,但在使用的过程中也有新的难点出现,EMF和GEF分别有自己的命令处理机制来用于定义对模型的修改操作,两套机制所定义的接口不同,没有办法实现通用。
[0006]GMF(Graphical Modeling Framework,图形建模框架)框架的设计解决了 EMF和GEF整合的困难,让我们可以用更简单的方法实现以前要同时用EMF和GEF开发的应用程序,而结合二者所带来的的各种问题则不需要关心。同时,借助Eclipse的插件机制,GMF还提供了十分丰富的扩展性,便于开发适合特定需求的应用程序。通过适配的方式将两种命令机制关联起来,并且在整合两个框架的同时,也做了很多功能上的扩展,包括:
[0007]1、从Ecore元模型中扩展出Notat1n Model (修饰模型)用于定义节点的修饰(字体、坐标、布局约束等),从而将节点的修饰属性从业务模型中独立出来,让Ecore模型只关注在业务逻辑的建模处理上。
[0008]2、GEF框架的视图展现主要使用了 Java的draw2D技术框架,需要开发人员手工编写相应的Figure类来定义视图节点的显示,GMF框架对视图的展现做了进一步的封装处理,将视图的定义抽象到模型配置文件中去进行管理,在由Runtime子框架去解析生成相应的Figure实体,从而让开发人员以定义模型的方式来定义视图。


【发明内容】

[0009]伴随着应用系统的发展变化,为了满足软件工程人员对应用系统高质量的保证,软件测试技术也蓬勃发展起来,软件测试由最初的全手工测试,到利用各种测试工具部分人工参与的半自动化测试及自动化测试,以及近年来逐渐兴起的MDT(Model-Driven-TeSting,模型驱动测试)。随着可视化UML建模工具描述功能的完善和各种功能测试工具的出现,加速了模型驱动测试方法学在现代软件系统的应用。本专利申请主要实现基于GMF技术的测试系统可视化建模,使得测试人员抽象出其所关注的测试点及测试流程,将其直观且无二义性的表示出来。并提供测试语言TTCN-3代码自动生成手段,用以将测试系统模型自动化的生成为TTCN-3代码。
[0010]可视化建模环境的设计主要采用了 MVC(Model-View-Controller,模型视图控制器)分层设计模式。同时,为支持模型存储功能,在模型层之下增加了模型存储/加载层。因此,模型编辑器内部分为四个层次,依次为:存储/加载层、模型层、控制器层和视图层。如图1所示。
[0011]存储/加载层:模型存储器支持模型存储功能,可同时存储模型的语义信息和图形信息;模型加载器可将存储的模型的语义信息和图形信息加载到系统中,以供用户修改和编辑。
[0012]模型(Model)层:位于模型层的是模型元素语义对象。语义对象仅维护与建模元素语义相关的信息,而不关心其图形化表示,如其图符形状、颜色、大小及布局等。
[0013]视图(View)层:位于视图层的是模型元素图形对象。图形对象维护与建模元素图形显示相关的信息,如上文中的图符形状、颜色、大小、坐标位置等。
[0014]控制器(Controller)层。在MVC模式中,模型元素语义对象与其图形化表示之间不能直接相互操纵,而是通过位于二者之间的控制器来完成。控制器的主要作用包括:(I)接收视图层的消息,对模型层进行相应的处理。例如用户拟在一个模型元素中加入一个子模型元素,需要由控制器将发生在父模型元素图形对象上的用户鼠标点击事件解析为相应的创建子元素请求,并根据请求,在父模型元素的语义对象中创建子模型元素;(2)将模型层的改变反映到视图层。如在父模型元素的语义对象中添加一个子模型元素的语义对象后,需要由控制器为子模型元素创建相应的图形对象,在视图中进行显示。
[0015]可视化建模环境的具体实现以Eclipse图形建模框架GMF(Graphical ModelingFramework)为基础。GMF是基于Eclipse平台的一个插件,旨在为开发可视化的模型编辑器提供支持。GMF面向的用户为可视化模型编辑器的开发人员,它以所有可视化模型编辑器的共性为理论基础,提供了一种高效的方式加速模型编辑器的开发过程。
[0016]GMF框架是一种典型的模型驱动开发方法,开发人员甚至可以在不编码的情况下完成模型实体到上层应用的整个驱动过程,但是由它所驱动出的项目实例只是针对大众化需求的一个功能定制,如果想加入个性化需求,修改工程代码也是在所难免的。GMF由两大主要部分构成:工具构件(tooling components)和运行时构件(runtime components)。
[0017]I)工具构件
[0018]工具构件由一系列的编辑器组成,这些编辑器支持创建领域模型(DomainModel)、图形定义(Graphical Definit1n)、工具定义(Tooling Definit1n)以及将这三者结合起来的映射模型(Mapping Model)。其中,领域模型、图形定义和工具定义都是可视化模型编辑器的共性。领域模型代表了模型的语义,相当于图1中的模型层;图形定义是模型的图形化表示(包括图符、布局方式等),相当于图1中的视图层;工具定义为每一个模型元素定义一个可创建该模型元素的工具;映射模型将领域模型中的模型元素与其图形定义和工具定义关联起来,相当于图1中的控制器层。
[0019]使用工具构件可进一步生成可视化模型编辑器的实现,其全过程如图2所示:
[0020]用GMF生成图形编辑器应用程序需要以下一些主要步骤:
[0021](I).创建一个GMF工程;
[0022](2).创建一个领域模型(domain model),以表示模型的语义,定义了那些由编辑器管理的一些非图形化的信息。。领域模型保存在以.ecore为后缀的文件中。其定义方式类似于UML类图,以类表示单个的模型元素,以关联等表示模型元素之间的关系;
[0023](3).创建一个图形定义模型(diagram definit1n model)。该模型定义了编辑器中显示的各种图形元素。可指定其显示的形状、颜色、大小以及布局方式等。图形定义保存在以.gmfgraph为后缀的文件中;
[0024](4).创建工具定义模型(tooling definit1n model),该模型用于定义工具栏、菜单栏中要显不的各种图形兀素。工具定乂保存在以.gmftool为后缀的文件中;
[0025](5).在创建了领域模型、图形定义和工具定义之后,创建映射模型。映射模型将领域模型中的元素与其图形定义和工具定义关联起来。映射模型保存在以.gmfmap为后缀的文件中;
[0026](6).然后,由映射模型创建生成器模型(Create Generator Model)。生成器模型中包含了映射模型中的信息;
[0027](7).最后,由生成器模型可生成模型编辑器的具体实现代码。生成的模型编辑器也以eclipse平台下的插件存在。
[0028]2)运行时构件
[0029]由工具构件生成的模型编辑器插件需要依赖GMF运行时构件。运行时构件提供了所有模型编辑器共享的基础构件。基础构件与模型编辑器插件中的与具体模型相关的构件共同组成了一个可运行的模型编辑器。
[0030]在由GMF生成的模型编辑器插件的基础上,模型编辑器的开发人员可按照各自的需求进行进一步的定制与修改。

【专利附图】

【附图说明】
[0031]图1是可视化建模环境层结构图;
[0032]图2是基于GMF技术的图形化编辑器的生成过程示意图;
[0033]图3是测试系统建模与TTCN-3代码生成的示意图;
[0034]图4是测试配置模型图;
[0035]图5是测试行为模型图。

【具体实施方式】
[0036]下面将结合附图和实施例对本发明做进一步的详细说明。
[0037]在定义测试元模型的基础上,构造可视化建模工具并生成TTCN-3代码,整体过程如图3所示。101:基于GMF构造可视化建模工具,在其上对测试数据、测试配置及测试行为进行建模。通过测试数据模型,生成数据实例编辑器,可编辑具体测试数据,来作为测试所需要的数据池。102:为生成TTCN-3代码,首先定义了与TTCN-3代码相对应的XML Schema,通过测试数据模型以及数据实例编辑器中的数据内容生成测试数据XML文件,测试配置建模生成测试配置XML文件,测试行为模型生成测试行为XML文件。103:随后将测试数据XML文件生成测试数据TTCN-3代码,测试配置XML文件生成测试配置TTCN-3代码,测试行为XML文件生成测试行为TTCN-3代码。最后整合数据、配置及行为的TTCN-3代码,生成完整的TTCN-3代码。
[0038]测试元模型的定义参考了 U2TP标准规范,采用EMF的.ecore文件来定义,并使用EMF自动生成相应代码,作为之后构造可视化建模工具的基础。元模型规定了模型中有哪些元素以及它们之间的语义,包括测试数据元模型、测试配置元模型、测试行为元模型三个部分,分别从数据、静态结构、动态行为三个方面描述了测试系统。
[0039]在测试元模型中测试数据元模型定义了一组概念用以描述测试数据,主要包括数据池(DataPool)、数据划分(DataPartit1n)、数据实例(DataInstance)及各种复杂的数据结构定义;测试配置元模型是对测试系统静态组成结构的描述,包括测试用例(TestCase)、测试场景(TestScenar1)、计时器(Timer)、被测系统(SUT, Systemunder Test)、测试组件(TestComponent)、测试端 P (TestInterface)及端口连接(TestInterfaceConnect1n)等;测试行为元模型用以对测试系统的行为进行描述,包括计时器动作(StartTimeAct1n 与 StopTimeAct1n)、消息激励(StimuliAct1n)、消息响应(ResponseEvaluateAct1n)、各分支动作类型及测试结果类别(Verdict)等;测试结果共定义了四种测试结果类别:通过(pass)、失败(fail)、错误(eiror)和不可判定(inconclusive)。这三个部分是紧密相连而非相互独立的。
[0040]测试数据模型包含基本数据类型(SimpleType)(如integer、f loat、double等)、枚举类型(Enum)和记录类型(Record),以及有序集合(RecordOf)和无序集合(SetOf)。还定义了数据池(DataPool)、数据划分(DataPartit1n)、数据实例(DataInstance)。
[0041 ] 测试配置模型是对测试系统静态组成结构的描述,包括了测试组件(TestComponent)、测试接口(TestInterface)等测试配置相关的重要概念。
[0042]测试行为模型用以对测试系统的行为进行描述,包括了计时器动作(Start TimerAct1n、Stop Timer Act1n 和 TimeOut Act1n)、消息激励(StimuliAct1n)、消息响应(ResponseEvaluateAct1n)及测试结果类别(Verdict)等,还包括循环动作(WhileAct1n和ForAct1n)以及条件动作(IfAct1n和ForAct1n)以及分支动作(AltAct1n)等。
[0043]如何基于TTCN-3和U2TP等标准,进行测试系统的行为建模、数据建模、配置建模无疑是技术难点。
[0044]数据建模在数据类型方面,包含基本数据类型、记录类型、枚举类型、集合(无序)以及数组(有序)。在具体数据方面,数据实例是数据类型的一个实例化对象,包含了具体的测试数据值。在数据实例编辑器中可以编辑、保存测试数据。数据类型之间的依赖关系使用属性表示。
[0045]配置建模对测试组件以及与被测系统的连接进行设计。首先定义一组测试组件,然后定义它们的接口,最后定义接口与被测系统接口的连接关系。还定义了测试组件、被测系统的接口类型,表示接口接受的消息类型。
[0046]行为建模首先定义一组测试组件,然后定义它们的端口,最后定义各种测试行为,包括激励、响应、定时器行为、分支、循环、判定等。测试行为模型采用UML顺序图表示。角色表示测试组件以及被测系统,消息表示测试组件和被测系统之间的收发消息和函数调用。从上到下的位置表示测试动作的顺序。复杂的控制流采用复合片段表示,可以表示分支、循环和引用等。定时器动作需要采用TTCN-3的图形表示方式的定时器动作图元来表示。
[0047]首先将测试模型转化成符合相应Schema的XML文件,然后解析此XML文件,最后将其转换成TTCN-3代码。同时,根据数据模型生成对应的数据实例编辑器,通过在数据实例编辑器中编辑数据,来为TTCN-3数据模块提供具体的测试数据值。
[0048]在实现测试模型向TTCN-3代码的转换中,需要先定义U2TP元模型[I]和TTCN-3元模型之间的映射关系。然后读取测试模型中的元素,把它们转换成对应的XML元素。如果是某个元素的子元素,在XML中也表示成子元素,各模型元素的属性表示为XML属性。对于测试行为模型,各个测试行为之间的先后顺序至关重要,因此需要在XML中保持顺序一致。从XML到TTCN-3代码的转换需要参考TTCN-3核心语言。
[0049]基于上述GMF可视化建模的方法及过程,下面是一个测试网站登录功能的例子。被测系统为校园网站系统。该测试用例为测试系统向校园网站发送用户名与密码,然后根据网站的反馈数据来进行测试判定。以下是基于GMF技术实现可视化建模,最后生成TTCN-3代码的验证。
[0050]测试配置模型如图4所示,描述了一个测试系统中的测试组件,其中包含了三个测试组件 Client, NS, rootDNS (DNS, Domain Name System,域名系统),以及被测系统 SUT,三个测试组件各有一个接口,分别与被测系统的三个接口相连。DNSPort (DNS接口)描述了一种接口类型,三个测试接口均是这种类型。
[0051]测试行为模型如图5所示,描述了一个测试系统中的测试用例,其中包含三个测试组件和一个被测系统。首先主测试组件Client向被测系统发送了一个消息queryA,然后开始计时,引用另一个测试场景rootDNSQuery。之后是一个分支,根据从测试组件收到的消息进行判断:第一个分支,如果收到responseA,则停止计时并判定为通过;第二个分支,如果收到others,则停止计时并判定为不通过;第三个分支,如果未受到消息而定时器超时,则判定为无结论。MTC (Main Test Component,主要测试成分),PTC (Parallel TestComponent o并行测试成分)。
[0052]各测试模型及数据实例编辑器均以XML文件形式保存。在生成TTCN-3代码前,定义了与TTCN-3代码各个组成部分——对应的XML Schema,以符合此XML Schema定义的XML文件作为生成TTCN-3代码的中介。
[0053]模型驱动测试是新型的测试方法,弥补了自动化测试的些许弱点。本专利申请旨在将GMF可视化建模的技术应用到模型驱动测试领域,借助Eclipse的插件机制,在Eclipse平台下开发图形化的应用程序。实现了测试系统的可视化建模和TTCN-3测试脚本的自动生成。本专利申请简要叙述了 GMF模型编辑器的开发过程,测试系统元模型的定义,包括测试数据元模型、测试配置元模型和测试行为元模型。详细说明了测试系统可视化建模的实现过程,包括基于GMF构造可视化建模工具,在其上对测试数据、测试配置及测试行为进行建模。通过测试数据模型,生成数据实例编辑器,最后测试模型转换成符合相应Schema的XML文件,再解析此XML文件来生成相应的TTNC-3代码。实验中的例子直观的展现了测试系统可视化建模的过程及结果。
[0054]本专利申请创新点:将GMF可视化建模技术应用到自动化测试领域,测试系统的可视化建模,以及GMF模型编辑器的开发,和测试脚本的自动生成的实现。
【权利要求】
1.一种基于GMF的可视化建模平台,其特征在于:该可视化建模平台包括有存储/加载层、模型层、控制器层和视图层: 所述存储/加载层:模型存储器支持模型存储功能,可同时存储模型的语义信息和图形信息;模型加载器可将存储的模型的语义信息和图形信息加载到系统中,以供用户修改和编辑; 所述模型层:位于模型层的是模型元素语义对象;语义对象仅维护与建模元素语义相关的信息,而不关心其图形化表示,如其图符形状、颜色、大小及布局等; 所述视图层:位于视图层的是模型元素图形对象;图形对象维护与建模元素图形显示相关的信息,如上文中的图符形状、颜色、大小、坐标位置等; 所述控制器层:在模型视图控制器模式中,模型元素语义对象与其图形化表示之间不能直接相互操纵,而是通过位于二者之间的控制器来完成。
2.根据权利要求1所述的基于GMF的可视化建模平台,其特征在于:该云测试服务平台的功能测试采用基于GMF测试框架进行开发扩展。
3.根据权利要求1所述的基于GMF的可视化建模平台,其特征在于:控制器的主要作用包括:(1)接收视图层的消息,对模型层进行相应的处理;例如用户拟在一个模型元素中加入一个子模型元素,需要由控制器将发生在父模型元素图形对象上的用户鼠标点击事件解析为相应的创建子元素请求,并根据请求,在父模型元素的语义对象中创建子模型元素;(2)将模型层的改变反映到视图层;如在父模型元素的语义对象中添加一个子模型元素的语义对象后,需要由控制器为子模型元素创建相应的图形对象,在视图中进行显示。
4.根据权利要求1所述的基于GMF的可视化建模平台,其特征在于:用GMF生成图形编辑器应用程序需要以下一些主要步骤: (1).创建一个GMF工程; (2).创建一个领域模型,以表示模型的语义,定义了那些由编辑器管理的一些非图形化的信息;领域模型保存在以.ecore为后缀的文件中;其定义方式类似于统一建模语言类图,以类表示单个的模型元素,以关联等表示模型元素之间的关系; (3).创建一个图形定义模型;该模型定义了编辑器中显示的各种图形元素;可指定其显示的形状、颜色、大小以及布局方式等;图形定义保存在以.gmfgraph为后缀的文件中; (4).创建工具定义模型,该模型用于定义工具栏、菜单栏中要显示的各种图形元素;工具定乂保存在以.gmftool为后缀的文件中; (5).在创建了领域模型、图形定义和工具定义之后,创建映射模型;映射模型将领域模型中的元素与其图形定义和工具定义关联起来;映射模型保存在以.gmfmap为后缀的文件中; (6).然后,由映射模型创建生成器模型;生成器模型中包含了映射模型中的信息; (7).最后,由生成器模型可生成模型编辑器的具体实现代码;生成的模型编辑器也以eclipse平台下的插件存在。
【文档编号】G06F9/44GK104317559SQ201410422931
【公开日】2015年1月28日 申请日期:2014年8月26日 优先权日:2014年8月26日
【发明者】张大华, 方帅, 谢迎军, 纪鑫, 李哲, 陈相舟, 常亮, 丁辉, 刁倩, 魏郡, 韩龙, 董慧博, 刘月林, 黄娜 申请人:国家电网公司, 中国电力科学研究院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1