Refactoring to aspects: an interactive approach

Current refactorings for restructuring existing software systems preserve the behavior of the software. Aspect-oriented programming constructs make existing refactorings more complex, and introduce the potential for new kinds of refactorings that target entire concerns. In many cases, behaviour preservation may be neither possible nor desirable. In this position paper, we propose an approach to refactoring aspects into a system that actively involves a developer in a dialogue with the refactoring tool. We are exploring this approach by developing two Eclipse plug-ins: one which bases the refactoring on descriptions of a concern in the code; the other which bases the refactoring on a target aspect structure.