AOSD Conference  
Program Overview
Technical Program
Student Extravaganza
Social Events
Technical Papers
Practitioner Reports
Student Extravaganza
Places to Eat
Internet Access
Lancaster & Lake District Photos

T5: Good AOP: Idioms, Rules, and Patterns in AspectJ

Date Tuesday, March 23, 2004 afternoon (half day)
Presenters Adrian Colyer, IBM UK
Wes Isberg
Level Intermediate: Attendees should be familiar with object-oriented software development and design patterns. Participants should also have past exposure to aspect-oriented programming and AspectJ (at least a tutorial).


In this tutorial, we will review AspectJ code solutions of all kinds --- idioms, rules, and patterns --- that can help programmers to work more effectively and think more clearly. The code solutions will be selected from AspectJ community contributions and our own work for their ability to increase quality by increasing modularity.

As we walk through each solution, we will introduce the code along with relevant evaluation criteria. The idioms and rules will serve to introduce the fundamental AOP mechanisms and how they can increase or decrease modularity, depending on how they are used. We will compare standard design patterns as rendered in Java and AspectJ to see where modularity benefits are found. Finally, we will evaluate candidates for AOP patterns in light of reusability. As we do this, we will explore the strengths and limitations of AspectJ and seek workarounds for weak spots. We will also evaluate which definitions and criteria for patterns, reusability, and modularity are helpful for programming in the wild.

By participating in this tutorial, developers will become familiar with reusable AspectJ code, alert to opportunities for reuse, and able to demonstrate the reusability and modularity benefits of potential solutions. Researchers and implementors will get a ground-up view of whether the claims of AOP are borne out in AspectJ code, whether patterns emerging from the AspectJ community reflect commonly accepted design criteria, and what problems remain for modularizing crosscutting concerns.


Adrian Colyer is an IBM UK Technical Staff Member with over ten years' experience building commercial middleware systems. The software engineering challenges involved in creating middleware product lines drew him to aspect-oriented software development, and he now leads a technical team inside IBM dedicated to developing and applying aspect-oriented technology. Outside IBM, Adrian started and leads the AspectJ Development Tools (AJDT) project on, and in 2003 assumed the leadership of the AspectJ project as well. He is a frequent speaker on aspect-oriented technology to audiences of all sizes and make-ups, both inside and outside IBM.

Wes Isberg joined the AspectJ team at Xerox PARC after working at Lutris Technologies on their J2EE application server and at Sun Microsystem's JavaSoft division on Java versions 1.1.2 to 1.2. He is a committer on the AspectJ project and an expert on the language.

Edited by the AOSD Conference Committee.  Send comments to: