论文部分内容阅读
面向方面编程(Aspect Oriented Programming,AOP)是一种全新的编程思想,由Xerox公司的帕罗阿尔托研究中心在1997年的欧洲面向对象编程大会(ECOOP)上首次被提出:2001年3月,首种支持AOP的语言AspectJ诞生。AOP从编程方法学的角度对横切关注点问题进行了有效的解决,并通过AOP语言提供的精确捕获横切关注点的机制,将那些分散的应用组织成单独模块,避免了由于横切现象带来的代码交织(code-tangling)以及与此相关的一系列问题,同时减少了由于重建软件项目而带来的代码改动,大大提高了系统的模块性和重用性。
随着面向方面编程技术的日渐成熟,面向方面思想已不再局限于编程层次,而是开始影响到软件开发的各个阶段,形成了面向方面软件开发技术。面向方面建模用一致的方法来描述、构造、记录和可视化面向方面设计思想,是实现面向方面软件开发的有效手段。然而,目前面向方面软件开发技术自身并没有提出正式的建模技术和工具。面向方面建模技术已经成为当前面向方面软件开发领域的重要研究内容。
UML是一种用来指定、可视化、构建和记录软件系统的建模语言,它定义良好、易于表达、功能强大且普遍适用,被OMG组织确定为面向对象的标准建模语言。然而,现实需求是多种多样的,作为在标准化符号要求和特定领域需求之间折衷的选择,UML被设计成一种可扩展的形式,即用户可通过引入特定领域的模型元素来扩展UML,以适应其特定的需要,另一方面,这种引入的元素将象UML标准元素一样使用,给不同用户间的交流带来了方便。这使得UML的作用域不仅局限于面向对象的分析与设计,还能适应于不同类型的系统、领域和方法。UML的这种扩展性也为利用它来表达AO系统提供了理论依据。
本文选用支持面向对象的UML作为AO建模语言,探讨了统一建模语言的可扩展性、元模型体系结构和UML的特征文件,并在此基础上,给出了一个面向方面建模的UML特征文件;以成熟的面向方面程序设计语言AspectJ和统一建模语言及其扩展机制为基础,提出一种基于UML的,以AspectJ语言为原型的面向方面建模语言AUML(Aspectual Unified Modeling Language,AUML),并通过定制版类、标记值和约束实现基于UML元模型的面向方面建模的方法。