论文部分内容阅读
模型驱动架构(MDA)是一个可以从系统模型变换为实现代码的软件开发框架,模型在其中扮演了非常重要的角色。在MDA中,软件开发过程由模型驱动。开发者首先对系统的业务逻辑进行建模,建立的模型不具有任何技术平台的特性,被称为平台无关模型(PIM),和实现技术相关的业务逻辑模型则称为平台相关模型(PSM)。根据选择的实现技术,PIM通过映射机制变换为PSM,然后变换为代码。MDA就是包括一系列建模规范、变换规则和其他相关标准的体系结构。面向对象编程无法有效解决核心业务逻辑之外的关注点对模块封装的破坏,这些关注点包括安全性、数据持久性、日志、错误处理等,它们横切于核心业务逻辑所形成的类结构中,所以也被称作横切关注点。同样地,在MDA中建立的模型也会存在横切关注点。通过面向方面编程(AOP)可以解决面向对象所面临的难题,核心业务逻辑和横切关注点可以分别使用面向对象技术和面向方面技术独立进行开发,最后通过特定技术将这两部分编织在一起形成最终代码。基于以上背景,本文将探讨如何在MDA中应用面向方面技术进行软件开发。本文作者通过对MDA和面向方面技术的深入研究,提出了面向方面的MDA软件开发方法。模型是MDA的核心,因此需要针对面向方面的特性建立通用的面向方面PIM,以及和特定面向方面实现技术(本文选取AspectJ平台)相关的PSM。本文在遵循UML 2.0标准的基础上,使用UML扩展机制分别建立了面向方面PIM和AspectJ PSM的模型规范。通过这些规范,横切关注点和核心业务逻辑就可以相对独立地进行建模,从而分别形成面向方面PIM和面向对象PIM。然后,本文提出了面向方面PIM到AspectJ PSM的变换规则,并使用扩展的OCL语言定义了这些规则。通过这种变换,AspectJ PSM可以在平台相关模型这一层中继续保持与核心业务逻辑模型的独立。在文章的最后,通过对医疗设备物资管理系统的成功开发,验证了面向方面的MDA软件开发的可行性。