论文部分内容阅读
从机器语言诞生到各种软件开发方法的提出,软件模型不断更新,软件系统的灵活性和可伸缩性不断提升。软件系统开发的复杂程度越来越高,软件的生产率也需要极大的提升。传统的软件开发通常采用文本和UML图表的方式描述需求分析和设计过程,产生大量的文本文档,给维护造成极大的困难,加上文档与代码存在不同步的问题,软件的可靠性越来越难以保证,传统的软件开发已经不能满足实际开发的需要。随着软件工程概念的逐渐普及,MDA开发思想被日渐提出。MDA软件开发思想以模型为中心,系统建模驱动整个开发过程,软件开发者只需要专注于建立平台独立模型,并通过特定的自动转换工具就可以将模型转换为代码,减少了开发者的工作量。MDA提高了软件系统的灵活性与可伸缩性,成为面向模型的软件开发思想力推的新型软件开发方法学。查询/视图/转换(QVT)是由OMG提出的用于实现MOF模型相互转换的标准,QVT标准的核心是对模型转换语言的定义,其核心语言Relations是一种用来描述转换规则的标准语言,它基于关联/映射的QVT模型转换规则,对抽象语法与具体语法进行比较完整的定义,并对具体语法进行语义的映射。然而模型之间常常存在相互嵌套甚至递归嵌套的情况,造成流程模型之间转换规则的困难性与复杂性。QVT关系语言虽然是已发布的规范化描述转换规则语言,但却无法描述相互嵌套或递归嵌套的模式,影响了QVT的适用性。论文首先探讨了MDA模型驱动开发的研究现状与存在的问题,详细分析QVT提案,比较了模型转换常用的几种方法的优缺点。研究了模型转换的原理与步骤,论述了关联/映射的模型转换规则的抽象语法及具体语法,并对具体语法的语义进行了定义,同时指出关联/映射转换规则中存在的不足,给出一种基于扩展QVTRelations语言的模型转换方法,详细描述了嵌套关系表达式及关联端点约束的语法及语义,对转换规则进行重新定义,使其更精确的描述流程模型之间的转换规则,增强QVT的适用性。最后通过一个典型的实例,使用本文的转换方法进行模型转换,实现模型从源模型到目标模型的转换,证明了该方法的可用性,并对结果进行了总结与对比。