Aspect-oriented programming (AOP) enables the modular implementation of crosscutting concerns. To help the developer take advantage of AOP in an existing object-oriented system, and to modularize emerging crosscutting concerns in aspect-oriented code under development, there is a need for refactoring support.
In this project, we propose a role-based approach for transforming scattered crosscutting concern code (CCC) into a modular implementation in an aspect-oriented programming language. The roles enable a crosscutting concern to be described abstractly. Once these roles are then mapped to concrete scattered program elements in a target system, tool support can be used to perform the refactoring resulting in concrete modular AOP code. Our approach is semi-automated and, in some cases, non-behavior preserving. These properties are inherent to a set of useful crosscutting concerns to modularize, a subset of the GoF design patterns.
Our refactoring tool is implemented as a plug-in for the Eclipse IDE.
- Jan Hannemann
- Gail Murphy
- Gregor Kiczales
Jan Hannemann, Gail Murphy, and Gregor Kiczales.
"Role-Based Refactoring of Crosscutting Concerns",
AOSD 2005 (to appear).