论文部分内容阅读
模型驱动架构(MDA)这种软件开发方法能够直接通过建立的模型生成可用的软件产品。它是包括一系列建模规范、变换规则和其他相关标准的体系结构。在MDA中,软件开发过程由模型驱动,模型扮演了非常重要的角色。它的开发步骤是首先对系统的业务逻辑进行较高层次的抽象建模,最初建立的模型是不与具体的实现平台环境相关的,即平台无关模型(PIM);然后根据实际的软件运行环境将PIM通过映射机制变换为PSM,它是和平台技术相关的业务逻辑模型。最后通过PSM到代码的映射变换为实际执行的代码。开发人员不需要考虑应用平台和实现细节,具体的代码将由这些模型自动生成。MDA中的模型将不再是设计的辅助工具,而是系统开发过程中的产品。实时系统已经广泛应用于各个领域,但是实时系统具有很多非功能需求,且这些非功能需求往往横切整个系统模块,引起代码混乱和代码分散等问题,导致系统难于设计、重用和维护,严重影响系统的性能。这种核心业务逻辑之外的关注点对模块封装的破坏是面向对象编程无法有效解决的。而面向方面编程(AOP)则可以将横切关注点从系统核心业务逻辑中分离出来,从而实现业务功能与横切功能的模块化。可以分别使用面向对象技术和面向方面技术独立进行开发,最后将这两部分编织在一起形成最终的代码。本文探讨了MDA、面向方面、实时系统以及UML等技术,通过深入研究把面向方面引入到MDA的建模中;通过对UML扩展来表达AOP的相关概念,并且分别建立了面向方面PIM和AspectJ PSM的模型规范。针对面向方面的特性建立通用的面向方面PIM,以及和特定面向方面实现技术(本文选取AspectJ)平台相关的PSM。横切关注点和核心业务逻辑就可以通过这些规范相对独立地进行建模,从而分别形成面向方面PIM和PSM。在本文的最后一章,首先分析了实时系统的非功能性需求,然后通过一个实时系统的例子来运用了面向方面的MDA软件建模,并且提出了如何建立计时器与实时约束的方面模型,最后通过扩展序列图动态的表现了方面对实时系统的影响。