没有合适的资源?快使用搜索试试~ 我知道了~
理论计算机科学电子笔记109(2004)31-42www.elsevier.com/locate/entcs用AGG实现UML元模型转换马丁·戈戈尔a2部德国不来梅大学计算机摘要在本文中,我们工作的UML元模型上的等价转换为具体的图形转换中实现的AGG工具。 我们考虑两个例子操纵的UML模型的静态结构,即一个关联类转换成三元关联和三元关联转换成三个二元关联。 我们讨论了技术细节和利弊的方法,并很快推出了工作在MDA的上下文中关键词:AGG,图转换,模型驱动架构,平台无关模型,平台特定模型,UML。1介绍统一建模语言[16]已被广泛接受为建模和文档化软件系统的标准UML包括许多用于描述软件工件的特定方面的图表形式。图的形式可以根据它们是用来描述结构方面还是行为方面来划分。从一个基本的观点来看,UML的一个核心成分是对象约束语言(OCL)(见[20,3,18]),它接近于一阶谓词演算,但它声称容易被“普通业务或系统建模者”应用1 电子邮件地址:green@tzi.de2电子邮件地址:gogolla@tzi.de1571-0661 © 2004 Elsevier B. V.根据CC BY-NC-ND许可证开放访问。doi:10.1016/j.entcs.2004.02.05432F. Büttner,M.Gogolla/理论计算机科学电子笔记109(2004)31根据目标平台的不同,并不是UML中所有可用的构造都可以直接实现。模型驱动架构(MDA,见[15,2])通过引入显式的“平台独立模型”(PIM)和“平台特定模型”(PSM)来解决这个问题理想情况下,PSM应该可以自动从PIM导出。这种PIM到PSM的转换可以用[12,5]中介绍在本文中,我们使用AGG(属性图语法)工具[11,5,19,1]详细阐述了UML元模型上[GR 01]的等价转换转换修改模型的静态结构:一个转换用三元关联替换关联类,另一个用二元关联替换三元关联。因为关联类和三元关联都不存在于诸如Java或C++这样的命令式编程语言中,我们相信像我们这样的静态结构转换可能是PIM到PSM转换的一个常见部分。AGG工具是免费的Java软件,提供图形用户界面和库界面,可能有助于开发人员进行此类转换。[9]提出了一个元可编程转换工具(GReAT),它也可以用来实现我们的转换。本文件的结构如下:图2显示了我们如何处理关联类到三元关联的转换第3节展示了我们如何处理三元关联到二元关联的转换。最后,我们与一些一般性的评论和意见节。四、2替换关联类图1显示了将关联类转换为三元关联的一般思想:左侧的关联类A被分成A类和右侧的三元关联RA。图2中示出了应用该变换的示例。由于UML中多重性的特殊语义(见[16,6]),左边的多重性约束不能转移到右边。相反,它们必须被重新表述为OCL类不变量(多重性1和多重性2)。我们还需要确保A的实例不在C1和C2的不同实例对之间共享(不变量非共享),并且每对(c1,c2)最多与一个A实例连接(由重数0表示)。1、A的作用)。F. Büttner,M.Gogolla/理论计算机科学电子笔记109(2004)3133−inv多重性1:inv多重性2:公司雇主员工人数1. 31. 100员工→规模≤100人公司雇主员工→规模≥1,雇主→规模≥1,r作业雇主→尺寸≤3员工人数工作0.. 1个未共享的inv:工作工资工作工资雇主→大小=1,employee →size=1inv多重性1:inv多重性2:rc2→ size≥ lc2,rc2→尺寸≤ hc2rc1→尺寸≤ hc1rc1→ size≥ lc1,RAC1rc 1lc 1..HC1RC2lc 2..HC2C2C1联合报告1RC2C2一X一个0.. 1一Xinvunshared:rc2→size=1rc1→size=1,Fig. 1. 用三元关联图二. 转换示例图三. UML元模型2.1实现为AGG图形转换规则为了将这种转换实现为图转换,我们需要在Meta级别上将其公式化。为了简单起见,我们只使用UML 1.5元模型的摘录,如图3所示。所提出的考虑以类似的方式延续到UML 2.0。本质上,一个关联是由至少两个关联端建立的,而一个类是由属性建立的。所有模型元素都有名称。关联端有一个多重性下限和一个多重性上限。在我们的简化元模型中,多重性边界由整数值属性表示。我们将无限上限(“*”)编码为1。约束可以附着到所有模型图元。约束元素的body属性是一个布尔OCL表达式,它必须在所有有效状态下都为trueAGG图变换规则由左手和右手两部分组成34F. Büttner,M.Gogolla/理论计算机科学电子笔记109(2004)31见图4。AGG系统边图,两边节点(和边)之间的映射态射,以及一组“负应用条件”(NAC)。AGG系统的屏幕截图如图4所示:在左手边,项目的树视图显示了工作图和存在的规则在右上角,可以找到选定的规则,在右下角,显示了实际具有NAC的规则由三个图形显示(NAC,左侧,右侧),没有NAC的规则由两个图形显示。节点标签前面的数字表示规则的态射。图4中的工作曲线图对应于图4中示例的左手侧。二、名为“associationclass-2-ternaryassociation”的主要转换规则表示元对象的节点被描绘为框。“存根”(将在下面解释)是不表示元对象的帮助节点,被描绘为椭圆形。要应用该规则,左侧的AssociationClass节点必须在工作图中匹配。这可以通过AGG的“地图”模式来完成,该模式可通过上下文菜单获得。该规则实际上是通过单击工具栏中的“删除”按钮来执行的F. Büttner,M.Gogolla/理论计算机科学电子笔记109(2004)3135图五. 主图变换规则见图6。 为类部件2.2存根、辅助节点和解列“存根”节点从何而来? 由于元类AssociationClass是Association和Class的子类,因此它从Class继承了一组特征(属性),并从Asso- ciation继承了一组连接(AssociationEnds)。图1中的转换用类和关联替换了关联类。因此,就图形转换而言,必须删除一个节点(AssociationClass节点),并创建两个节点(Associ- ation节点和Class节点)。在此转换过程中,必须断开连接到AssociationClass节点的Attributes并将其附加到新创建的Class节点。因为这不能用AGG图转换规则直接表示,所以在应用该规则之前必须进行一些准备。首先,我们创建一个Stub节点并将其附加到AssociationClass。在图6中描述了该规则否定应用条件“no stub exists”确保任何AssociationClass节点都没有多个stub。在附加存根之后,所有属性都可以从AssociationClass移动到存根。相应的规则7 .第一次会议。通过重复应用“stub-attributes”将所有属性移动到存根之后36F. Büttner,M.Gogolla/理论计算机科学电子笔记109(2004)31∗见图7。 将一个属性从AssociationClass移动到存根见图8。 将属性从存根移动到类三元群丛该规则将左侧的两个AssociationEnd节点附加到新创建的Association节点,并将Stub节点附加到新创建的Class节点。最后,Class节点通过一个新的AssociationEnd节点连接到Association-当然,因为我们将二元关联转换为三元关联。图1中的三个OCL约束在必要时作为约束节点插入。约束文本通过字符串连接构造,并分配给约束节点的最后,在应用规则之后,属性必须通过反复应用规则“unstub-attributes”(图8)和最后“unstub- class”(图8)来9)。总之,我们执行图的整个转换1通过按以下顺序应用规则stub-associationclass,tub-attributes,associationclass-2-ternaryassociation,untub-attributestubs,untub-class值 得 一 提 的 是 , 如 果 仍 有 连 接 到 要 替 换 的 AssociationClass 节 点 的Attributes,则不能应用“associationclass-2-ternaryassociation”。这是因为AGG不允许默认的悬挂边。删除仍具有属性的AssociationClass节点将留下悬空的F. Büttner,M.Gogolla/理论计算机科学电子笔记109(2004)3137A→forAll(a|B →forAll(b|l≤ C → select(c|R →存在(r|R. a= a和r。b= b和r。c=c))→大小和C→选择(c|R →存在(r|R. a= a和r。b= b和r。c=c))→尺寸≤h))一一RBB一一RBBc l..HCCCinv关系:(r1. a= r2。A和R1。b= r2。B和R1。c = r2。c)意味着r1=r2)R→forAll(r1,r2|一一RBB一ar1RRC 1CR b1BCC图9.第九条。从类中删除存根见图10。 用OCL约束见图11。 将三元关联替换为三个二元关联3替换三元关联用三个二元关联替换三元关联涉及两个等价规则图10中描绘了总体构思。这个等价必须使用三次,然后第二个等价规则,如图11所示,可以应用于用三个二元关联替换三元关联(现在没有多重性限制):左手边的关联R被一个类R和右手边的三个新关联替换需要额外的不变关系来确保没有两个不同的R对象具有相同的(A,B,C)臂。这种关联行为在UML 1.5中是强制性的,在UML2.0中将是默认的对应的AGG规则这些规则的适用顺序如下:替换-三元-多重性 *,三元-2-二进制38F. Büttner,M.Gogolla/理论计算机科学电子笔记109(2004)31图12个。三元关联图重数替换的图变换规则图13岁替换三元关联的图变换规则为了应用如果我们把本节中的例子与第一个例子结合起来,我们可以用二元关联连 续 地 替 换 关 联 类 。 在 这 种 情 况 下 , 必 须 应 用 一 次 “replace-trim-multiplicities”来替换0。1的多重性由图5的右手侧引入。图14示出了来自图14的示例。4、所有的转换后。F. Büttner,M.Gogolla/理论计算机科学电子笔记109(2004)3139图14. 应用所有转换4备注和今后的工作在本文中,我们研究了UML元模型上的图转换的适用性我们的元模型转换,表示等价规则,原则上可以在两个方向上使用:(A)从具有“较高”概念的语言到具有“较低”概念的语言,例如,在图1中从左到右的方向上,以及(B)从具有“较低”概念的语言到具有“较高”概念的语言,例如,在图1中从右到左的方向上。在MDA的上下文中,我们在这里集中讨论的情况(A)可以被视为PIM到PSM的转换,情况(B)可以被视为PSM到PIM的转换。然而,我们观察到,当在像AGG这样的具体图形转换工具中实现时,像图1中那样的草图,简单的转换变得更加复杂。单个概念转换必须用附加的节点种类 来 实 现 , 即 , stub 节 点 , 并 使 用 ad-transformations ( 如 “ad-associationclass”)。如果基于代数方法的图变换工具能够通过让用户具有完整变换单元(具有以特定顺序应用的附加节点种类和内部规则)表现得像单个变换的印象来向变换的用户隐藏这些附加细节,这将是很好的,如[10]中所示。在我们的方法中,我们以一种朴素的方式表示实际的OCL约束作为单个String属性。因此,在没有进一步考虑的情况下,40F. Büttner,M.Gogolla/理论计算机科学电子笔记109(2004)31在应用转换规则时可能会变得格式不正确虽然预先存在的OCL表达式在应用我们的第一个变换后仍然保持良好的格式,但在应用第二个变换时,它们可能会变得格式不良例如,OCL表达式a.b(A的一个实例)在图11的左侧是良构的,但在右侧变成了病态的。事实上,它应该被右手边的a.r.b取代。在当前阶段,这种校正必须在应用某些变换之后手动执行在即将到来的OCL 2.0/UML 2.0规范中,将会有一个OCL元模型。使用UML2.0元模型,OCL约束可以用图表示,OCL约束的转换可以用图转换表示。因此,可以解决OCL表达式的上述问题。然而,当OCL约束以图形的形式出现时,模型转换是否仍然可以以直观的方式使用还有待观察。尽管如此,我们认为我们的方法已经适用于现实世界中的PIM到PSM转换。像Dresden OCL编译器[7]这样的工具可以用来在命令式编程语言中实现在转换过程中生成的OCL约束。[17]中解释的另一种方法使用面向方面的编程(AOP)来生成与用户生成的代码交织在一起,在运行时验证OCL约束我们的方法与MDA领域的现有工作有什么关系?OMG已经发布了一个针对(MOF 2.0)模型的查询、视图和转换(QVT)的提案请求[13]。DSTC、IBM和CBOP提交的第一个修订版QVT [4]使用了一种基于转换元模型的declarative specification语言进行转换。虽然他们提出了转换的文本表示,但他们明确提到他们赞成有许多具体的语法,包括图形语法。我们已经证明,本文中使用的那种变换可以非常直观地表示为图变换。如何将图形语法映射到[4]的转换模型还有待观察。为 了 评 估 我 们 的 方 法 与 常 见 的 UML 案 例 工 具 ( 如 Rational Rose ,ArgoUML或Poseidon)的集成,我们目前正在将AGG与Java元数据接口(JMI,[8])相结合。这样,我们就可以直接在UML模型上应用图转换从技术上讲,我们定义了一个映射,允许将元模型实例(由JMI表示)视为AGG图。UML模型可以作为XMI文件从案例工具中导出和导入[14],或者在ArgoUML的情况后一种情况是可行的,因为ArgoUML使用了一个符合JMI的元数据存储库。 我们设想在ArgoUML中包含一个可扩展的插件,F. Büttner,M.Gogolla/理论计算机科学电子笔记109(2004)3141变换单元)。感谢匿名推荐人提供的有用意见。引用[1] AGG网站。 http://tfs.cs.tu-berlin.de/agg,2003年11月[2] 维姆·巴斯特·安妮卡·克莱普乔斯·沃默MDA解释说。模型驱动架构的实践和承诺。Addison-Wesley,2003年。[3] Tony Clark和Jos Warmer,编辑。OCL对象建模:对象约束语言,LNCS第2263卷。施普林格,2002年。[4] DSTC、IBM和CBOP。MOF查询/视图/转换。2003年第一次订正呈件。[5] Hart mutEhrig,GregorEngels,Hans-JüorgKre owski,andGrzegorzRoze nberg,editors. 图文法与图变换计算手册,第2卷:应用、语言与工具。世界科学,新加坡,1999年。[6] GonzaloG'enova,JuanLlorens,andPalomaMart'ınez.UML中三元关联中最小多重性的语义MartinGogolla和Cris Kobryn,编辑,UML 2001-统一建模语言。建模语言、概念和工具。第四届国际会议,加拿大多伦多,2001年10月,会议记录,LNCS第2185卷,第329-341页。Springer,2001年。[GR01] Martin Gogolla和Mark Richters。用OCL表示UML类图属性。在Tony Clark和Jos Warmer的编辑中,使用OCL进行对象建模的进展,第86施普林格,柏林,LNCS 2263,2001年。[7] Heinrich Hussmann,Birgit Demuth,and Frank Finger.支持OCL的工具集的模块化架构。Science of Computer Programming,44(1):51[8] Java Metadata Interface(JMI)specification,2002年3月。Java Specification Request#40-Specification Lead by Unisys Corporation. http://jcp.org/en/jsr/detail? id=40。[9] Gabor Karsai,Aditya Agarwal,and Akos Ledeczi.元模型驱动的mda过程及其工具。JeanBezivin和Martin Gogolla,编辑,Proceedings 2nd UML Workshop in Software ModelEngineering(WiSMEhttp://www.metamodel.com/wisme-2003/网站。[10] Hans-JüorgKreowski和SabineKusk e.具有交互语义的图形变换单元Formal Aspects ofComputing,11(6):690[11] 迈克尔·卢韦和马丁·贝耶。代数图重写的一种实现. 重写技术和应用,计算机科学讲义第690卷,第451-456页。Springer-Verlag,1993.[12] M. L?w e,M. KorKang,A. 瓦格纳属性图变换的一个代数框架Ronan Sleep,RinusPlasmeijer和Marko van Eekelen,编辑,术语图重写:理论与实践,第185约翰·威利,纽约,1993。[13] MOF 2.0查询/视图/转换rfp。技术报告,对象管理组,2002年。[14] XML Metadata Interchange(XMI)Specification,v1.2.技术报告,对象管理组,2002年3月。[15] Model Driven Architecture网站 http://www.omg.org/mda,2003年3月。[16] 统一建模语言规范1.5版。技术报告,对象管理组,2003年3月。42F. Büttner,M.Gogolla/理论计算机科学电子笔记109(2004)31[17] 马克·里希特和马丁·戈戈拉。面向对象的UML和OCL约束监控。 在Omar Aldawud、Mohamed Kande、Grady Booch、Bill Harrison、Dominik Stein、Je Gray、SiobhanClarke、Aida Zakaria、Peri Tarr和Faisal Akkawi的编辑中,Proc.UML '2003 Workshop使用UML进行面向对象的软件开发。 伊利诺伊理工学院,计算机科学系,http://www.cs.iit.edu/~oaldawud/AOM/index.htm,2003年。[18] 马克·里克特。验证UML模型和OCL约束的精确方法。博士论文,Uni versit?atBremen,LogosVerlag,Berlin,BISSMonographs,No. 2002年14日。[19] 加布里埃莱·坦策代数图变换工具环境。In M.纳格尔,A. S chürr和M. Mu?nch,editors,ApplicationsofGraphTransformationwithIndustrialRelevance:International Workshop,AGTIVESpringer-Verlag Heidelberg,2000.[20] 乔斯·沃默和安妮卡·克莱普对象约束语言:用UML精确建模。Addison-Wesley,1998年。
下载后可阅读完整内容,剩余1页未读,立即下载
![application/pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/default.jpg!1)
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
会员权益专享
最新资源
- 京瓷TASKalfa系列维修手册:安全与操作指南
- 小波变换在视频压缩中的应用
- Microsoft OfficeXP详解:WordXP、ExcelXP和PowerPointXP
- 雀巢在线媒介投放策划:门户网站与广告效果分析
- 用友NC-V56供应链功能升级详解(84页)
- 计算机病毒与防御策略探索
- 企业网NAT技术实践:2022年部署互联网出口策略
- 软件测试面试必备:概念、原则与常见问题解析
- 2022年Windows IIS服务器内外网配置详解与Serv-U FTP服务器安装
- 中国联通:企业级ICT转型与创新实践
- C#图形图像编程深入解析:GDI+与多媒体应用
- Xilinx AXI Interconnect v2.1用户指南
- DIY编程电缆全攻略:接口类型与自制指南
- 电脑维护与硬盘数据恢复指南
- 计算机网络技术专业剖析:人才培养与改革
- 量化多因子指数增强策略:微观视角的实证分析
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)