资源描述:
《浅议有关mda模型转换工具》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、浅议有关MDA模型转换工具-->摘 要 模型驱动架构MDA(ModelDrivenArchitecture)是由OMG提出的,用于解决企业间应用集成问题的软件开发方法。自提出以来,MDA方法得到很多软件供应商和研究人员的强力支持,在工业界和学术界出现了很多支持MDA开发方法的模型转换工具。这些工具使用了不同技术和实现方法,各有千秋。这些工具的出现有力地促进了MDA开发方法的发展。从模型描述方法、模型转换方法和模型转换工具在软件生命周期中的位置等三个方面分析比较了当前流行的MDA模型转换工具。根据这些分析结果,进一步讨
2、论了MDA模型转换工具的发展前景,并指出了进一步改进MDA模型转换工具的研究方向。关键词 MDA MDA工具 模型转换0 引 言在信息技术高速发展的今天,人们需要开发的系统日益复杂,而且牵涉到的领域也越来越广。开发者必须掌握许多不同的技术、架构和协议,通过复杂的实现,才能将来自于业务领域的需求转换成为最终解决方案。如何最大限度地降低开发风险、提高效率、快速实现不同应用系统之间的互操作是当今软件开发面临的问题。而将业务逻辑模型与底层实现平台分离是解决这个问题的可行思路,同时也将成为一种趋势[1]。MDA模型驱动体系架构
3、正是OMG组织为了应对业务和技术的快速变化提出的一种开放的、供应商中立的软件开发方法[2]。MDA将业务/应用逻辑和底层实现平台分开,将应用系统使用结构化的方法定义成:计算无关模型(CIM)、平台无关模型(PIM)和平台相关模型(PSM)。开发者可以针对不同实现技术与平台制定多种映射规则,然后使用这些映射规则及辅助的模型转换工具在不同层次的模型之间进行转换,不断求精直至形成最终代码。本论文由.51luneationLanguage)[10]的子项目。ATL是根据MOF/QVF标准制定的模型间转换语言。它是一种说明式(d
4、eclarative[4])和命令式(imperative[4])混合的转换语言。利用EMF、M2T、M2M,用户可以快速地构建模型,同时这个框架也提供了一部分模型查询、模型转换和验证的功能。除了需求分析阶段,EclipseModelingProject中的各个工具基本上实现了对于整个软件生命周期的支持。2.2 AndroMDAAndroMDA[11]是一个开源的代码生成框架MDA工具。最新的版本中,AndroMDA以插件的形式集成在Eclipse中,所以AndroMDA中模型和元模型的管理采用了Eclipse的EMF
5、。同时这个工具支持以XMI的标准格式导入和导出模型。AndroMDA中,模型到模型转换采用了Eclipse的ATL来描述转换规则,而模型到代码转换采用MOFScript描述(Eclipse开源社区下的GMT[12]项目。该项目已经提交给了OMG组织,成为元模型到代码转换的RFP的候选方案之一)。在代码生成过程中,AndroMDA采用了具有可扩展能力的Cartridges[11]。用户可以通过丰富的Cartridges,生成Java、J2EE、.Net等平台上的代码,也可以用Cart-->ridges创建自己的代码转换规
6、则。AndroMDA的主要功能在模型到代码的转换和对模型的验证,不支持需求分析和模型设计方面的功能。2.3 OpenArchitectureF的方式存储模型数据,也可以导入各种UML建模工具生成的模型数据。OpenArchitectureI的格式存储模型,也支持各种UML模型的导入和导出。在OptimalJ中,模型被精确定义成三个层次,分别是领域模型、应用模型和代码模型,分别对应于PIM、PSM和生成代码。OptimalJ是按照J2EE平台建模的,转换目标平台为J2EE。本论文由.51lunalJ采用模板模式语言TPL
7、(TemplatePatternLanguage)[15]来描述转换,其中模型到模型的转换通过technologypattern实现,而模型到代码的转换通过implementationpattern实现。用户也可以通过TPL自己编写转换规则。OptimalJ的一个很大的特点是支持代码和模型的同步,确保了模型和代码的一致性。从某种意义上说,OptimalJ可以对软件生命期的验证阶段提供部分支持。但和上面很多工具一样,它不支持需求分析阶段的设计。2.6 IBMRationalSoftain2SpecificLanguage
8、)并用于定义领域相关模型。同时随着Eclipse的发展和流行,越来越多的模型驱动工具(特别是开源工具)选择Eclipse作为IDE,或者集成到Eclipse中。以EMF作为模型框架已经成为一种趋势,也将进一步促进EMF的发展。从模型转换角度来看,由于OMG组织只是对QVT做出了提案,并没有最终制定完整的规范,所以各个工具的模型转换