In this paper we present aspect-oriented programming laws that are useful for deriving refactorings for AspectJ. The laws help developers to verify if the transformations they define preserve behaviour. We illustrate that by deriving several AspectJ refactorings. We also show that our laws are useful for restructuring two Java applications with the aim of using aspects to modularize common crosscutting concerns.
Cole and Borba describe a set of aspect-oriented programming laws that are useful for deriving refactorings for AspectJ REF .
Deriving refactorings for AspectJ
AOSD '05
Computer Science