无忧论文网
当前位置: 无忧论文网 > 自然科学论文 > 计算机科学论文 > JAVA论文 > 浅议有关MDA模型转换工具
点击提交论文指导需求
高薪诚聘老师
浅议有关MDA模型转换工具
时间:2011-01-23 浏览次数:930次 无忧论文网
点击这里在线咨询我

摘 要  模型驱动架构MDA (ModelDriven Architecture)是由OMG提出的,用于解决企业间应用集成问题的软件开发方法。自提出以来,MDA方法得到很多软件供应商和研究人员的强力支持,在工业界和学术界出现了很多支持MDA开发方法的模型转换工具。这些工具使用了不同技术和实现方法,各有千秋。这些工具的出现有力地促进了MDA开发方法的发展。从模型描述方法、模型转换方法和模型转换工具在软件生命周期中的位置等三个方面分析比较了当前流行的MDA模型转换工具。根据这些分析结果,进一步讨论了MDA模型转换工具的发展前景,并指出了进一步改进MDA模型转换工具的研究方向。
关键词  MDA MDA工具 模型转换

0 引 言

在信息技术高速发展的今天,人们需要开发的系统日益复杂,而且牵涉到的领域也越来越广。开发者必须掌握许多不同的技术、架构和协议,通过复杂的实现,才能将来自于业务领域的需求转换成为最终解决方案。如何最大限度地降低开发风险、提高效率、快速实现不同应用系统之间的互操作是当今软件开发面临的问题。而将业务逻辑模型与底层实现平台分离是解决这个问题的可行思路,同时也将成为一种趋势[ 1 ]。
MDA模型驱动体系架构正是OMG组织为了应对业务和技术的快速变化提出的一种开放的、供应商中立的软件开发方法[ 2 ]。MDA将业务/应用逻辑和底层实现平台分开,将应用系统使用结构化的方法定义成:计算无关模型(CIM) 、平台无关模型( P IM)和平台相关模型( PSM) 。开发者可以针对不同实现技术与平台制定多种映射规则,然后使用这些映射规则及辅助的模型转换工具在不同层次的模型之间进行转换,不断求精直至形成最终代码。本论文由无忧论文网www.51lunwen.net整理提供
OMG只定义了MDA的规范、标准和开发原则,MDA工具的具体实现则需要各个软件供应商或研究组织完成。这就造成了各个工具开发者对于MDA工具的实现有各自的理解。现今的MDA工具很多,它们使用的模型表述方式、模型转换方法等各不相同。本文从三个方面对这些MDA工具进行比较和评价,指出了MDA工具的可改进之处和进一步的研究方向。

1 MDA工具的评价标准

1. 1 工具使用的模型和原模型

MDA的基本思想是将模型作为软件开发工程中的核心制品。在MDA 中, 模型是系统的部分功能、结构和行为的表现[ 2 ]。同时,模型的表述和存储方法也会间接决定模型转换的方法和类型。评价一个MDA工具时,我们首先需要考虑的就是MDA工具描述模型和元模型的方法。MDA是由OMG组织提出的,所以OMG组织倡导使用UML作为模型的表示工具,同时OMG还提供了Profile的标准扩充机制,用于扩充UML 的表述能力。从语法角度来看,模型是由它的元模型定义的,通过元模型定义新模型也成为一部分开发者的选择。

1. 2 模型转换方法

MDA模型转换工具的另一个重要因素是模型转换方法,这也是评价一个MDA工具的重要标准。以一个或多个源模型作为输入,产生一个或多个目标模型作为输出,将一个模型转换到另一模型的过程叫做模型转换[ 3 ] 。根据转换结果,模型转换方法主要分为模型到代码的转换和模型到模型的转换;用于逆向软件工程的工具还要考虑到根据代码生成模型。

1. 3 在软件生命周期中的位置

在MDA标准的最初草稿中, OMG组织就提出:MDA的要点之一是能覆盖软件生命周期的全过程,包括分析、设计、编码(测试,构建或者集成)与部署/管理[ 2 ]。因此一个MDA工具覆盖了整个软件生命周期的哪些部分是我们评价该工具的又一个标准。我们把软件生命周期简单地划分为四个阶段:需求分析、设计、实现/代码的生成和验证测试[ 6 ]。当前的MDA工具主要关注实现/代码生成阶段,对于其它阶段的支持还有所缺陷。

