论文部分内容阅读
模型驱动体系结构强调以模型为核心进行软件开发。模型转换是模型驱动体系结构的关键技术。模型转换是一种操作,能将前一个阶段产生的模型自动或半自动地转换成后续阶段所需的制品,从而更高效地推进整个开发过程。 模型转换程序是一种软件,它实现了某种转换操作。随着模型驱动体系结构研究的深入和应用的普及,模型转换程序的规模越来越庞大、结构越来越复杂,这就对模型转换程序的描述、执行、组合等方面提出了更多的挑战。在这样的背景下,本文对模型转换的构造方法和运行机制展开研究,提出一种图形化的模型转换建模语言用于描述模型转换程序,一种语义可配置的转换运行机制用于执行模型转换程序,以及一种支持多种转换技术的组合框架用以支持模型转换程序的组装,从而实现复杂的转换程序构造和运行。本文主要工作包括: (1)一种图形化模型转换建模语言:由于模型转换程序的复杂度越来越高,如何有效地构造一个转换程序成为近年来的一个研究热点。现有的研究主要集中在对转换描述语言的改进,或者将特定软件开发技术运用于模型转换程序的开发,忽略了开发过程的其它阶段和不同视角,缺乏整体性和系统性。为此,本文提出一种图形化的、能够覆盖完整开发周期的模型转换建模语言(VisTML),支持对模型转换程序的可视化建模。VisTML包含七个不同的包,覆盖了模型转换开发过程中的主要活动,能够允许开发人员在不同阶段、从不同角度和抽象层次对模型转换程序进行刻画,从而支持完整的、系统化的开发过程。VisTML是对现有转换技术的抽象和综合,能够被映射到多种具体的实现技术,它为现有的转换技术提供了统一的概念与符号体系。同时,本文还论述了如何以VisTML为基础,支持模型转换开发的自动化。 (2)一种语义可配置的转换运行机制;为了运行一个模型转换程序,首先需要定义一个执行语义,再根据它实现执行引擎,最后将模型转换部署在该引擎上执行。现有的转换运行机制缺乏灵活性,不易于扩展;且目前缺乏一个统一的运行框架,阻碍了模型转换程序之间的互操作。本文提出一种语义可配置的转换运行技术。首先,本文对转换语言的语义进行分析,并将其归纳成一种三层语义结构。三层语义结构为不同的转换提供了统一的运行框架。接着,本文提出一组转换原语,封装了模型转换在执行过程中的一些基本操作。通过组合这些原语,可以定义出不同的执行语义。此外,本文还提出一个基于OCL的微转换语言(MicroTS)用来描述模型转换的执行语义。根据三层语义结构和微转换的原理,按照MicroTS脚本中定义的执行语义执行转换规约,可以灵活更改转换语言的语义、允许将不同的语义混合起来,从而提高了模型转换运行的灵活性与可扩展性、增强了转换语言的能力,并能够促进不同模型转换的互操作。 (3)一种支持多种转换技术的组合转换框架:复杂的模型转换常常由多个予转换组合而成。不同的子转换可能使用不同的转换描述语言实现,又被部署在各自的引擎上执行。这就导致子转换之间存在一些差异性,阻碍了子转换之间的组合。现有关于组合转换的研究工作还不能灵活地解决子转换之间的差异性问题:它们或者只能支持用特定技术实现的子转换之间的组合,或者需要进行额外的编码封装。为此,本文针对基于图和基于MOF的模型转换提出一种组合转换模型(CTM)。CTM包括一个公共的转换规约,它为不同的子转换提供了统一的封装格式,隐藏子转换在结构上的差异性;CTM还包括一个公共的模型和元模型结构,它们可以作为不同存储格式之间的中间格式,实现数据交互:CTM还在VisTML的基础上进行了扩展,定义了组合转换描述语言,用来定义组合转换的结构。此外,本文还论述如何执行一个用CTM描述的组合转换,包括数据流的传递和控制令牌的产生和传播。 最后,基于上述研究内容,本文设计并实现了一套原型工具支持,包括模型转换建模工具Tmodeler、语义可配置的转换执行引擎、组合转换框架MoTIF。之后,本文利用这些工具基于本文提出的方法和技术,结合三个具体案例验证本文工作的可行性和有效性。之后还对本文工作的适用范围和局限性,以及本文工作对于开发效率的提升进行了讨论。