Refactoring of Aspect-Oriented Software

Stefan Hanenberg, Christian Oberschulte, Rainer Unland · 2003

The application of refactorings during an object-oriented development process improves the design and therefore the quality of software. Aspectorientation is a new programming paradigm that increases the modularity of software. Hence, it seems natural to apply both aspect-orientation as well as refactoring during a software development process since both techniques permit to increase the modularity and comprehensibility of software. However, on the one hand existing object-oriented refactoring techniques cannot directly be applied to aspect-oriented software because traditional object-oriented refactoring applied in an aspect-oriented environment is no longer behavior preserving. On the other hand, since the new features of aspect-oriented languages permit to modularize software in different ways there is a large variety of new refactorings based on these features. This paper discusses the relationship between object-oriented refactoring and aspect-orientation. We show what aspect-oriented elements conflict with existing refactorings and propose solutions for these conflicts for the aspect language AspectJ. Furthermore, we introduce a number of new aspect-oriented refactorings which help on the one hand to migrate from object-oriented to aspect-oriented software and on the other hand to restructure existing aspect-oriented code.

Read the paper · More papers on PaperTik