2 MDA工具的介绍

这里将介绍一些具有代表性、在学术和工业界流行的模型驱动工具或工具研发项目。我们将按照先前提到的三个标准对它们进行评述。本论文由无忧论文网www.51lunwen.net整理提供

2. 1 EclipseM odeling Project

Eclip seModeling Project[ 7 ]是Eclip se社区中专注于模型开发技术的项目,它提供了统一的模型框架、工具和实现标准。有许多的开源和商业工具是在其的一些子项目的基础上实现的。所以我们首先介绍这个项目:
Eclip se Modeling Project 采用了EMF ( Eclip se ModelingFramework) [ 8 ]作为元模型。EMF是基于OMG组织的MOF[ 4 ]规约实现的,可以被认为是对于MOF AP I的核心子集的高效Java实现。EMF模型的元模型本身也是EMF模型。为了避免混淆,MOF规范中的元元模型在EMF中被称作Ecore。EMF用XM I作为模型的规范存储格式。用户可以自定义生成和编辑EMF格式的模型。
Eclip seModeling Project有两个子项目,分别是实现模型到代码转换的M2T (Model2To2Text) [ 9 ]和实现模型到模型转换的M2M (Model2To2Model) [ 10 ]。M2T项目提供了遵循行业标准和Eclip se标准的实现引擎,包括有一些语法模板式转换语言(如JET, xPand,MTL) 。M2M项目包含了一个名为ATL ( the AtlasTransformation Language) [ 10 ]的子项目。ATL 是根据MOF /QVF标准制定的模型间转换语言。它是一种说明式( declarative[ 4 ] )和命令式( imperative[ 4 ] )混合的转换语言。
利用EMF、M2T、M2M,用户可以快速地构建模型,同时这个框架也提供了一部分模型查询、模型转换和验证的功能。除了需求分析阶段, Eclip seModeling Project中的各个工具基本上实现了对于整个软件生命周期的支持。

2. 2 AndroMDA

AndroMDA[ 11 ]是一个开源的代码生成框架MDA工具。最新的版本中, AndroMDA 以插件的形式集成在Eclip se中,所以AndroMDA中模型和元模型的管理采用了Eclip se的EMF。同时这个工具支持以XM I的标准格式导入和导出模型。
AndroMDA中,模型到模型转换采用了Eclip se的ATL来描述转换规则,而模型到代码转换采用MOFScrip t描述( Eclip se开源社区下的GMT[ 12 ]项目。该项目已经提交给了OMG组织,成为元模型到代码转换的RFP的候选方案之一) 。在代码生成过程中,AndroMDA采用了具有可扩展能力的Cartridges[ 11 ] 。用户可以通过丰富的Cartridges,生成Java、J2EE、. Net等平台上的代码,也可以用Cartridges创建自己的代码转换规则。
AndroMDA的主要功能在模型到代码的转换和对模型的验证,不支持需求分析和模型设计方面的功能。

2. 3 OpenArch itectureWare

OpenArchitectureWare[ 13 ]也是辅助代码框架的生成工具。OpenArchitectureWare完全基于Eclip se,采用EMF的方式存储模型数据,也可以导入各种UML建模工具生成的模型数据。
OpenArchitectureWare中模型到模型的转换采用了它自己定义的XTend,而模型到代码的转换同样采用了模板转换语言Xpand。OpenArchitectureWare只能生成Java、J2EE等固定种类的代码。同时OpenArchitectureWare有着很强的工作流引擎,可以自己定义和组合模型转换的步骤。本论文由无忧论文网www.51lunwen.net整理提供
OpenArchitectureWare完美地集成在Eclip se 中,可以通过Eclip se的GMF ( GraphicalModeling Framework)进行模型设计,加上模型转换和EMF验证技术的运用,支持了大部分软件开发周期过程。

2. 4 ArcStyler

