软件工程中基于模型驱动架构的模型转换技术研究
【摘要】:
模型驱动架构(Model-Driven Architecture,MDA)旨在提高软件的开发效率,它与面向构件和面向服务的软件体系结构以及基于中间件的分布软件开发环境相辅相成,已成为当前在异构环境中开发大型软件的有效途径,是目前软件工程领域的热点研究课题。模型驱动架构研究的是以模型为中心的软件开发方法,比起传统的以代码为中心的软件开发方法具有更贴近应用、层次更高的抽象等特点,通常由它开发的软件可以运行在异构的支撑平台上,能有效地应用于开发基于网络的各类大型复杂信息系统。
模型转换是模型驱动架构中的核心技术,目前国内外许多研究机构围绕模型转换技术在软件开发中的应用展开了研究工作,并取得了多项有价值的成果。人们开发了多种模型转换语言,用于解决不同类型的模型转换应用需求;研究了元模型间的转换规则,并以此为规范自动生成模型间的转换代码;探索了不同应用领域内的代码生成技术,以提高领域相关软件的开发效率。但作为一项新兴的研究课题,模型转换技术在Web开发领域中的应用存在若干不足,如模型转换代码的重用较为困难,转换得到的代码框架尚需完善等。
本文以电子商务等基于Web应用的软件开发为应用背景,围绕模型转换技术存在的以上不足展开研究。首先对相关概念进行了形式化定义,在此基础上重点对面向设计模式的模型转换方法、模型编织和元数据映射进行了深入研究,最后设计实现了Web应用开发平台WADP,验证了以上技术与方法的有效性。论文的主要成果有:
1.基于MDA Guide、MOF和QVT三个标准,提出了一套有关模型转换概念的形式化定义,定义的概念包括模型、元模型、元元模型、模型转换、模型编织以及模型符合,构建了一种模型转换形式化框架,为研究模型转换技术提供了理论基础。
2.设计模式描述了在软件设计过程中若干典型问题的核心解决方案,应用设计模式能使开发者复用该方案来解决同一类设计问题。设计模式常被用于软件系统的建模过程,以提高软件系统的设计质量和重用性。在模型中应用并维护设计模式是一种重复性工作,为在模型中自动应用桥接器、抽象工厂等设计模式,提出一种面向设计模式的模型转换方法。通过分析相应的规则特征,设计了一系列原子映射和模式映射,以及由此组合而成的模型转换代码模板。该模板能够生成基于扩展样式语言转换XSLT(Extensible Stylesheet Language Transformations)的模型转换代码,可实现软件模型中设计模式的自动应用。
3.模型转换技术之间的异构性造成了模型转换代码重用的困难。本文提出一种基于QVT规范的模型转换编织框架QMTW,该框架能够在比模型层更高的抽象层次上描述转换规则,并支持OMG最新的模型转换规范。使用QMTW描述的转换规则可生成符合不同模型转换语言的代码,部分地消除了模型转换技术间的异构性。
4.元数据是用来定义某一类数据规范的数据,它包含了数据的存储形式、含义及相关约束。通用的元数据映射技术掺杂了源数据和目标数据间的语义信息以及目标数据的结构信息,导致其映射代码难以自动生成。本文提出一种面向元数据映射的模型转换方法,它将元数据映射规则分为结构规则和语义规则两种。结构规则由目标元数据确定,语义规则使用模型编织框架QMTW描述,再通过模型编织工具生成相应的数据映射代码,解决了元数据映射代码的自动生成问题。
5.设计并实现了基于模型编织和元数据映射技术的Web应用开发平台WADP。除拥有面向Web应用的各类建模工具和模型仓库、代码模板库等底层支撑设施外,WADP还具有动态可替换模型转换器和代码生成器。用户描述的业务模型能自动生成Web应用程序原型系统及后端数据库。利用该平台,开发了深圳碧金会所电子商务平台、.infor协同电子政务支撑平台等五个系统。应用表明,该平台能有效提高Web应用系统的开发和维护效率。