Dave Binkley, Mariano Ceccato, Mark Harman, Paolo Tonella.
Automated Pointcut Extraction.
Software refactoring consists of the modification of internal
program structure without altering the external behavior (semantic
preservation). It aims at improving internal quality factors, such as
modularity, in order to make the code easier to understand and evolve in the
future. Among the various refactorings, a category quite unexplored is
refactoring Object Oriented Programming (OOP) to Aspect Oriented Programming
(AOP). AOP is expected to improve the structure of existing code by offering
modular units for functionalities whose implementation is otherwise scattered
through many modules.
An investigation of automated support for a programmer in the migration from
OOP to AOP code is presented. In particular, the applicability of
semantic-preserving code transformations to automate the migration task is
considered. The contribution of this work is a list of refactorings, that are
described together with the conditions under which they can be applied.
Several variants of each refactoring are also considered.
Supporting the refactoring
activity by means of automated tools allows migration difficulties to be
mitigated and thus the benefits of AOP become easier to achieve for legacy OOP