论文部分内容阅读
模型驱动架构(MDA)是基于一系列工业标准的软件开发框架,模型驱动整个软件开发过程,使用支持工具可以实现模型之间、模型与代码之间的自动转换。它的核心思想是建立能够完整描述系统需求但与具体的平台实现技术无关的平台无关模型(PIM),通过制定模型转换规则集,将平台无关模型转换为能够完整表述系统需求,与具体实现技术相关的平台相关模型(PSM),最后利用MDA工具将平台相关模型自动转换为代码。由于MDA是基于面向对象的,因此,MDA具有面向对象对系统非功能性需求开发存在不足的问题。
面向方面的软件开发方法弥补了面向对象的软件开发方法对系统非功能特性需求开发存在的局限性问题。通过关注点分离技术分离出系统所有横切关注点,然后对每个横切关注点进行分析、设计、模块化,以解决横切关注点在面向对象软件开发中出现的代码缠绕和散射问题,增强系统的模块化程度,降低模块间的耦合度。
本文通过深入研究模型驱动架构和面向方面技术,选用基于Java扩展的面向方面语言.AspectJ作为具体的平台实现技术,在MDA中引入面向方面的思想,在现有三阶段的MDA开发过程中增加一个方面计算无关模型阶段(ACIM),提出四阶段面向方面的MDA方法对系统非功能性需求进行开发,利用关注点分离技术分离出系统的非功能性需求,再用方面模板技术对每个横切关注点单独设计、模块化。四阶段分别为:ACIM阶段、APIM阶段、APSM阶段、方面代码模型阶段。ACIM阶段使用UML用例建模技术建立方面计算无关模型,即方面业务模型,它是与业务人员进行有效沟通的工具,更加明确表述系统非功能特性,降低建立APIM的复杂性;通过深入研究UML的扩展机制,提出一种基于UML的双扩展方法,并定义了方面建模语言AOUML和AJUML,它们结合了对象约束语言OCL分别用于建立APIM、APSM,由于两阶段模型描述语言是在元模型层次对UML进行扩展,建模语言之间存在映射关系,因此,模型之间的转换使用元模型转换方法;方面代码模型阶段可以利用辅助工具将APSM转换为代码,也可以实现APSM与代码模型之间的逆变换,根据AspectJ的静态编织特性,在编译代码时实现面向方面代码模型与面向对象代码模型的编织。
最后,将本文提出的四阶段面向方面的MDA方法应用于开发可信分布式实时系统的非功能性需求,详细阐述对横切关注点进行开发的整个过程。论证了四阶段面向方面的MDA方法可用于开发复杂系统的非功能性需求,能有效降低软件开发的复杂性,降低模块之间的耦合度,增强模块化。