T5: Good AOP: Idioms, Rules, and Patterns in AspectJ
||Tuesday, March 23, 2004 afternoon (half day)
||Adrian Colyer, IBM UK
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
Eclipse.org, 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: email@example.com