Pointcut fragility is a well-documented problem in Aspect-Oriented Programming; changes to the base-code (the non-aspect part of a program) can lead to join points incorrectly falling in or out of the scope of pointcuts. Deciding which pointcuts have broken due to changes made to the base-code is a daunting task, especially in large and complex systems.
This project consists of an automated approach that recommends pointcuts that are likely to require modification due to a particular base-code change, as well as ones that do not. Our hypothesis is that join points selected by a pointcut exhibit common structural characteristics. Patterns describing such commonality are used to recommend pointcuts that have potentially broken to the developer.
Implementation and Evaluation
Our approach is implemented as an extension to the popular Mylyn Eclipse IDE plug-in, which maintains focused contexts of entities relevant to the task at hand using a Degree of Interest (DOI) model. In our empirical evaluation, we show that it is useful in revealing broken pointcuts by applying it to multiple versions of several open source projects and evaluating the quality of the recommendations produced against actual modifications.
Subject Source Code
You may find the source code used in our empirical evaluation here.
Presentations and Publications
This work is supported in part by grants NSF OISE-1015773 and JSPS SP10024.