在ArcStyler[ 14 ]中,模型遵循UML1. 4的标准,以XM I的形式存储。这个工具还能够导入其它建模工具以XM I格式存储的模型,或者从现有的J2SE和J2EE代码中生成模型(ArcStyler中叫做harvesting) 。
ArcStyler没有明确区分P IM 和PSM,它的PSM 是通过在P IM基础上增添标记得到的。ArcStyler中的模型到代码的转换采用了Cartridges技术(与AndroMDA相似) 。ArcStyler支持转换到Java、EJB、. Net等各种平台。
ArcStyler与上面的几个开源工具不同,它提供了一个完整的集成开发环境,从而提供了从分析、设计、开发、部署,到管理的全生命周期支持。

2. 5 Optima lJ

Op timalJ[ 15 ]以XM I的格式存储模型,也支持各种UML模型的导入和导出。在Op timalJ中,模型被精确定义成三个层次,分别是领域模型、应用模型和代码模型,分别对应于P IM、PSM和生成代码。Op timalJ 是按照J2EE平台建模的,转换目标平台为J2EE。本论文由无忧论文网www.51lunwen.net整理提供
Op timalJ 采用模板模式语言TPL ( Temp late Pattern Language) [ 15 ]来描述转换,其中模型到模型的转换通过technology pattern实现,而模型到代码的转换通过imp lementation pattern实现。用户也可以通过TPL自己编写转换规则。Op timalJ的一个很大的特点是支持代码和模型的同步,确保了模型和代码的一致性。
从某种意义上说, Op timalJ 可以对软件生命期的验证阶段提供部分支持。但和上面很多工具一样,它不支持需求分析阶段的设计。

2. 6 IBM Ra tiona l Software Arch itect

RSA (Rational Software Architect) [ 16 ]是IBM软件开发平台的一部分。RSA 的实现架构基于Eclip se 3. 0、EMF和UML2。所以模型和元模型描述都是以EMF为基础的。
RSA提供了一个功能强大、易于扩展的模型转换框架,框架中包括了一个基于规则的模型转换引擎。基于该框架,用户可以很方便地定义模型转换规则,实现各种模型之间的转换。同时RSA 还预装了一些常用的模型转换方法, 包括UML2JAVA、UML2CPP、UML2EJB。
RSA作为IBM软件开发平台的一部分,主要用于设计和代码的转换生成。同时,它也很好地支持了模型和代码之间的同步。

3 对模型转换工具发展的讨论与展望

