论文部分内容阅读
模型驱动架构(MDA)是以模型为中心的软件开发方法。模型表示和模型转换是MDA的核心技术。实现MDA的关键是建立平台无关模型(PIM)和平台相关模型(PSM),并定义PIM到PSM和PSM到代码的转换规则。目前,模型表示和模型转换方法还没有统一的标准。模型/视图/控制器(MVC)模式是一种软件架构模式。现有的MDA建模理论中缺少对MVC进行建模的方法。AndroMDA工具可以生成简单的Struts应用程序。但是,AndroMDA中缺少PSM层,在PIM设计中也没有对MVC模式进行建模,它是通过特定的转换规则库将PIM转换到Struts代码。PIM模型的不完备使得转换规则的设计变得复杂。为了解决以上问题,本文的主要任务是在平台独立的视角上对MVC进行建模,通过模型转换生成与特定技术相关的模型,最后利用模板技术生成最终代码。本文以MVC模式在MDA中的建模和MVC实现代码的生成方法为主要研究内容,对MDA的基本原理、架构体系、核心技术、模型表示方法以及模型转换理论等进行了研究和分析。在总结了MDA的各种模型表示方法之后,采用扩展的UML做为PIM和PSM的建模语言。研究了MVC模式在PIM和PSM中的表示方法,设计了在平台无关模型中构建MVC模型的UML Profile以及在平台相关模型中构建Struts模型的UML Profile。通过实例说明了本文设计的构建MVC模型的方法是有效的。查询/视图/转换(QVT)是对象管理组织提出的用于解决基于MOF模型的相互转换问题的待定标准,为模型查询、视图与转换提供标准定义。在研究Operational QVT模型转换方法的基础上,设计了将PIM层的MVC模型转换到Struts PSM模型的转换规则,并用Operational Mapping转换规则定义语言进行了描述。通过模型转换工具将实例的PIM转换到了PSM,验证了该转换规则的有效性。研究了MDA中从PSM模型到代码的生成方法,选用基于模板的代码生成方法。用Acceleo标准模板语言设计了Struts PSM模型到Java代码和配置文件的生成模板。最后通过Eclipse M2M工具生成实例的代码,验证了转换规则和代码模板的正确性。在平台无关模型中加入MVC架构模式,对增强PIM的精确性和完备性具有重要意义。扩展后的模型可以根据不同需求转换到不同的平台相关模型,增强了模型的可复用性,也为下一步构建自动化模型转换工具奠定了基础。