T10 : Aspect-Oriented Refactoring: Taking Refactoring to a New Level
||Tuesday, March 15, 2005 afternoon (half day)
Presenter Ramnivas Laddad
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
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: webmasteraosd.net