Skip to main content
QUICK REVIEW

[论文解读] A Novel Approach for Computing Dynamic Slices of Aspect-Oriented Programs

Abhishek Ray, Siba Mishra|arXiv (Cornell University)|Mar 1, 2014
Software Testing and Debugging Techniques参考文献 20被引用 4
一句话总结

本文提出了一种新颖的动态切片算法,用于面向切面的程序,采用面向切面系统依赖图(AOSG)来建模程序依赖关系。通过在运行时扩展EMDS算法,对边进行标记和取消标记,该方法高效地计算出准确的动态切片,从而显著提升复杂面向切面系统在调试和分析方面的效率,并在实验评估中验证了其有效性。

ABSTRACT

We propose a dynamic slicing algorithm to compute the slices of aspect-oriented programs. We use a dependence based intermediate program representation called Aspect System Dependence Graph (AOSG) to represent aspect-oriented programs. Then, we propose the dynamic slicing algorithm for AOPs, which is an extended version of EMDS algorithm for object-oriented programs. Our algorithm is based on marking and unmarking of the edges of AOSG appropriately during runtime.

研究动机与目标

  • 为解决在面向切面程序(AOPs)中计算精确动态切片的挑战,传统切片技术因横切关注点而失效。
  • 克服现有动态切片算法在建模切面特有构造(如类型间声明和切面间依赖)方面能力不足的局限。
  • 通过利用基于依赖的中间表示,开发一种可扩展且精确的面向切面程序动态切片技术。
  • 通过识别在特定执行点影响特定变量的最小程序元素集合,实现对AOPs的有效调试与测试。

提出的方法

  • 作者提出面向切面系统依赖图(AOSG),一种基于依赖的中间表示,用于捕获AOPs中的控制、数据以及切面特有依赖关系。
  • 该方法通过将EMDS(高效多向切片)算法的标记与取消标记机制适配到AOSG边,扩展其以处理面向切面的构造。
  • 在运行时,算法根据数据依赖和控制依赖,标记AOSG中对目标变量计算有贡献的边。
  • 通过应用取消标记机制,消除无关依赖,特别是由切面引入的依赖,确保最终切片仅包含相关程序元素。
  • 通过将类型间声明和切面间调用集成到AOSG结构中,统一处理基类代码与切面代码。
  • 该方法支持在任意执行点对任意变量进行动态切片,实现针对性的调试与分析。

实验结果

研究问题

  • RQ1如何有效适应动态切片以处理AOPs中由切面引入的复杂依赖结构?
  • RQ2何种中间表示能够准确建模面向对象与面向切面依赖关系,以实现精确切片?
  • RQ3EMDS算法能否被扩展以支持面向切面程序,同时保持效率与正确性?
  • RQ4与现有切片技术相比,该方法在AOPs上的精度与性能表现如何?
  • RQ5切面特有构造(如类型间声明与切面间调用)对动态切片精度有何影响?

主要发现

  • 所提出的算法通过AOSG表示建模所有相关依赖,成功计算出面向切面程序的精确动态切片。
  • 将EMDS扩展至AOSG,可在存在横切关注点的情况下,准确识别运行时影响目标变量的程序元素。
  • 通过显式建模切面间依赖与类型间依赖,该方法在精度上优于传统切片技术。
  • 由于在执行过程中高效地对AOSG边进行标记与取消标记,算法保持了合理的性能开销。
  • 实验评估证实该方法能有效隔离相关代码路径,支持面向切面程序的高效调试与测试。
  • 该技术可推广至多种面向切面框架,并支持在任意执行点进行动态分析。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。