论文部分内容阅读
面向方面编程(AOP)技术提供了一种新型的编程范式,解决了传统编程范式中难以模块化横切关注点的问题。为了利用AOP的技术优势改善现有的遗产系统,可以对遗产代码进行方面(aspect)重构,将其中的横切代码转换为面向方面的代码。方面(aspect)挖掘是方面重构过程中一个非常关键的步骤,用于识别遗产代码中潜在的横切关注点。因此,方面挖掘技术直接影响了方面重构的可行性,受到许多研究人员的高度重视。
本文从依赖性角度分析了横切关注点和核心关注点之间的关系,提出了一种基于程序依赖图的aspect挖掘技术。其主要特点是以依赖关系作为识别横切关注点的依据,抓住了横切代码的本质特征,与现有的挖掘方法相比,它没有局限于横切代码的外在结构和行为特性,具有较强的识别能力,此外,以单个方法体为基本的挖掘单元,既提供了语句级的挖掘粒度又具有良好的可伸缩性,能够适用于大规模程序。
论文主要内容有:
1)深入分析了横切关注点的本质特征,结合程序的语义信息和横切关注点的实现方式,考察了横切关注点和核心关注点的依赖关系及其在程序依赖图上的表现结构;
2)以源代码级的程序依赖图作为程序的中间表示,提出了一种基于依赖图的方面挖掘算法;
3)实例分析了该挖掘技术的有效性,并与已有的挖掘方法进行了一个横向比较;
4)研究了方面挖掘系统的实现技术并给出了一个初步的原型系统。