Software Practices Lab Homepage
Information Fragments
Registration-Based Abstraction
Summarizing Software Artifacts
past projects...
Reading Group
SPL Wiki [local access]

Role-based Refactoring of Crosscutting Concerns


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

Upcoming Publications

Jan Hannemann, Gail Murphy, and Gregor Kiczales. "Role-Based Refactoring of Crosscutting Concerns", AOSD 2005 (to appear).