论文部分内容阅读
计算机行业的飞速发展也使得编程思想经历了一次次变革。随着软件系统复杂度以及规模的不断增加,软件系统各个模块之间的关系变得越来越复杂,使用传统软件开发思想会带来代码纠缠以及代码分散等诸多问题,这样导致软件可定制性,可重用性,可裁剪性都面临挑战。面向方面编程思想正是在这种形式下应运而生的。目前,面向方面编程(Aspect-Oriented Programming,AOP)技术开始逐渐应用在各类软件系统的开发中。从AOP观点看,软件系统是一系列关注点的实现。关注点按其特征可以分为两类,一类是核心关注点,即软件所要实现的主要功能和目标;另一类是横切关注点,即与核心关注点有横切作用的关注点。AOP允许程序员分别实现核心及横切关注点,然后通过编织,实现两类关注点代码集成。通过面向方面编程能减少系统的重复代码,降低模块间的耦合度,提高系统的可裁剪性和可维护性。编织效率在面向方面编程中是一个影响性能的重要因素,本文主要是在充分研究面向方面技术的本质、各种实现技术及其优势的基础上,针对面向方面编程中与编织有关问题进行了研究。基于已有的按需编织和编织历史机制,提出了一种基于日志的增量式编织机制的实现方法。该方法通过方面存储结构的设计,给出方面状态的定量描述,定义方面状态改变量的计算语义,实现了增量式编织,从而达到了提高编织效率的目的。同时通过将更高性能的日志存储结构引入方面恢复,提出了一种更高效恢复方面编织状态的机制。最后做了三组对比实验。试验一对面向方面编程编织时间与面向对象编程编译时间进行了对比,从而验证了面向方面编程编织时间仅仅比面向对象编程编译时间略大,因此两者性能方面差异不大。实验二对比了基于日志恢复方面编织状态所需时间和无日志恢复情况下完全重新编织时间,从而验证了基于日志恢复方面编织能够极大提高系统异常情况下编织效率。实验三对比了有无增量式编织机制情况下编织时间,验证了基于日志的增量式编织机制能极大提高编织效率。