Clamp: automated joinpoint clustering and pointcut mining in aspect-oriented refactoring

Prasanth Anbalagan,Tao Xie
DOI: https://doi.org/10.1145/1218776.1218795
2006-01-01
ACM SIGSOFT Software Engineering Notes
Abstract:Software refactoring consists of a set of techniques to reorganize code while preserving the external behavior. Aspect-Oriented Programming (AOP) provides new modularization of software systems by encapsulating crosscutting concerns. Based on these two techniques, Aspect-Oriented (AO) refactoring restructures crosscutting elements in code. AO refactoring includes two steps: aspect mining (identification of aspect candidates in code) and aspect refactoring (semantic-preserving transformation to migrate the aspect-candidate code to AO code). Aspect refactoring clusters the join points for the aspect candidates and encapsulates each cluster with an effective pointcut definition. With the increase in size of the code and crosscutting concerns, it is tedious to manually identify aspects and their corresponding join points, cluster the join points, and infer a pointcut expression. This paper proposes an automated framework that clusters join point candidates and infers a pointcut expression for each cluster.
What problem does this paper attempt to address?