可以看出,现有的工具都支持基于UML模型以及元模型层次上的建模。模型存储的格式也遵照OMG组织的XM I格式,这给不同工具提供了统一的结构,方便模型的交换和导入/出。运用UML Profile构建模型优点在于:易于实现和移植,实现比较简单,工具使用者很容易上手。使用MOF 或基于MOF的EMF来构建模型的优点在于:开发者和使用者都可以根据规范定义特定的模型,特别是建立领域专用语言DSL (Domain2Specific Language)并用于定义领域相关模型。同时随着Eclip se的发展和流行,越来越多的模型驱动工具(特别是开源工具)选择Eclip se作为IDE,或者集成到Eclip se中。以EMF作为模型框架已经成为一种趋势,也将进一步促进EMF的发展。
从模型转换角度来看,由于OMG组织只是对QVT做出了提案,并没有最终制定完整的规范,所以各个工具的模型转换方法有很大差别。文献[ 5 ]给出了模型到代码和模型到模型转换的分类标准。对于模型到代码的转换,转换方法主要有基于观察者的方式和基于模板的方式。相比基于观察者的方式,模板的结构更接近于代码,所以很多工具采用后一种转换方法。本论文由无忧论文网www.51lunwen.net整理提供模型到模型的转换则更加复杂,一般分为了直接操作方法、基于关系的方法、基于图形转换方法、结构驱动方法和混合式方法。Op timalJ的TPL就使用了结构驱动的方法,用户只需要设计出转换规则就可以实现转换;而ATL则使用了混合的方法,对于不同复杂度的模型采用不同的转换方法。在代码生成方面,当前的MDA工具基本上只能生成代码框架或部分代码。这个不足使得软件开发者不得不同时处理模型和代码,不能完全避免手工编码工作。使MDA开发过程不需要手工编写代码是学术界和工业界中MDA工具研究今后重要目标之一。
所有的工具主要关注功能性建模和模型转换。当前还没有工具真正支持非功能性属性的建模和转换。非功能性属性包括性能、安全性、可靠性、可用性、互用性等属性。虽然随着面向方面技术的发展,面向方面的语言已经被工业界接受。但在大规模项目中依然很少运用面向方面的技术,主要原因在于仅仅依靠面向方面语言不能支持从需求分析到实现的整个软件开发过程[ 22 ]。MDA方法正好可以弥补这个不足,在抽象模型的层次上支持面向方面的软件开发过程。要实现面向方面的MDA开发方法,就需要用模型来表示、分析和验证非功能属性的需求。从建模角度来看,主要的问题是怎样建立表示非功能属性的模型。已有的研究工作可以分为基于UML Profiles建模的方法[ 17 - 19 ] ,和基于MOF建模的方法[ 20, 21 ]。对于前一种方法,由于UML Profile的标准不够完善,所以不能支持一些特殊的非功能属性(如对称合成规则)的建模。后一种方法比较复杂,需要对元模型进行形式化的定义和验证,至今还没有一个完整的理论基础。同时随着模型驱动开发方法的不断进化,特别是在非功能属性建模被引入开发中之后,仅考虑模型转换的工具已经不能完全满足模型管理的需要,必须引入另一种称为模型编织的方法。模型编织的目的是把不同模型中的元素连接起来[ 20 ] 。这种方法比模型转换更加复杂,目前尚处于研究阶段。
大多数模型转换工具都致力于模型转换和代码生成,也就是设计和代码实现部分。很少有工具支持需求分析阶段;虽然有工具能够支持验证和测试阶段,它们关注的主要是生成的模型是否符合元模型的规范(比如EMF中的验证框架) ,不能对更加复杂的性质进行验证和测试。MDA工具应该在整个软件生命周期发挥更大的作用。在需求阶段,领域相关的非技术人员需要有可视化的模型来完成需求分析,MDA工具应该可以将需求模型转换成设计阶段的P IM模型的原型。在有些情况下,在模型上进行测试验证要比在代码上进行测试更加方便。而且在模型上进行测试也有利于在软件开发早期对系统进行验证。MDA工具的测试验证功能应该考虑模型测试用例的生成、转换和一致性验证等一系列问题。同时对于整个MDA架构,转换的正确性以及部分模型或代码被修改后系统的完整性、一致性都需要通过验证工具保证。对于模型驱动测试和验证,我们所在的研究组也进行了相应的研究工作,包括基于活动图测试案例的自动生成和基于时序图、状态机图的验证。今后随着MDA工具的发展,我们还需要考虑软件生命周期中的部署/管理阶段。有种观点认为:“可能永远不能用一个MDA工具来支持软件开发生命周期的全过程。”[ 23 ]。因此,通过不同工具之间协作更容易达到覆盖整个生命周期的目的。但是当前各个工具的模型的语义描述不够精确,这使得一个工具生成的模型不能在语义层次上被另一个工具准确理解。将数学方法引入MDA工具的研究,精确定义各个模型的语义也是一个很重要的研究方向。

4 结束语
MDA工具在近几年发展十分迅速,诸多MDA工具的出现为软件开发带来了很大的便利。软件开发正在向以模型为中心的方式发展。同时我们也要看到现在的MDA工具依然存在着转换功能局限、自动化不高、代码生成不够完整、难以覆盖整个软件开发生命周期等问题。随着OMG组织的标准的进一步完善,以及模型转换QVT标准的最后制定,MDA工具的研发将有更大的发展。面向方面的软件开发方法的发展、对非功能属性建模的需求也对MDA工具提出了更高的期望。我们可以预见,虽然MDA工具的研发取得了很多成果,这类工具还有很大的发展空间。Eclip se开源社区中Eclip se Modeling Project项目的流行和快速发展也给MDA工具的研发带来了启示和帮助。以Eclip se为开发平台和EMF为元模型的开发工具将会成为今后工具的主流框架之一。

