没有合适的资源?快使用搜索试试~ 我知道了~
模型转换分类法及应用
理论计算机科学电子笔记152(2006)125-142www.elsevier.com/locate/entcs模型转换汤姆男士1软件工程实验室Universit′edeMons-HainautMons,Belgium彼得·范·戈尔普2软件工程中的形式化技术安特卫普大学,比利时摘要本文基于Dagstuhl语言工程研讨会上模型转换工作组的讨论,提出了一种模型转换的分类法。这种分类法可以用来帮助开发人员决定哪种模型转换语言或工具最适合执行特定的模型转换活动。保留字:模型转换,分类法,比较,MDD,MDE1引言模型驱动工程(MDE)是软件工程中的一门学科,它依赖于模型作为第一类实体,旨在通过执行模型转换来开发,维护和发展软件。MDE被各种组织和公司所接受,包括OMG,IBM和Microsoft。 MDE包含各种不同的技术,包括OMG1Ema i l:tom. mens@umh. AC. Be2Ema i l:pieter. v a ngo r p @ u a. AC. B e1571-0661 © 2006 Elsevier B. V.在CC BY-NC-ND许可下开放访问。doi:10.1016/j.entcs.2005.10.021126T. Mens,P.Van Gorp/Electronic Notes in Theoretical Computer Science 152(2006)125软件工厂等等。还有很多可用的工具,如Eclipse生成模型Transformer(GMT)框架、通用建模环境(GME)等等。有关详细概述,请参阅www.planetmde.org在本文中,我们提出了一个分类模型转换。按分类单元划分─omy我们的意思是“命名和组织事物的系统[...]分成具有相似性质的组”(剑桥词典在线)。这样的税收制度可以用于各种各样的目的。其中,它可以帮助软件开发人员选择最适合其需求的特定模型转换方法,它可以帮助工具构建者评估其工具与其他工具相比的优势和劣势,并且它可以帮助科学家识别需要通过改进底层技术和形式主义来克服的工具或技术的局限性。在建议的分类法中的许多想法都是基于2004年Dagstuhl研讨会上的一个工作组的讨论,该研讨会是关于模型驱动软件开发的语言工程。工作组解决了模型转换的各种重要问题,毫无疑问,这是模型驱动软件开发中最受欢迎的方面[1,2]。该小组首先讨论了模型转换的基本特征,以及它们的支持语言和工具。专家组还讨论了现有模型转换方法之间的共性和差异。2定义和示例在对模型转换技术进行分类之前,我们应该了解一些模型驱动的工程定义。我们将通过两个运行的例子来阐明模型和模型转换有几个来源承认,模型是世界上称为系统的一部分的简化表示(或抽象描述)[3,4]。如果模型有助于更好地理解系统,则它是有用的。在工程环境中,如果模型有助于决定需要采取的适当行动以达到和维护系统的目标,则模型是有用的软件的目标是使现实世界中的某些任务自动化。不同抽象层次上的软件需求、结构和行为模型根据这一定义,源代码也是一种模型,因为它是现实世界中自动化任务所需的较低级别机器结构和操作的简化表示。此外,正确的源代码是一个非常有用的模型,因为它告诉机器什么是正确的。T. Mens,P.Van Gorp/Electronic Notes in Theoretical Computer Science 152(2006)125127(一)图1.一、在执行上拉方法转换之前,请先绘制类关系图(一)图二、执行上拉方法转换后的类关系图需要采取措施来维持系统的目标。源代码的设计表示UML图)是有用的模型,如果它们使源代码更容易理解。在构建建模工具时,需要对表达模型的语言的结构和格式良好性规则进行建模。这些模型被称为元模型[5]。拥有精确的元模型是执行自动化模型转换的先决条件。考虑图1中的UML类图1.一、这些图可视化了局域网(LAN)应用程序[6]在执行模型转换之前和之后的静态结构方法bill是从子类PrintServer中提取出来的(参见图2)。1(a))到超类节点(见图。1(b))。作为另一个例子,考虑将分层状态图转换为分层状态图的问题[7]。翻译过程的一部分包括重定向128T. Mens,P.Van Gorp/Electronic Notes in Theoretical Computer Science 152(2006)125图3.第三章。一个层次化的状态图正在转变为一个更简单的状态图。交付过程的例子是受一本流行的UML书的启发[8]。 我们已经调整了这个例子, 只有在尚未发送时才能取消。从复合状态开始的转换,以使这些转换从包含状态开始。如果一个包含状态已经有一个与外部转换具有相同标签的传出转换,那么该包含状态将不会获得额外的传出转换。这就避免了非决定论。图3显示了衰减算法的一个步骤。要完成重定向,还需要重定向到Delivered的转换,并最终删除Active3模型转换分类法根据《剑桥词典》,分类法是“一个有着相似品质的群体”有些分类学,如生物学背景下的物种分类学组织,是等级的,但这不是先决条件。在本文中,我们提出了一个模型转换的分类法,使我们能够分组的工具,技术或形式化模型转换的基础上,他们的共同品质。为了确定这些品质,我们进行了如下工作。下面的每一小节都研究了一个关于模型转换的重要问题,并提出了一些需要考虑的客观标准,以提供对这个问题的具体答案。每个标准都可以用于将模型转换分组在一起T. Mens,P.Van Gorp/Electronic Notes in Theoretical Computer Science 152(2006)125129信息接近满足这个标准。 因此,分类法提供了多维分类,使我们能够根据感兴趣的标准对模型转换方法3.1什么需要转化成什么?第一个重要的问题涉及模型转换的源工件和目标工件。如果这些工件是程序(即,源代码、字节码或机器码),人们使用术语程序转换。如果软件工件是模型,我们使用术语模型转换。根据第2节给出的定义,后一个术语包含前一个术语,因为模型可以从抽象分析表示从更具体的设计模型,到非常具体的源代码模型。因此,模型变换还包括从更抽象的模型到更具体的模型的变换(例如, 从设计到代码)并且反之亦然(例如,在逆向工程环境中)。在代码生成器和解析器等常用工具中,显然需要假设所有程序转换都可以作为模型转换来执行,那么可以根据转换的源模型和目标模型的结构对其进行分类更具体地说,一些系统可以表示为严格的树,而另一些则需要图形表示。请注意,每个图都可以被编码为一个树,其中包含从某些节点到与其子节点不同的节点的引用然而,导航编码为树的图需要(可能很繁琐的)连接操作。在关系数据结构中对图进行编码会导致更多的连接操作,因为树节点和其子节点之间的关系也需要通过引用来表示。因此,应该选择尽可能与系统匹配的技术,而不会牺牲太多的运行时性能。源和目标模型的数量模型转换的第一个显著特征是其源模型和目标模型的数量。 Kleppe等人[9]提供了以下定义模型转换。转换是根据转换定义从源模型自动生成目标模型。转换定义是一组转换规则,它们共同描述了源语言中的模型如何转换为目标语言中的模型。 转换规则是对源语言中的一个或多个结构如何转换为目标语言中的一个或多个结构的描述。 我们建议,这应该是普遍的,因为模型转换也应该适用于多个 源130T. Mens,P.Van Gorp/Electronic Notes in Theoretical Computer Science 152(2006)125模型nPSMnPSM1PSM2合并模型PIM型号1型号2模型和/或多个目标模型。前者的一个例子是模型合并,我们希望将并行开发的多个源模型组合或合并后者的一个例子是采用平台无关模型(PIM)并将其转换为多个平台特定模型(PSM)的转换。这两个例子都示意性地表示在图。四、垂直一对多模型转换水平多对一模型转换图四、模型转换示例技术空间技术空间[10]是一个模型管理框架,包含与特定技术相关的概念、工具、机制、技术、语言和形式主义。技术空间由所使用的Meta-元模型决定(M3级别)。例如,万维网联盟(W3C)促进了XML技术空间,它使用XML Schema作为元元模型。这个空间包括对HTML、XML、XMI、XML和XQuery等语言的支持。作为另一个例子,对象管理组(OMG)促进了MDA技术空间,它使用MOF作为元元模型,并支持诸如UML之类的语言。许多其他技术空间是可用的,包括那些依赖于抽象语法树和语法、图和图转换、数据库技术或本体的技术空间。给定一个模型转换,它的源模型和目标模型可能属于同一个或不同的技术空间。在后一种情况下,我们需要工具和技术来定义连接技术空间的转换。一种可能性是提供模型导出器和导入器,同时在源模型或目标模型的技术空间中执行实际转换。例如,在将XML文档转换为UML图时,可以选择在XML或T. Mens,P.Van Gorp/Electronic Notes in Theoretical Computer Science 152(2006)125131MDA技术空间。为了在XML技术空间中执行转换,可以使用XML或XQuery程序将一般XML文档转换为符合XMI标准(XML元数据交换)的语法并符合UML标准的语义MOF-XMI文档的XML文档。然后可以使用XMI解析器将结果XMI文档导入UML CASE工具中,驻留在MDA技术空间中。在MDA技术空间中执行转换需要一个用于XML的MOF元模型。在将XML文档解析为该元模型的实例之后,实际的转换可以作为MOF转换来执行。QVT征求建议书[11]旨在标准化所有尝试实现这种模型转换的内源性与外源性转化。为了转换模型,这些模型需要用某种建模语言(例如,UML用于设计模型,编程语言用于源代码模型)。建模语言本身的语法和语义由元模型表示。例如,UML Meta模型的语法是用类图表示的,而它的语义是用格式良好规则(表示为OCL约束)和自然语言的混合[12]。基于表达转换的源模型和目标模型的语言,可以区分内源转换和外源转换。内生转换是用同一语言表达的模型之间的转换。外生转换是使用不同语言表达的模型之间的转换。3在[13]中,基本上提出了相同的区别,但移植到一个模型转换设置。在该分类法中,术语改写用于内源性转化,而术语翻译用于外源性转化。典型的翻译例子(即,外源性转化)是:• 更高层次、更抽象、更具体化的综合(例如,分析或设计模型)转化为更低层次的、更具体的模型(例如,Java程序的模型)。合成的一个典型例子是代码生成,其中源代码被翻译成字节码(在虚拟机上运行)或可执行代码,或者设计模型被翻译成源代码。3如果我们必须处理多个源模型和/或多个目标模型的转换,甚至可能涉及2种以上的不同语言132T. Mens,P.Van Gorp/Electronic Notes in Theoretical Computer Science 152(2006)125• 逆向工程是合成的逆过程,从较低级别的规范中提取较高级别的规范。• 从一种语言编写的程序移植到另一种语言,但保持相同的抽象级别。换句话说的典型例子(即,内源性转化)是:• 优化,旨在提高某些操作质量的转换(例如,性能),同时保留软件的语义• 重构,对软件内部结构的改变,以改善某些软件质量特征(如可理解性,可修改性,可重用性,模块化,适应性),而不改变其可观察的行为[14]。图1中的上拉方法转换就是这样一种重构的一个• 简化和规范化,用于降低语法复杂性,例如,通过将语法糖翻译成更原始的语言结构。图3中的状态图调整转换就是这样一个例子。一种简化。• 组件适配,以静态或动态地修改和适配现有软件组件的代码在组件扩展期间),以满足用户我们可以根据所涉及的模型的数量进一步对内生模型转换进行分类。如果此数字仅为1,则源模型和目标模型相同,并且所有更改都在原位进行。其他内生转换基于另一个模型的属性在一个模型中创建模型元素(不管两个模型是否符合相同的元模型)。这样的转换被称为外位转换。请注意,外生转换总是外置的。我们没有在建议的分类法中包含这种区别,因为对于大多数应用程序来说尽管如此,这些术语在关于模型转换的技术讨论中还是很有用的横向与纵向转换。水平转换是源模型和目标模型位于同一抽象级别的转换典型的例子是重构(内源性转换)和迁移(外源性转换)。垂直转换是源模型和目标模型位于不同抽象级别的转换一个典型的例子是细化,通过添加更多具体内容的连续细化步骤,T. Mens,P.Van Gorp/Electronic Notes in Theoretical Computer Science 152(2006)125133详情[15,16]。表1通过给出所有可能的组合的具体示例,说明了水平与垂直以及内源与外源的维度是真正正交的。作为对表中所述的形式细化的澄清,一阶谓词逻辑或集合论中的规范可以逐渐细化,使得最终结果使用与原始规范完全相同的语言(例如,添加更多的公理)。表1模型变换的正交维数及实例水平垂直内源重构形式细化外源语言迁移代码生成句法和语义的转换。最后,可以在仅转换语法的模型转换和也考虑模型语义的更复杂的作为语法转换的一个例子,考虑一个转换程序具体语法的解析器(分别为:模型)在一些编程中(分别为建模语言)转换为抽象语法。抽象语法然后被用作程序的内部表示(resp.模型),可以在其上应用更复杂的语义转换同样,当我们想要以特定格式导入导出模型时,需要进行语法转换。3.2模型转换的重要特征自动化程度可以并且应该区分可以自动化的模型转换和需要手动执行的转换(或者至少需要一定量的手动干预)。后者的一个例子是从需求文档到分析模型的转换对于这样的转换,需要人工干预来处理和解决(部分)用自然语言表达的需求中的模糊性、不完整性和不一致性。134T. Mens,P.Van Gorp/Electronic Notes in Theoretical Computer Science 152(2006)125转型的复杂性一些转换,比如模型重构,可以被认为是小的,而其他转换则相当繁重。后者的例子是解析器、编译器和代码生成器。小型转换和重型转换之间的复杂性差异如此之大,以至于它们需要一套完全不同的技术和工具。保存。尽管在模型驱动开发期间有各种不同类型的转换,但每个转换都在转换后的目标模型中保留了源模型的某些方面。保留的属性可以根据变换的类型而显著不同。例如,对于重构或重构,需要保留(外部有了改进,程序的正确性需要得到保持[17]。技术空间也严重影响了需要保留的内容。例如,在数据库转换的情况下,我们需要保持数据库的完整性,而在程序转换的情况下,我们需要保持程序的语法良好性和类型正确性3.3转换语言或工具的成功标准在前面的讨论中,我们只讨论了模型转换或被转换的模型的特征。同样重要的,或者可能更重要的是转换语言或转换工具的特性。下面我们列举了一些重要的功能需求,这些需求有助于这种语言或工具的成功。其中许多标准仍处于研究阶段,因为它们尚未得到最先进的模型转换工具的完全支持创建/读取/更新/删除转换(CRUD)。虽然这对于转换语言来说是一个微不足道的需求,但是对于转换工具来说就不是那么明显了。例如,如果我们考虑一个典型的程序重构工具,它带有一组预定义的重构转换,可以应用,但通常没有办法定义新的重构转换,或者调整现有的转换以满足用户的特定需求。因此,有可能创建新的转换或更新现有的转换是一个重要的标准。T. Mens,P.Van Gorp/Electronic Notes in Theoretical Computer Science 152(2006)125135建议何时应用转换。对于某些应用场景,可以构建专用工具,向用户提供在给定的上下文中哪些模型变换可能是适当的。例如,重构工具可能不仅应用重构转换,而且还建议在哪个上下文中应用特定的重构[18,19]。定制或重用转换。例如,如果我们采用面向对象的转换语言,我们可以使用继承机制来重用模型转换的规范。其他定制或重用机制包括参数化和模板。3.3.1并保证转换的正确性如果转换语言或工具具有数学基础,则在某些情况下可以证明转换的理论属性,例如终止性、可靠性、完整性、(语法和语义)正确性等。最简单的正确性概念是语法正确性:给定一个格式良好的源模型,我们能保证转换产生的另一个概念是语法完整性:对于源模型中的每个元素,在目标模型中应该一个明显更复杂的概念是语义正确性:生成的目标模型是否具有预期的语义属性?例如,这是重构转换的关键要求,我们希望能够确保这些转换保留某些行为属性。其他重要的语义属性是终止和连续:给定一组转换,它们应该总是导致结果(即,它们应该终止),并且该结果应该是唯一的(一致性)。测试和验证转换。由于变换可以被认为是一种特殊类型的程序(例如,转换语言是图灵等价的编程语言4),我们需要对转换应用系统的测试和验证技术,以确保它们具有期望的行为。4看到 http://www.unidex.com/turing/utm.htmwww.example.com 更多信息136T. Mens,P.Van Gorp/Electronic Notes in Theoretical Computer Science 152(2006)125处理不完整或不一致的模型。在软件开发生命周期的早期,当需求可能还没有被完全理解或用自然语言描述时,能够转换模型是很重要的。这通常会导致模糊、不完整或不一致的模型,这意味着我们需要有不一致管理的机制。这些机制可以用于检测并可能解决转换本身或正在转换的模型中的不一致性。转换、合成和分解转换。将现有的转换组合成新的组合转换的能力对于提高转换语言的可读性、模块性、可维护性和可伸缩性是非常有用的将复杂的转换分解为更小的步骤可能还需要一个控制机制来指定这些更小的转换需要如何这种控制机制可以是隐式的或显式的。转换的通用性理想情况下,转换应该是转换语言中的第一类实体。如果我们也可以将变换表示为模型,我们就可以将变换应用于这些模型,从而实现高阶变换的概念。这方面的一个具体示例是重构给定的一组转换(例如,一系列代码生成器),以减少这些转换中的代码重复量。 为了实现这一点,我们需要对转换本身进行转换。转换的双向性具有双向性属性的语言或工具需要较少的转换规则,因为每个转换可以在两个不同的方向上使用:将源模型转换为目标模型,以及将目标模型转换为源模型的逆转换支持可追溯性和变更传播。为了支持可跟踪性,转换语言或工具需要提供机制来维护模型转换的源模型和目标模型之间的显式链接。为了支持变更传播,转换语言或工具可能具有一致性检查机制和增量更新机制[20]。T. Mens,P.Van Gorp/Electronic Notes in Theoretical Computer Science 152(2006)125137请注意,某些转换方法需要首先将源模型转换为某种标准化格式(例如,XML),然后应用转换,然后再进行另一次转换以获得目标模型。这种方法的一个明显缺点是,当对源模型和目标模型进行更改时,很难同步它们。3.4转换语言或工具除了上面列举的所有功能需求之外,转换语言或工具还应该满足许多非功能或质量需求。这些要求是模型转换工具的工业用户特别感兴趣的它们可能是在实践中接受或拒绝该工具的原因。可用性和有用性。语言或工具应该是有用的,这意味着它必须服务于实际目的。另一方面,它也必须是可用的,这意味着它应该是直观和有效的使用。显然,这个问题与开发人员的培训和经验直接相关。开发人员可能更喜欢一种更直接的模型操纵方法,而不是使用一种完全边缘化的转换语言,在这种方法中,通过API直接访问内部模型。优点是开发人员可以继续使用他们喜欢的语言,几乎不需要额外的培训。缺点是API可能会限制可以执行的转换类型[2]。冗长与简洁。简洁性意味着转换语言应该具有尽可能少的然而,从实践的角度来看,这通常需要更多的工作来指定复杂的转换。因此,语言应该通过为频繁使用的语法结构引入额外的语法糖来变得更详细在这两个相互冲突的目标之间找到适当的平衡总是一项艰巨的任务。参考前面通过API直接操作模型的示例,开发人员通常使用通用编程语言来指定转换。这导致了比专用模型转换语言更冗长的代码[2]。138T. Mens,P.Van Gorp/Electronic Notes in Theoretical Computer Science 152(2006)125性能和可扩展性。语言或工具应该能够处理大型复杂的转换或大型复杂软件模型的转换,而不会牺牲性能。另一个与性能有关的问题是转换工具是基于解释器的还是基于编译器的。基于解释的方法可能比基于解释的方法具有更好的可扩展性。一个工具的可扩展性取决于该工具可以扩展新功能的难易程度。例如,许多当代工具(例如,Eclipse)的插件框架,以便于以标准化的方式将第三方代码(所谓的插件)添加到工具中互用性该工具还应该是可互操作的,或者易于与(模型驱动的)软件工程过程中使用的其他工具集成。为了实现这一点,该工具需要提供与其他常用技术空间的桥梁用户社区的可接受性。从理论的角度来看,最好的转换语言不一定是从语用的角度来看最好的。例如,如果目标社区是面向对象的受众,基于逻辑或函数范式的转换语言可能是不可接受的。标准化转换工具应该符合所有相关标准(如XML、MOF、UML)。例如,该工具可能需要支持XMI来导入或导出转换的源或目标模型。3.5哪些机制可以用于模型转换?在此,机制应作广义解释。它们包括技术、语言、方法等等。要指定和应用转换,可以使用任何主要编程范例的思想。人们可以从过程、面向对象、函数或逻辑范式中借用技术,甚至可以使用结合任何前一种范式的混合方法T. Mens,P.Van Gorp/Electronic Notes in Theoretical Computer Science 152(2006)125139然而,重要的是要注意,模型转换工具应该专用于模型的构建和修改。从这个意义上说,一种专用的特定领域编程语言,甚至最好局限于感兴趣的技术领域,可能比一种完全边缘化的通用编程语言更有效。转换机制之间的主要区别在于它们是依赖于声明性方法还是操作性(或命令性)方法。声明式方法侧重于什么方面,即,它们通过定义源模型和目标模型之间的关系来关注需要将什么转换为什么。操作方法侧重于如何方面,即,通过指定从源模型导出目标模型所需的步骤,它们关注于声明性办法(例如,[21])是有吸引力的,因为诸如源模型遍历、可跟踪性管理和自动双向性之类的特定服务可以由底层推理引擎来执行。有几个方面可以在转换语言中隐含:(1)源模型的导航,(2)目标模型的创建和(3)规则执行的顺序。因此,声明性转换往往更容易编写和软件工程师理解。操作性(或建设性)方法(例如,[22])可能需要实现声明性方法无法保证其服务的转换。特别是当一组转换的应用顺序需要显式控制时,命令式方法更适合,因为它内置了序列,选择和迭代的概念。在源模型和目标模型都在转换工具之外被大量操作之后,可能需要这种显式控制来实现协调源模型和目标模型的转换。声明式方法的一个特别的优点是函数式编程。这种模型转换的方法很有吸引力,因为任何转换都可以被视为将某些输入(源模型)转换为某些输出(目标模型)的函数。在大多数函数式语言中,函数是第一类的,这意味着转换也可以作为模型来操作。函数式方法的一个重要缺点是,在转换过程中维护状态变得很困难声明式方法的另一个优点是逻辑编程。逻辑语言(例如,Prolog或Mercury)具有许多与模型转换直接相关的特性:回溯、约束传播(在约束逻辑编程语言的情况下)和统一。统一可以是部分的(更容易使用和理解),也可以是完全的(更强大)。此外,逻辑语言总是提供查询机制,140T. Mens,P.Van Gorp/Electronic Notes in Theoretical Computer Science 152(2006)125这意味着不需要提供单独的查询语言4相关工作本文中提出的分类类似于Visser [13]对程序转换系统中重写策略的调查,但范围更广。实际上,程序转换只是模型转换的一个小子集。从这个意义上说,维瑟可能与我们的分类法相关的最接近的工作是Czarnecki和Helsen在[23]中提出的模型转换方法的分类。这一点也不奇怪,因为Czarnecki参加了Dagstuhl研讨会,我们分类学中的许多想法都是基于这个研讨会。其中一个主要的分歧是,Czarnecki和Helsen提出了一个基于特征图的层次分类,而我们的分类法本质上是多维的。另一个重要的区别是,它们对模型转换的规范进行了分类,而我们的分类法更多地针对支持模型转换活动的工具,技术和形式主义。5结论在本文中,我们提供了一个分类的模型转换。这种分类法的目的是多方面的:(1)在领域内定位具体的模型转换工具和技术;(2)提供一个框架,用于比较和组合各个工具和技术;(3)识别和评估特定模型转换活动的工具或技术;(4)提供模型转换研究领域的概述。 考虑到模型转换领域内工具和技术的激增,以及模型转换可以应用于非常广泛的应用程序的事实,这些目的中的每一个都虽然对于模型转换的哪种方法(或工具,或技术)是最好的这个问题从来没有一个唯一的答案,但我们已经表明,在处理以下关键问题时,有可能提出一套需要考虑的具体标准• 什么需要转化成什么?• 模型转换的重要特征是什么• 转换语言或工具的成功标准是什么• 哪些机制可以用于模型转换?T. Mens,P.Van Gorp/Electronic Notes in Theoretical Computer Science 152(2006)125141基于对这些问题的回答,可以选择并采用特定的模型转换方法来解决特定的问题。在未来,我们计划应用我们的模型转换分类法,以找到其他有趣和重要问题的答案,例如:• 哪种底层技术更适合支持模型转换?要回答这个问题,首先需要我们识别用于实现模型转换工具的不同技术,例如,树转换或图转换,识别实现每种技术的一些代表性工具,并使用我们的分类法对这些工具进行比较。• 哪种技术空间更适合模型转换? 几乎所有的模型转换工具都有一个主要的技术空间,通常是基于MOF或基于XML的。比较不同技术领域的转换工具可以让我们识别每个工具的优点和缺点。引用[1] Gerber,A.,Lawley,M.,Raymond,K.,Steel,J.,伍德,A.: 转型:缺失的环节的MDA。在:图形转换。计算机科学讲义第2505卷Springer-Verlag(2002)90-105 Proc. 1st Int'lConf. Graph Transformation 2002,Barcelona,Spain.[2] Sendall,S.,Kozaczynski,W.:模型转换-模型驱动软件开发的核心和灵魂。IEEE Software,Special Issue on Model Driven Software Development(2003)42[3] B'ezivin,J. ,Gerb'e,O.: 为了精确定义OMG/MDA框架工作。In:Proc. 第16届 国 际 会议自动化软件工程,IEEE计算机学会(2001)273[4] Seidewitz,E.: models是什么 03 TheDog(2003)[5] 法弗尔,J.M.:建立模型驱动工程的基本理论。输入:程序第三届软件模型工程研讨会(第七届UML国际会议的卫星研讨会)。(二零零四年)[6] Janssens,D.,Demeyer,S.,男士,T.:案例研究:LAN的模拟。理论计算机科学电子笔记72(2003)[7] Wasowski,A.:没有爆炸的扁平状态图。In:Proc. ACM SIGPLAN/SIGBED Conf. 语言、编译器和工具。(2004年)257[8] Fowler,M.,斯科特,K.:UML Distilled对象技术系列。02 The Dog(1999)[9] Kleppe,A.,Warmer,J.,巴斯特魏: MDA解释,模型驱动架构:实践和承诺。03 The Dog(2003)[10] B'ezivin,J., 你好G Jouault,F.,Pitette,G.,Rougui,J.E.:使用ATL模型转换语言的第一个实验第二届OOPSLA研讨会,关于模型驱动架构背景下的生成技术(2003年)[11] 对 象 管 理 组 : MOF 2.0 查 询 / 视 图 / 转 换 RFP ad/2002-04-10 ( 2002 ) URL :http://www.omg.org/cgi-bin/apps/doc?ad/02-04-10.pdf。142T. Mens,P.Van Gorp/Electronic Notes in Theoretical Computer Science 152(2006)125[12] 对象管理组:统一建模语言规范1.5版。formal/2003-03-01(2003)[13] Visser,E.:程序转换系统重写策略综述。 理论计算机科学电子笔记57(2001)[14] 福勒,M.:重构:改进现有程序的设计02 The Dog(1999)[15] Wirth,N.: 逐步细化的程序开发。 ACM Comm.14(1971)221[16] 退后,R. J von Wright,J.:精化微积分。03 The Dog(1998)[17] Back,R.:关于程序的正确细化Journal of Computer and Systems Sciences计算机与系统科学(1981年)49[18] van Emden,E.,Moonen,L.:通过检测代码气味来保证Java质量。在:程序。第9次工作会议。逆向工程,IEEE计算机学会(2002)97[19] 我们走吧,男士,T.:使用逻辑Meta编程识别重构操作机会见:Proc.7th European Conf.Software Maintenance and Re-engineering(CSMR 2003),IEEE Computer Society(2003)91[20] Van Gorp,P.,Janssens,D., 加德纳,T.: 一次编写,部署N:面向性能的MDA案例研究。在:第8届IEEE国际企业分布式对象计算会议论文集,IEEE(2004)[21] Akehurst,D.,肯特,S.: 定义元模型中转换的关系方法。输入:程序第五届UML。计算机科学讲义第2460斯普林格-Verlag(2002)243-258[22] 洒,J。,Agrawal,A.,Levendovszky,T.,Shi,F.,Karsai,G.:使用图形转换的领域模型转换。在:Proc. Int'l Conf. Engineering of Computer-Based Systems,IEEE计算机学会(2003)159[23] Czarnecki,K.,Helsen,S.:模型转换方法的分类。在:OOPSLA03模型驱动架构环境中的生成技术(2003年)
下载后可阅读完整内容,剩余1页未读,立即下载
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![ppt](https://img-home.csdnimg.cn/images/20210720083527.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)