EXTRACTOR: An extensible framework for identifying Aspect-Oriented refactoring opportunities

Automatic refactoring techniques guarantee the correctness and effectiveness for the transformation of legacy software systems. Existing techniques are not effective to identify refactoring opportunities because of the complexity of composite refactoring and the behavior preservation for Aspect-Oriented refactoring. To address these challenges, we design EXTRACTOR, which is an extensible framework to identify Aspect-Oriented refactoring opportunities. In the framework, the bad smell detector provides significant query ability to detect bad smells, while the template manager enables the customization of bad smell and composite refactoring. Then refactoring opportunities are identified using logic transformation managed by EXTRACTOR Constructor. All these functionalities are based on the logic query engine, which manages the logic representation of programs. Finally we illustrate the effectiveness of the framework using case study.

[1]  Günter Kniesel,et al.  Static composition of refactorings , 2004, Sci. Comput. Program..

[2]  Barbara Staudt Lerner,et al.  A Basis for AspectJ Refactoring , 2010 .

[3]  William F. Opdyke,et al.  Refactoring object-oriented frameworks , 1992 .

[4]  Tom Mens,et al.  Identifying refactoring opportunities using logic meta programming , 2003, Seventh European Conference onSoftware Maintenance and Reengineering, 2003. Proceedings..

[5]  Günter Kniesel,et al.  A comparison of logic-based infrastructures for concern detection and extraction , 2007, LATE@AOSD.

[6]  Shimon Rura Refactoring Aspect-Oriented Software , 2003 .

[7]  Roel Wuyts,et al.  Declarative reasoning about the structure of object-oriented systems , 1998, Proceedings. Technology of Object-Oriented Languages. TOOLS 26 (Cat. No.98EX176).

[8]  Roel Wuyts,et al.  A Logic Meta-Programming Approach to Support the Co-Evolution of Object-Oriented Design and Implementation , 2001 .

[9]  Javier Pérez,et al.  Enabling Refactoring with HTN Planning to Improve the Design Smells Correction Activity , 2008 .

[10]  Kim Mens,et al.  Supporting software development through declaratively codified programming patterns , 2002, Expert Syst. Appl..

[11]  Patrick Nixon,et al.  Composite Refactorings for Java Programs , 2000 .

[12]  João M. Fernandes,et al.  Refactoring a Java code base to AspectJ: an illustrative example , 2005, 21st IEEE International Conference on Software Maintenance (ICSM'05).

[13]  Günter Kniesel A Logic Foundation for Program Transformations , 2006 .

[14]  Ondrej Lhoták,et al.  abc: an extensible AspectJ compiler , 2005, AOSD '05.

[15]  Mark Harman,et al.  Automated refactoring of object oriented code into aspects , 2005, 21st IEEE International Conference on Software Maintenance (ICSM'05).