参考文献
[ 1 ] Perron P J. J2EE构建企业系统专家级解决方案[M ]. 张志伟,译.北京:清华大学出版社, 2002.
[ 2 ] Omg. Mda Specification. http: / /www. omg. org.
[ 3 ] 林炜,夏宽理. 基于MDA的模型转换方法研究[ J ]. 计算机工程与应用, 2005, 41 (2) .
[ 4 ] Omg. Mof 2. 0 Query/Views/Transformation RTP. OMG document: ad /2002 - 04 - 10, 2002.
[ 5 ] Czamecki K, Halsen S. Classification ofModel Transformation App roaches. OOPSLA’03 Workshop on Generative Techniques in the Context ofModel2Driven Architecture, 2003.
[ 6 ] Kevin L. Tools Support forModel Driven; Both Commercial Products and Scientific Prototypes. University of Zurich, Switzerland, 2007.
[ 7 ] Eclip se Foundation. Eclip se Modeling Project Overview. http: / /www.eclip se. org/modeling.本论文由无忧论文网www.51lunwen.net整理提供
[ 8 ] Eclip se Foundation. The Eclip se Modeling Framework ( EMF) Overview. http: / /www. eclip se. org/ emf.
[ 9 ] Eclip se Foundation. TheModel to Text (M2T) p roject. http: / /www. eclip se. org/modeling/m2 t/.
[ 10 ] Eclip se Foundation. The Model to Model (M2M) p roject. http: / /www. eclip se. org/modeling/m2m /.
[ 11 ] AndroMDA. Document forAndroMDA. http: / /www. andromda. org/.
[ 12 ] Eclip se Foundation. The Generative Modeling Technologies Project(GMT) . http: / /www. eclip se. org/gmt/.
[ 13 ] OpenArchitectureWare Corporation. oAW4 Eclip se Integration. http: / /www. eclip se. org/gmt/oaw /.
[ 14 ] Interactive Object Corporation. ArcStyler. http: / /www. interactive2objects. com /p roducts/ arcstyler.
[ 15 ] Compuware Corporation. Op timalJ p roduct. http: / /www. compuware.com /p roducts/op timalj/.
[ 16 ] Ibm Corporation. Ibm Rational Software Architecture. http: / /www306. ibm. com / software / awdtools/ architect/ swarchitect/.
[ 17 ] Aldawud O, Elrad T,Bader A. Uml p rofile for aspect2oriented software development. In Proc. of 3 rd Int. Workshop on Aom, Aosd 2003, Boston,USA, 2003.
[ 18 ] Stein D, Hanenberg S, Unland R. A Uml2based aspect2oriented design notation for AspectJ. In Proc. of AOSD ’02, Enschede, The Netherlands, 2002: 1062112.
[ 19 ] Zakaria A A, Hosny H, Zeid A. A uml extension dormodeling aspect2o2 riented systems. In Proc. ofWorkshop on AOM with UML, UML’02,Dresden, Germany, 2002.
[ 20 ] Fuentes L, Sanchez P. A generic MOF metamodel for aspect2oriented modeling. Spain: University ofMalaga, 2006.
[ 21 ] Suzuki J, Yamamoto Y. Extending uml with aspects, Aspect support in the design phase, In Proc. of 3 rd AOPWorkshop, ECOOP’99,Lisbon,Portugal, June 1999.
[ 22 ] DidonetDel FabroM,Bézivin J, Jouault F, et al. AMW: a genericmodel weaver. In Proceedings of the 1ère Journée sur l′Ingénierie Dirigée par les Modèles ( IDM ’05 ) . Paris, France, June 2005. Sébastien Gérard, Jean2Marie Favre, Pierre2Alain Muller, Xavier Blanc, Editors Paris, Paris, France , 2005: 105 114.
[ 23 ] Lewis GA,MeyersB C,Wallnau K. Workshop onModel2Driven Architecture and Program Generation. Software Engineering Institute of CarnegieMellon University, 2006.

关于我们 | 老师招聘 | 版权声明 | 联系我们 | 付款方式 | 返回顶部 | 

COPYRIGHT ©2001 - 2013 51LUNWEN.NET. ALL RIGHTS RESERVED.
【免责声明】:本网站所提供的信息资源如有侵权、违规,请及时告知
无忧论文网提供毕业论文指导 硕士论文指导服务