没有合适的资源?快使用搜索试试~ 我知道了~
理论计算机科学电子笔记152(2006)111-123www.elsevier.com/locate/entcs基于元模型的面向抽象约束的La′szl′oL en gy el,Tiham′erL ev endovs zky,G ergelyM ezei,Bertalan Forstner,Hassan Charaf1布达佩斯技术经济大学自动化与应用信息学系1111Budapest,Hungary摘要模型转换是指将转换过程开始时可用的输入模型转换为输出模型。一种广泛使用的模型转换方法使用图重写作为底层转换技术。 在图形语言的情况下,如统一建模语言(UML),唯一的拓扑匹配是不够的。为了精确地定义可视化模型拓扑之外的转换步骤,必须指定额外的约束,以确保属性或其他属性的正确性。处理OCL约束为这些未解决的问题提供了解决方案,因为拓扑和属性转换方法不能执行和表达可以通过约束验证来解决的问题。在建模中使用OCL作为约束和查询语言是必不可少的。我们已经证明,它也可以应用于模型变换。通常,在转换中的许多不同位置重复应用相同的约束。 以模块化的方式描述一个共同的约束将是有益的, 指定适用的地点。本文提出了转换规则中的横切约束问题,并给出了一个面向方面的解决方案,该方案使得约束的定义与转换步骤分离,并便于将其传播分配指定给图转换规则。 为了说明这个概念- 实际结果,还提供了一个案例研究,介绍了(i)我们的方法如何从资源模型和状态图中生成移动平台的用户界面处理程序源代码,以及(ii)如何在转换步骤中使用面向方面的约束来验证特定属性。关键词:基于元模型的模型转换规则,横切约束,面向对象的约束,约束编织,OCL,VMTS1电子邮件:{lengyel,tihamer,gmezei,cyberci,hassan}@aut. bme。胡1571-0661 © 2006 Elsevier B. V.在CC BY-NC-ND许可下开放访问。doi:10.1016/j.entcs.2005.10.020112L. Lengyel等人理论计算机科学电子笔记152(2006)1111引言OMG一个完整的MDA应用程序由一个明确的平台无关模型(PIM)、一个或多个平台特定模型(PSM)和完整的实现组成,每个平台上都有一个应用程序开发人员决定支持的实现。平台无关的工件主要是UML和其他软件模型,包含足够的规范,可以由所谓的模型编译器自动生成平台相关的工件。因此,软件模型转换为模型编译器提供了基础,模型编译器在MDA体系结构中起着核心作用软件工程中对可视化语言(VL)的需求日益增加(例如,统一建模语言(UML;领域特定语言(DSL))需要更复杂的图表语言转换机制。虽然这些虚拟L通常可以用带标签的有向图建模,但单个软件工程模型所特有的复杂属性依赖性不能用这种通用模型来处理。然而,通常仅基于拓扑信息来变换图是不够的,我们希望通过其他属性来限制期望的匹配例如,我们想要匹配一个具有特殊整数类型属性的节点,其值在4和12之间。以前的工作[15]已经表明,如果基于元模型的转换规范允许将OCL[17]约束分配给各个转换步骤,则可以使规则与软件工程模型更相关。因为这些约束被绑定到重写规则,所以它们能够表达由规则约束的宿主图区域的局部约束。这种方法本质上是一种局部构造,因为没有出现在图转换中的元素不能直接包含在OCL语句中。虽然规范具有这种局部性质,但这并不意味着验证它们不涉及检查输入图中的其他图元素:算法和转换用户都需要考虑约束传播。在转换步骤中登记的OCL约束将检查规则的匹配实例通常,同一个约束被重复地应用在转换中的许多不同的地方,因此横切了转换步骤。面向方面的软件开发(AOSD)[2]提供了一种新的技术来处理关注点分离(SoC),它专注于横切。AOSD的方法促进了系统中横切关注点的模块化。各方面可能出现在软件开发生命周期的任何阶段(例如,需求、规范、设计和实现)。L. Lengyel等人理论计算机科学电子笔记152(2006)111113横切关注点的范围可以从高级别的安全概念到低级别的概念,如缓存。此外,功能性需求(如业务规则)和非功能性需求(如事务)也可以用方面表示。AOSD开始于软件开发生命周期的编程级别,在过去的十年中,已经引入了几种面向方面的编程语言(例如,AOSD J [3])。面向方面的编程消除了编程语言级的横切关注点,但面向方面的技术也必须适用于更高的抽象级别。以模块化的方式描述一个公共约束,并将其自动传播到适当的地方[12] [13]。本文提出了一种面向方面的方法,提出了一种解决方案,以消除横切关注的约束的转换规则。我们的方法提供了单独指定约束的可能性,并将它们分配给模型转换规则。2背景及相关工作图重写[21]是一个强大的图形转换工具,具有很强的数学背景。图变换的原子是重写规则,每个重写规则由左手边图(LHS)和右手边图(RHS)组成。应用图重写规则意味着在应用该规则的图(主图)中找到LHS的同构出现(匹配),并用RHS替换这个子图。更换意味着移除LHS中但不在RHS中的元件,并粘合RHS中但不在LHS中的模型可以被认为是特殊的图,其中包含节点和它们之间的边这种数学背景使得将模型视为标记图并使用图重写将图变换算法应用于模型成为可能[15]。以前的工作[15]介绍了一种方法,其中规则的LHS和RHS是从元模型元素构建这意味着LHS的实例化必须在宿主图中而不是在LHS的同构子图中找到。LHS和RHS节点被称为模式规则节点(PRN)。对象约束语言(OCL)[17]是一种用于软件系统分析和设计的形式化语言。 它是UML标准[18]它允许软件开发人员在对象模型上编写约束和查询约束是对面向对象模型或系统的一个或多个值的限制:操作的前提条件是在操作将要执行时必须为真的限制。类似地,操作的后置条件是必须为真的限制114L. Lengyel等人理论计算机科学电子笔记152(2006)111在这个行动刚刚结束的时刻。面向对象编程(AOP)[6]是基于这样一种思想,即计算机系统通过单独指定系统的各种横切关注点来更好地编程。然后,程序依赖于底层AOP环境的机制,它将分离的部分编织或组合成一个连贯的程序。AOP将分散的关注点视为第一类元素,并将它们从对象结构中水平弹出[6]。如果一个关注点的代码与其他结构化元素纠缠在一起,那么它就会变得一团糟。为了改善这个问题,AOP引入了方面的概念:超越子例程和继承的机制,用于本地化横切关注点的表达。AOP系统还提供了一些机制,用于将方面和基本代码编织到一个连贯的系统中。[7]中介绍了一种面向方面的方法,用于包含约束的软件模型,其中主要的分解是基于物理系统的功能层次结构。这种方法提供了一个单独的模块来指定约束及其传播。一种新型的方面用于向织入者提供执行传播所需的信息:策略方面。策略方面提供了一个钩子,编织者可以调用它来处理特定于节点的约束传播。可视化建模和转换系统(VMTS)[26]是一个n层多用途建模和基于元模型的转换系统。使用这个环境,可以很容易地编辑元模型,根据它们的元模型设计模型,并使用图重写转换模型[15]。此外,VMTS便于在元模型实例化期间检查元模型包含的约束,并验证所登记的约束在图形转换过程中重写规则[11]。VMTS的基于元模型的约束检查方法得益于形式语言的数学背景、图重写和基于元模型的软件模型转换相关研究的结果。它还结合了来自以下环境的几个想法。GReAT框架[8] [9] [23]是一个基于元建模和图重写概念的领域特定语言(DSL)转换系统。其属性转换由专有的属性映射语言指定。GReAT规则的LHS可以包含OCL约束以细化你头巾的图案PROGRES [19][20][22]是一种可视化编程语言,因为它具有面向图形的数据模型和图形语法,用于其最重要的语言结构。在PROGRES中,一个事务的前提条件是一个查询,它应该永远不会失败,应用于周围事务的输入图。类似地,事务的后置条件是查询,L. Lengyel等人理论计算机科学电子笔记152(2006)111115应用于周围事务的输出图永远不会失败它还可以访问其事务的输入和输出参数。属性图语法(Attributed Graph Grammar,AGG)[1] [5] [24]是一个基于Java的可视化编程环境。它还应用了AGG语言中的文本元素。“可视化编程”是通过图形重写来执行的。约束可以通过视觉或文本来指定。Java中提供了文本约束表达式3问题陈述分配给重写规则的前置条件是在重写规则被触发时必须为真的布尔表达式,并且分配给重写规则的后置条件是在重写规则完成之后必须为真的布尔表达式。如果重写规则的前提条件不为真,则重写规则失败而不被触发。如果重写规则的后置条件在执行重写规则之后不为真,则重写规则失败。 这一点的直接推论是,LHS中的OCL表达式是重写规则的先决条件,而RHS中的OCL表达式是重写规则的后置条件本文通过一个简单的案例研究,讨论了基于元模型的重写规则中横切约束的概念,并提出了一个应用面向方面技术的解决方案。通过实例分析,介绍了VMTS如何从资源模型和状态图生成移动平台的源代码,并应用基于图重写的转换方法。此外,我们还介绍了它如何使用重写规则中列出的OCL约束来验证特定属性。 这种方法的目的是,如果状态图被详细指定,那么生成的代码将处理由资源模型描述的用户界面。图1介绍了案例研究的框图。案例研究的输入是描述用户界面的资源模型和表示资源模型操作的状态图。使用VMTS资源和状态图建模语言[26],使用VMTS自适应建模器准备输入模型。这些模型表示电影票应用程序用户界面的资源和操作,该界面用于移动平台上使用蜂窝电话订购电影票。资源模型(图2)-基于资源元模型[26]创建,它是一个Do- mainSpeci-fic Model-包含一个带有必要控件(Page,ButtonBar,Menu,MenuItem,RadioButtonList和Slider)的表单。表格的不完整统计图表也在图中给出. 2、只有5个事件116L. Lengyel等人理论计算机科学电子笔记152(2006)111Fig. 1. 案例研究在rblCinema SelectedItemChanged上、在miAddOrder OnClick上、在miSendOrders OnClick上、在miEditOrder OnClick上和在rblFilmTitleSelectedItemChanged上。完整的状态图太大,无法在这里展示,但可以在[26]中找到更多细节。在案例研究中,事件所需的操作很简单,可以用一对一的处理程序状态进行建模,但我们通常必须使用多个状态来建模行为一个事件[14]。图二. VMTS实例研究中的资源模型和状态图VMTS可视化模型处理器(VMTS VMP)使用图形重写处理输入模型:(i)从状态图VMTS为每个事件处理程序生成CodeDOM树[15]。CodeDOM树是源代码的模型表示。这意味着代码生成是一个语法树组合,.NET Framework [25]从其中生成L. Lengyel等人理论计算机科学电子笔记152(2006)111117使用System.CodeDom命名空间的源代码(ii)资源模型被转换为另一个代表XML文件的模型,并包含与用户界面相关的所有信息。在XML文件中,也有事件处理函数的源代码片段的标记。因此,转换的最后一步是将生成的源代码合并到生成的XML文件中。这种转换和合并的结果也是一个XML文件,它是XML2C [26]应用程序的输入,我们使用它来生成Symbian平台的C++源代码。生成的源代码使用Simplian类目录,并在基于Symbian OS的蜂窝电话上运行(图1)。 XML2C工具和Simplian类目录是Simplian框架的一部分,它使Symbian平台的编程变得更容易。一般来说,转换包括几个步骤,通常不仅需要转换规则,而且需要整个转换来验证,保持或保证某个属性。为了满足这一期望,所有的改造-必须考虑采取措施。如果定义一个约束对于多个变换步骤或对于整个变换,则相同的约束可以在每个变换步骤中出现多次,因此该约束横切整个变换。 其修改和删除是不一致的,因为这样的操作必须在约束的所有发生器上执行。此外,当复杂约束分散在变换规则的众多PRN中时,通常很难估计复杂约束的效果[12][13]。图3描述了我们用来将资源模型转换为XML的两个重写步骤的转换。我们要求第一个重写规则只匹配那些没有生成XML模型的控件(HasXML = false)。如果第一步成功完成转换,则另一个节点将HasXML属性的值设置为true。第二个转换只包含LHS图,其目标是检查第一步检查的控件的HasXML属性是否为真。如果第二步可以匹配所需的子图,则转换成功,这意味着(i)每个匹配的控件都有一个生成的XML,以及(ii)转换产生了有效的和期望的结果。虽然,两个规则是相似的,第一个规则的目的是转换,但第二个规则的目的是通过约束检查进行验证。第二个推论非常重要。转换包含使用约束正确指定的步骤,并且已经为输入模型成功执行了转换因此,所生成的输出模型与由约束细化的变换步骤所描述的预期结果一致。这意味着建模者118L. Lengyel等人理论计算机科学电子笔记152(2006)111图3.第三章。分散约束下资源到XML转换的重写规则创建适当的转换步骤,并使用约束(前置条件和后置条件)完全指定它们,然后如果转换的执行成功完成。因此,它会产生有效的结果。在重写规则中,我们可以将LHS元素连接到RHS元素。LHS和RHS元素之间的这种关系称为因果关系[8],这有助于将操作分配给这种连接。因果关系可以表示LHS元素的修改或删除,以及RHS元素的创建。在图3中,伤亡情况列于表格中。创建操作和属性转换由XSL脚本完成。XSL脚本可以访问与LHS元素匹配的对象的属性,并为因果关系指向的RHS元素生成一组属性。VMTS将模型存储为带标签的图,每个节点和每条边都有一个属性XML,其中包含模型元素的属性。在当前的案例研究中,VMTS重写引擎将匹配状态和边的属性XML连接起来,并将结果用作XSL脚本的输入[15]。关于图3所示的变换的未决问题是L. Lengyel等人理论计算机科学电子笔记152(2006)111119相同的约束出现多次并横切规则。4方面化转换约束直接将约束分配给规则的缺点[11]可以在重写规则中的许多缠结约束中看到我们需要一个机制来分离这种关注。在将约束从PRN中分离出来之后,需要一个织入器方法来促进约束到PRN(转换步骤的元素)的传播全局约束编织(GCW)算法[12]被传递一个具有可选数量的变换步骤和约束列表的变换GCW算法将约束传播到变换步骤所包含的PRN这种方法意味着我们的新方法使用AO技术管理约束[12]。与方面类似,约束被指定并独立于任何图重写规则或PRN存储,并通过全局约束编织器链接到PRN。GCW基于PRN的类型来选择PRN。织入器的输出不存储为新的重写规则;结果表示为约束和转换规则之间的链接。这个环节被称为编织配置。图4展示了我们的带有面向方面约束的转换。约束不直接链接到PRN,虚线表示由约束编织器自动创建的约束分配。图四、面向方面约束的资源到XML转换的重写规则为了总结AO约束的主要思想,我们可以说,120L. Lengyel等人理论计算机科学电子笔记152(2006)111可以单独创建约束和重写规则-并且在编织器的帮助下-约束可以基于它们的类型信息传播到转换步骤所包含的PRN。案例研究的第二个转换使用状态图模型(图1)。2)作为输入模型,并应用图中所示的重写规则五、在重写规则中,LHS图使用状态图元模型的元元素[18][26],RHS图使用CodeDOM元模型的元元素在重写规则的左侧,有两个对应于状态图状态的状态,并且它们之间有一个0..* 的转换。目标国家的多样性。这意味着将此重写规则穷尽地应用于状态图模型,它将所有状态与其目标相邻状态相匹配。规则必须匹配可访问的相邻状态,因为我们需要它们来生成到源代码中当然,一个状态可能没有传出的转换,我们在多重性中启用0的原因是我们希望匹配只有传入转换的状态,以便为它们生成CodeDOM树。如上所述,代码生成意味着语法树生成(CodeDOM树),框架从该语法树生成C++源代码。图五、 状态图到XML转换的重写规则完整的案例研究请参见[26]。在本例中,约束适度地分散在模型中,但情况可能更糟。假设我们有一个包含几个(10个或更多)转换步骤的转换,这些步骤修改Person类型对象的属性,我们希望转换L. Lengyel等人理论计算机科学电子笔记152(2006)111121验证Person的年龄属性始终小于200(Person.age200)。<如果约束是为Person类型的所有PRN定义的,那么转换肯定会保留此属性。这意味着约束可以在每个转换步骤中出现多次,因此约束横切整个转换。5总结使用OCL约束扩展基于元模型的转换步骤,使转换足够复杂,可以解析带有可选条件的图表。我们发现重写问题的根源通常与缺乏对横切关注点模块化的支持有关。由于我们对基于元模型的转换过程采用了面向方面的方法,因此可以观察到,我们的转换步骤的可维护性和可理解性以及附加的约束都得到了提高本文结合一个实例分析了重写规则中的横切约束问题,并提出了一种面向方面约束的指定和存储独立于任何图重写规则,它们通过编织器链接到模式规则节点算法在基于元模型的模型转换中,面向方面的约束管理最重要的好处如下:(i)相同的约束不会重复出现在许多不同的地方,(ii)一致的约束修改,简单的约束删除。(iii)此外,重写规则不必知道约束,创建重写规则的建模者也不必知道约束。根据AOSD原则,重写规则可以在有或没有约束的情况下面向方面的约束管理并没有取代传统的约束分配,而是扩展了基于元模型的模型转换框架中约束处理的可能性。面向方面的约束管理的主要局限性是它需要比一般方法更多的预处理步骤。我们必须分别定义约束和重写规则,然后指定约束到转换步骤的传播。引用[1] 属性图语法系统(AGG)主页,http://tfs.cs.tu-berlin.de/agg122L. Lengyel等人理论计算机科学电子笔记152(2006)111[2] AOSD 主页,http://www.aosd.net/[3] 《ANOJ编程指南》,http://www.aspectj.org[4] Leigh Edwards et al:Developing Series60 Applications.Addison-Wesley,2004年。[5] H. Ehrig , G. Engels , H-J. Kreowski , G.Rozemberg ( ed. ) ,“Handbook on GraphGrammars and Computing by Graph Transformation:Application,Languages and Tools”,Vol.2.世界科学,新加坡,1999年。[6] Robert E.陈文,[7] Je Gray、Ted Bapty、Sandeep Neema和James Tuck,“处理横切约束在领域特定建模87比93[8] Gabor Karsai , Aditya Agrawal , Feng Shi , Jonathan Sprinkle , On the Use of GraphTransformation in the Formal Specification of Model Interpreters , Journal of UniversalComputer Science,Special issue on Formal Specification of CBS,2003。[9] Gabor Karsai和Aditya Agrawal,[10] 陈文辉,[11] L. Lengyel,T.Levendovszky,P.Kozma,H.Charaf,48比54[12] L. Lengyel,T.莱文多夫斯基Charaf,119比126[13] L. Lengyel,T.莱文多夫斯基Charaf,41-46.[14] L. Lengyel,T.莱文多夫斯基Charaf,121-130[15] T.莱文多夫斯基湖伦杰尔湾Mezei,H. Charaf,[16] OMG MDA Guide Version 1.0.1,OMG,doc.编号:omg/2003-06-01,2003年6月12日http://www.omg.org/docs/omg/03-06-01.pdf[17] OMG对象约束语言规范(OCL),http://www.omg.org[18] OMG UML 2.0规范,http://www.omg.org/uml/[19] PROGREShttp://mozart.informatik.rwth-aachen.de/research/projects/progres/main.html[20] J. Ree kers,A. S ch?ur,“定义和分析视觉语言”,视觉语言和计算杂志,8,学术出版社,1997年,页。27比55[21] G. Rozenberg ( ed. ) , “Handbook on Graph Grammars and ComputingbyGraphTransformation:L. Lengyel等人理论计算机科学电子笔记152(2006)111123[22] A. Schur?rr, 903,Berlin:Springer-Verlag; June 1994; 151-163.[23] Jonathan Sprinkle,Gabor Karsai,A Domain-Specific Visual Language For Domain ModelEvolution,Journal of Visual Languages and Computing,Vol.号152004年4月 2日[24] Gabriele Taentzer,“AGG:用于建模和验证的图形转换环境的软件”,在J. Pfaltz,M. Nagl和B.Boehlen(eds.), 应用图形转换与工业相关性(AGTIVESpringer LNCS,2004年。[25] Thuan Thai和Hoang Lam,[26] VMTSWeb网址:http://avalon.aut.bme.hu/enantihamer/research/vmts
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功