is an aspect-oriented refactoring of JHotDraw
, a relatively large and well-designed open source Java framework for technical and structured 2D graphics. It was started to experiment with the feasibility of adopting aspect-oriented solutions in existing software and demonstrate the strategies proposed by research of the Software Evolution Research Lab
of Delft University of Technology in the Netherlands. It is written using AspectJ
, an aspect language that extends Java with crosscutting functionality.
Since behavior conservation is an important element of refactoring, we are also developing TestJHotDraw
a test suite that can be used to test both the original JHotDraw
and its aspect-oriented counterpart AJHotDraw
was originally developed as an exercise to show a good use of object oriented design patterns (GoF
) in a Java implementation. The fact that JHotDraw
is considered a well-designed application makes it an ideal candidate as showcase for aspect-oriented migration.
is open source software, distributed under the LGPL License
and hosted at SourceForge
Anticipated releases of AJHotDraw
are described in the AJHotDraw Release Plan
You are more than welcome to join the AJHotDraw
and offer aspect-oriented implementations of your favorite crosscutting concerns.
for further details.
The following paper summarizes the aims, objectives and experience of the AJHotDraw