AOSD Conference  
Program Overview
Technical Program
Industry Track
Student Extravaganza
Conference Venue
Chicago Photos
Chicago History
Student Volunteers
AOSD-Europe Sponsorships

T10 : Aspect-Oriented Refactoring: Taking Refactoring to a New Level

Date Tuesday, March 15, 2005 afternoon (half day)
Presenter Presenter Ramnivas Laddad
Level Intermediate: Attendees should have some background in aspect-oriented programming and basic knowledge of conventional refactoring techniques.


Refactoring techniques have gained popularity due to their practical value in creating more agile code. Aspect-oriented programming (AOP) is receiving an increased attention due to its power in encapsulating crosscutting concerns. Refactoring allows reorganizing code while preserving the external behavior, while AOP facilitates modularizing crosscutting concerns in a system through use of a new unit of modularity called aspect. Individually, refactoring and AOP both share the high-level goal of creating systems that are easier to understand and maintain without requiring huge upfront design effort. A combination of the two---aspect-oriented refactoring---helps in reorganizing code corresponding to crosscutting concerns to further improve modularization and get rid of the usual symptoms of crosscutting: code-tangling and code-scattering.

This tutorial will examine fundamentals of aspect-oriented refactoring, a few common patterns, several techniques, and a few examples in J2EE space. Participants will learn that aspect-oriented refactoring provides means beyond conventional refactoring techniques. While steps in conventional refactoring modularize code to a certain point, the use of AOP squeezes out the code that cannot be further refactored. Aspect-oriented refactoring offers substantial improvement to the code in a variety of situations: exception handling policies, local contract enforcements, resource management and optimization schemes, concurrency control, worker object creation, and so forth. Application of aspect-oriented refactoring leads to code that is easy to understand, highly consistent, and simple to change.


Ramnivas Laddad is an author, speaker, consultant, and trainer specializing in aspect-oriented programming and J2EE. His most recent book, "AspectJ in Action: Practical aspect-oriented programming" (Manning, 2003), has been labeled as the most useful guide to AOP/AspectJ. He has been developing complex software systems using technologies such as Java, J2EE, AspectJ, UML, networking, and XML for over a decade. Ramnivas is an active member of the AspectJ user community and has been involved with aspect-oriented programming from its early form. He speaks regularly at many conferences such as JavaOne, No Fluff Just Stuff symposiums, O'Reilly Open Source Convention, and European Logon Web Days. Ramnivas lives in Sunnyvale, California. You can find more about Ramnivas at his website

Edited by the AOSD Conference Committee.  Send comments to: