没有合适的资源?快使用搜索试试~ 我知道了~
理论计算机科学电子笔记152(2006)83-96www.elsevier.com/locate/entcsMOLA工具支持Audris Kalnins1,Edgars Celms2,3,AgrisSostaks4IMCs拉脱维亚里加大学摘要本文介绍了支持模型转换语言MOLA的MOLA工具。MOLA工具由两部分组成:MOLA定义环境和MOLA执行环境。MOLA定义环境基于GMF(通用建模框架),包含元模型和MOLA图的图形编辑器,以及MOLA编译器。MOLA执行环境的主要组件是一个MOLA虚拟机,它使用SQL数据库作为存储库执行模型转换。 执行环境可以可以用作基于Eclipse的建模工具的插件(例如,IBM RationalRSA)。现状是真正的学术。保留字:模型转换,MDD,MOLA,MOLA工具。1引言如果没有合适的工具,实际使用模型驱动开发(MDD)来构建系统是MDA和MDD的原则已经有相当长的一段时间了,一些模型转换语言,包括新兴的OMG标准(QVT-Merge)[15]已经得到了一定的宣传。然而,真正可用的MDD工具很少. 在撰写本文时,支持MDD的可用商业工具(OptimalJ[14],ArcStyler[2],Objecteering[13]等)对于特定类型的PSM(通常,1Email:Audris. 我是Kalnins@mii。卢。Lv2Email:Edgars. Celms@mii. 卢。Lv3个由ESF4Email:agr ee @os. Lv1571-0661 © 2006 Elsevier B. V.在CC BY-NC-ND许可下开放访问。doi:10.1016/j.entcs.2006.01.01684A. Kalnins等人理论计算机科学电子笔记152(2006)83J2EE)和特定的设计方法,但是修改所使用的默认模型转换与扩展传统建模工具一样困难-在大多数情况下,传统的OOP语言用于定义转换。另一方面,实验性的模型转换工具- ATL[3],MTF[12],Teflon [16]等,主要基于Eclipse EMF并使用各种(主要是文本)转换语言,与模型提供者-建模工具没有很好的联系。本文描述了拉脱维亚大学正在开发的支持图形模型转换语言MOLA [7]的学术MOLA工具。设计的目标是有一个简单的实现,尽管如此,它在MDD上下文中实际上是可用的。描述了该工具的结构和主要原理,以及它与建模工具的联系。更详细地介绍了如何将MOLA执行环境链接到基于Eclipse EMF 的建模工具。通过一个案例研究-MDD 原则在基于Hibernate框架的IS设计中的应用,说明了这一点。2 MOLA简介MOLA工具基于拉脱维亚大学IMCS开发的MOLA模型转换语言[7,8,9,10]。MOLA是一种图形过程转换语言。它的主要特点是先进的图形模式定义和控制结构取自传统的结构化编程。为了便于理解,我们简要回顾了MOLA的主要概念。像大多数模型转换语言一样,MOLA基于源和目标元模型,它们分别描述源和目标模型。使用的元建模语言是EMOF [11](有一些轻微的限制)。在MOLA中,源元模型和目标元模型组合在一个类图中,但是包可以用于结构化。源和目标可能重合。链接源和目标元模型中相应类的特殊映射关联它们的作用类似于其他转换语言中的关系--用于构造转换和记录转换可跟踪性。变换本身由一个或多个MOLA图定义(参见图6和图7中的示例)。MOLA图是一系列由箭头连接的图形语句。 MOLA图中最常用的语句是FOREACH循环-一个粗线矩形。一个循环有一个循环头(一个灰色圆角矩形),它包含循环变量(粗体元素)- 一个类,循环必须遍历它的实例 此外,本发明还提供了一种方法,A. Kalnins等人理论计算机科学电子笔记152(2006)8385循环头包含一个模式,该模式指定哪些实例适合给定循环。模式是一个元模型片段,但在实例表示法中-元素名:类名,因此类可以重复。链接只对应于元模型关联。一个模式元素可以包含一个基于属性的约束--OCL子集中的一个表达式。循环的语义是非常自然的--必须对循环变量的所有实例执行循环,对于这些实例,存在满足其约束的其他模式元素的实例,并通过指定的链接(纯存在)进行语义学)。循环可以是嵌套的,在父循环中匹配的循环变量(和其他元素)的实例可以在嵌套循环中通过引用符号引用-以@字符为前缀的元素名称另一种图形语句是规则(也是灰色圆角矩形),它也包含模式,但没有循环变量。规则通常包含操作-元素或关联建立(红色虚线)和删除(虚线)。规则在其控制路径中执行一次(如果模式匹配)或根本不执行-因此它也扮演了if语句的角色。循环头也可以包含动作。MOLA子程序由call语句调用(可能带有参数)。使用MOLA(主要在学术环境中-从本科生到博士生)的一年经验证实了其易于学习和定义转换的高可读性-特别是与当前的QVT合并提案[15]相比。实际上,现在使用的图形化模型转换语言相当多-除了图形化形式的QVT-Merge,Fujaba Story diagrams(SDM)[6]和基于GME的GReAT符号[1]被使用。在所有这些方法中,模式定义工具的强度大致相同,包括MOLA。在定义规则控制结构方面存在差异,Fujaba方法是最接近MOLA的方法,但结构化程度较低,而GReAT更多地基于数据流。实际上,我们[7]中已经给出了MOLA与其他语言的更全面的比较3 MOLA工具的架构当前版本的MOLA工具主要是为了学术目的而开发的-测试MOLA的可用性,教授MDD在软件系统开发中的使用,并执行一些实际实验。这影响了一些设计要求,尽管该工具以简单易用为目标之一,并具有足够的效率,但已证实其作为工业工具的潜力86A. Kalnins等人理论计算机科学电子笔记152(2006)83也与大多数模型转换工具一样,MOLA工具有两个部分- 转换定义环境(TDE)和转换执行环境(TEE)。这两种环境都有一个公共的存储库,用于存储转换、元模型和模型(以运行时格式)。图1显示了该工具的总体架构定义环境与MOF分类中的元模型级别M2相关。它的目标用户是提供元模型并定义可以自动化的开发步骤转换的方法论专家。由于MOLA是一种图形化语言,TDE是一套图形化编辑器,建立在GMF [4]的基础上,GMF是一种基于通用元模型的建模框架,由拉脱维亚大学IMCS与Exigen公司共同开发。执行环境(与M1级别相关)旨在供系统开发人员使用,他们根据选定的MDD方法执行自动化开发步骤并获得相关的目标模型。目前有两种形式的TEE可用。 更接近于工业用途的形式是Eclipse插件,它可以用作UML的转换插件2.0建模工具,包括商业IBM Rational工具RSA。第5节详细描述了这种用途,并在案例研究中进行了演示。另一种形式是更实验性的。它基于GMF作为通用建模环境,旨在用于各种特定领域的建模和设计符号。第6节对此进行了更详细的描述图1显示了MOLA工具的组件(圆角矩形)和使用的数据对象(矩形)。除了传统的类图符号外,箭头表示可能的数据流。MOLA运行时存储库中的数据对象被注释为表,因为它是基于SQLA. Kalnins等人理论计算机科学电子笔记152(2006)8387图1. MOLA工具环境架构。现在,我们来谈谈MOLA TDE。它包含用于类图(EMOF级别)和MOLA图的图形编辑器。源元模型和目标元模型以及可能的映射关联都显示在同一个类关系图中。转化通常由几个MOLA图描述,其中一个是主要的。由于图形编辑器是在GMF的基础上实现的,因此具有专业的图形化质量,包括元素的自动布局。除了编辑器之外,TDE还包含MOLA编译器,该编译器执行语法检查并将组合的元模型和MOLA图从GMF存储库格式转换为MOLA运行时存储库格式。图2显示了MOLATDE的屏幕截图,元模型和MOLA图编辑器都打开了。88A. Kalnins等人理论计算机科学电子笔记152(2006)83图2. MOLA TDE的屏幕截图。4 MOLA虚拟机和存储库MOLA TEE的核心是MOLA虚拟机(VM)-执行模型转换的解释器。当然,它与MOLA存储库密切相关,MOLA 存储库的主要功能是确保MOLA VM的效率。实现MOLA VM的最关键因素是模式匹配的实现--这是任何转换实现中最“昂贵”的部分。模型转换工具[3,12,16]通常是在基于Meta模型的存储库上实现的,比如EclipseEMF.这样的实现典型地使用低级别的存储库操作进行模式匹配,并且与其说是解释器,不如说是编译器。本文的作者已经证明[10],这种方式可以实现非常有效的MOLA。然而,对于MOLA的这一学术性实施,设定了另一个目标-实施必须尽可能简单,但仍可用于合理大小的示例,例如,转换包含几百个类的模型因此,采用了另一种解决方案-使用SQL数据库作为A. Kalnins等人理论计算机科学电子笔记152(2006)8389仓库。这个解决方案的主要原理是,一个完整的MOLA模式匹配操作可以通过一个SQL Select语句来实现。此外,这个Select语句可以很容易地从MOLA 模式定义中生成,MOLA 模式定义也存储在SQL 表中,由MOLA编译器以适当的方式生成。因此,MOLA VM将非常接近于纯解释器,因此很简单。其他MOLA元素的实现对存储库格式不那么敏感,因为它是传统控制结构的一个相当经典的实现。也就是说,这些原则用于MOLA VM在此版本的MOLA工具中的实现唯一有待解决的问题是效率。从MOLA模式生成的查询对于标准SQL数据库来说- 它是两个表(表示模型中的类和关联实例)的“自连接”,次数与模式中的元素和链接一样多。并不是所有的数据库引擎都能够令人满意地处理这样的连接。由于希望尽可能地基于开源构建MOLA工具,第一个候选者是MySQL 4.1。然而,它发生的大模式的自连接性能是不令人满意的。另一个候选者是Microsoft SQL(MSDE)和PostgreSQL的免费版本,但它们有另一个严重的性能问题。最后的选择是MySQL 5.0。它表现出相当有效的模式发生在合理的MOLA程序和相当大的例子模型。通过这种方式,实现了简单高效的MOLA VM的既定目标。5作为Eclipse插件的MOLA转换执行环境除了MOLA VM之外,MOLA TEE还必须包含用于获取要转换的源模型并传递转换结果的组件在一个典型的MDD场景中,还必须有一个建模环境,在这个环境中,源模型被准备好,获得的目标模型被进一步处理。在将MOLA转换用作EclipseEMF插件的方法中,假定了这种情况选择这个环境是因为它作为一个模型转换测试平台的流行性,并且因为有一个公开的UML 2.0元模型[17]。除了MOLA VM之外,本例中的MOLA TEE还包含XMI导入组件、XMI导出组件和一个简单的Eclipse 插 件( 参 见图1 中TEE 的 下层 ) 。 XMI 导 入组 件目 前支 持UML2.0元模型的一个合理子集(在其EMF版本中)。XMI导出组件也支持UML2.0的一个子集,但除此之外,还支持EMF中可用的其他一些元模型(例如,SQL数据库90A. Kalnins等人理论计算机科学电子笔记152(2006)83定义元模型)。 插件目前非常简单-它只用于激活TEE并选择源和目标XMI位置以及所需的MOLA转换。源模型必须由Eclipse建模工具导出工具导出,生成的目标模型必须由导入工具导入。目前,这个模式已经用唯一一个真正支持UML 2.0的基于EclipseEMF的专业建模工具--IBM Rational RSA进行了测试一旦更多的基于Eclipse的建模工具支持UML2.0元模型,相同的插件将适用于它们。在撰写本文时,还没有真正的RSA转换插件(嵌入式RSA转换扩展工具需要用Java编码),因此开发的插件也可能具有一些实际意义。当然,一个更用户友好的解决方案是直接通过Eclipse API获取相关的源模型,并以这种方式传递结果,但这种解决方案要复杂得多,并且更多地依赖于特定的建模工具。所提出的解决方案似乎实际上可用于各种MDD风格的开发场景。第7节包含了一个这样的案例研究--一个使用Hibernate持久性框架由于MOLA非常适合模型到模型的转换,但不太适合模型到代码的转换,因此RSA(或其他建模工具)的内置代码生成工具用于此目的。6独立MOLA转换执行环境另一种获得可用的转换执行环境的可能性是将MOLA VM绑定到一个通用建模环境,在该环境中可以支持任意图形化建模符号由于GMF环境[4]就是这样一个环境,另一个MOLA TEE就是基于它的。说实话,Eclipse+EMF+GEF [5]也是这样一个环境,但是那里的开发需要更多的资源。基于GMF的MOLA TEE版本用于各种实验,将MDD和模型转换应用于特定领域的符号,包括非UML符号。图1中TEE的顶层示出了相应的组件。在GMF中,可以将域模型的图形表示定义为一种转换(尽管不是非常通用,更多见[4]),因此对于许多建模注释,可以定义可用的图形编辑器,而无需适当的编程。在任何情况下,Eclipse EMF风格的模型浏览器/编辑器,但更灵活的,可以很容易地用GMF构建。通用元模型控制的出口和进口组件从/到GMF仓库已经建成。这A. Kalnins等人理论计算机科学电子笔记152(2006)8391由于GMF存储库在功能上接近EMOF,因此任务并不那么困难。相关的MOLA转换可以直接从这个环境中调用(MOLA VM用作GMF插件)。已经进行了几次这样的实验在一个案例中,一个UML活动图轮廓(一个复杂的图形化表示)用于在UML中定义工作流程,在GMF中实现,并且在MOLA中定义了一个特定工作流程符号的转换GMF具有自动生成可读图的特殊功能,因此在许多情况下,转换后的目标模型可以自动表示为图。另一个基于转基因食品的实验是将一个特殊的轮廓OWL表示法用于本体定义。7案例研究:使用MOLA工具在Hibernate框架在本节中,我们将展示如何使用Eclipse插件形式的MOLA 工具,在Hibernate持久性框架内,用Java进行MDD风格的信息系统开发该框架提供了Java类和数据库表之间的假设构建模型的建模工具只是一个不平凡的步骤的方法说明。我们假设已经构建了一个PIM --一个以标准UML 2.0类图形式表示的IS域模型(参见图1中的一个小例子)。3)。图3.RSA中带有原型的UML类图(PIM模型)。有些类必须是持久性的-存储在关系数据库中,92A. Kalnins等人理论计算机科学电子笔记152(2006)83tables.这些类采用标准的Hibernate映射,这需要为类的持久属性和关联端添加“标准”Java getter和setter,其他属性和操作未修改。此外,对于每个这样的映射,必须构建Hibernate映射描述器(一个XML文件)。因此,任务是建立一个PSM模型,由三个部分组成-扩展的UML类,数据库模式定义和Hibernate映射描述符。图4.RSA中Hibernate框架的部分类图(PSM模型)。为了在PIM级别充分指定逻辑设计决策,需要一个自定义配置文件(HibernateProfile)。 这个配置文件应该包含构造型persistent(用于类和属性,表示属性或关联结束),PK-用于属性(属性),FK-用于关联结束(属性)和inhPK-用于定义持久化子类的Hibernate风格存储。 如果这些构造型被适当地应用到PIM模型,那么三部分PSM可以通过MOLA转换自动生成-对于每个持久化类,将定义一个表( 包 含 持 久 化 属 性 和 关 联 ) , getter/setter 将 被 添 加 到 类 中,Hibernate描述符将被定义。图图3显示了应用的这些构造型(RSA没有将关联端的构造型可视化)。所有的类都被假定为持久的,但不是所有的属性。PIM中的类通常也应该包含业务操作,为了简洁起见,我们我们还假设主键由一列组成(Hibernate对复杂键使用复杂的映射A. Kalnins等人理论计算机科学电子笔记152(2006)8393图5. RSA中的数据模型可视化(PSM模型)。图4显示了结果的第一个组成部分-更新的类图(片段)。在适当的地方添加了getter和setter,但删除了自定义构造型-RSA不将它们用于代码生成。图5显示了结果的第二个组成部分-数据库模式。该模型是根据EMFSQL元模型构建的,但RSA数据模型可视化特性用于将模式显示为图表。最后,图6和图7显示了MOLA转换的部分-主程序和SQL表的构建。图6. MOLA转换程序(主)。94A. Kalnins等人理论计算机科学电子笔记152(2006)83由于空间不足,未显示元模型。源Meta模型是标准的UML2.0元模型.然而,在EMF中,一种特殊的编码(不是OMG标准,而是通过EAnnotation元类定义的eCore)用于应用的原型。也就是说,这种编码在转换中使用-在UML 2.0中,所应用的原型在模型中显示为实例,因此模型转换必须将它们视为特殊临时元类的实例AddGettersSetters转换(这里没有显示)使用相同的UML元模型作为目标-它是一个更新转换 , 它 只 是 将 新 的 Operation 实 例 附 加 到 现 有 的 Class 实 例 。BuildRDBTable程序(图7)为类构建一个表,然后执行一个循环,为每个持久化属性构建一个列(包括其类型和这个程序的目标元模型是EMF 中的 SQL 元模型, 但是对于 BuildHibernateMapping-从HibernateXML模式定义获得实际上,在MOLA中,所有这些元模型都以一个公共类图的形式出现,但是包被用来分隔它们。相同的包用于指导MOLA工具XMI导出器组件-在这种情况下,必须生成几个单独的XMI文件,但对于Hibernate映射,需要非XMI XML编码A. Kalnins等人理论计算机科学电子笔记152(2006)8395图7. MOLA转换程序(BuildRDBTable)。8结论本文介绍了实验性学术MOLA工具的结构和一些使用情况。使用该工具的现有经验表明,所采用的解决方案是适当的,MOLA转换适合于传统的基于UML的MDD风格开发和特定领域建模。当然,实际工具的可用性必须得到改善,特别是与建模工具的链接。另一个需要解决的问题是MOLA转换没有另一项任务96A. Kalnins等人理论计算机科学电子笔记152(2006)83是为典型的MDD用例构建MOLA转换库引用[1] Agrawal A. G. Karsai,F.石“特定领域模型上的图变换”。技术报告,软件集成系统研究所,范德比尔特大学,ISIS-03-403,2003年[2] ArcStyler网址:http://www.interactive-objects.com/[3] ATL。网址:http://www.sciences.univ-nantes.fr/lina/atl/[4] Celms E.,A.卡尔宁斯湖蕾丝基于元模型映射的图定义工具。第18届国际会议论文集,OOPSLA23比32[5] Eclipse GEF。 网址:http://www.eclipse.org/gef/[6] Fujaba用户文档。网址:http://wwwcs.uni-paderborn.de/cs/fujaba/documents/user/manuals/www.example.com[7] Kalnins A.,J. Barzdins,E.塞尔姆斯模型转换语言MOLA MDAFA 2004会议录(模型驱动架构:基础和应用2004),Linkoeping,瑞典,2004年6月10-11日。pp.14-28.[8] Kalnins A.,J. Barzdins,E.塞尔姆斯模型转换语言MOLA的基础。 ECOOP 2004(MDA背景下的模型转换和执行研讨会),挪威奥斯陆,2004年6月14日至18日。网址:http://heim.ifi.uio.no/janoa/wmdd 2004/papers/[9] Kalnins A.,J. Barzdins,E.塞尔姆斯MOLA语言:方法论草图。EWMDA-2会议记录,坎特伯雷,英格兰,2004年。pp.194-203.[10] Kalnins A.,J. Barzdins,E.塞尔姆斯第19届国际会议,OOPSLA'2004(“模型驱动软件开发的最佳实践”研讨会),加拿大温哥华,2004年10月。网址:http://www.softmetaware.com/oopsla2004/mdsd-workshop.html[11] MOF 2.0核心最终采用规范。网址: http://www.omg.org/docs/ptc/03-10-04.pdf[12] MTF。 网址:http://www.alphaworks.ibm.com/tech/mtf[13] 反对。 网址:http://www.objecteering.com/[14] Optimal J.网址: http://www.compuware.com/products/optimalj/[15] QVT-合并。网址: http://www.omg.org/docs/ad/05-03-02.pdf[16] 替夫卡特网址:http://www.dstc.edu.au/Research/Projects/Pegamento/tefkat/[17] UML 2.0 Eclipse EMF。 网址:http://www.eclipse.org/uml2/
下载后可阅读完整内容,剩余1页未读,立即下载
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)