论文部分内容阅读
面向对象软件开发从一定程度上提高了开发者的效率和控制复杂系统的能力,然而由于动态变化的需求,软件本身的性能要求等因素,导致面向对象程序设计不能很好的解决横切关注点的有效分离,造成代码的分散、混乱和难以维护。面向方面程序设计使用aspect的概念解决了横切关注点的有效分离和局部化,并从程序设计语言的层次上提供系统的方法识别、模块化横切关注点。 虽然据以Rational统一过程(RUP)之父Ivar Jacobson为代表的科学家推测,AOP将成为编程方法学的下一个里程碑,目前AOP还没有得到广泛的应用。并不是因为缺少相应的语言和框架的支持,而是因为缺少一个统一理解面向方面概念的设计平台,这个平台包括统一的设计标准和建模工具的支持。在软件开发的早期阶段运用AO的思想进行系统分析和设计,可以更好的降低面向方面软件开发的风险和成本,充分发挥AOP的优点,提高软件产品的质量。面向方面建模是在设计阶段通过可视化的模型对现实简化达到理解复杂系统的目的,从而控制软件开发的复杂度和风险,并从一个更高的抽象层次探索AOP的本质,提供一种设计、表达方面和其与其他部件横穿关系的普遍适用的方法。 本文研究和分析了AOP的核心思想和AOSD的基本概念,研究和分析了一种成熟的面向方面程序设计语言—AspectJ,最后在分析统一建模语言及其扩展机制的基础上,提出一种基于UML的,以AspectJ语言为原型的面向方面建模语言AUML(Aspectual Unified Modeling Language,AUML)。AUML直接支持AOP概念和设计,文档化后的建模设计可以为以后的程序设计和维护提供最直接的依据,AUML通过扩展“方面(aspect)”、“通知(advice)”、“切入点(pointcut)”、“导言(introduction)”、“核心组件(core)”等新的元素表达AOM设计,并支持各元素间关系的表达。本文最后依据AUML开发一种Eclipse环境下的插件工具,提供一个可视化的面向方面建模平台,意图解决面向方面软件开发的瓶颈。