program       registration       lodging       call for contributions       organization       [aosd home]

overview       technical papers       practitioner reports       workshops       tutorials       demos       exhibits      
Go back to Tutorials Home

T1: Aspect-Oriented Programming with AspectJ

Erik Hilsdale, Palo Alto Research Center
  - Wes Isberg

Date: Monday, March 17, morning (half day)

Level: Introductory

Attendees should have experience doing object-oriented design and implementation, and should be able to read Java code. No prior experience with aspect-oriented programming or AspectJ is required.


AspectJ is a seamless aspect-oriented extension to Java™. It can be used to cleanly modularize the crosscutting structure of concerns such as exception handling, multi-object protocols, synchronization, performance optimizations, and resource sharing.

When implemented in a non-aspect-oriented fashion, the code for these concerns typically becomes spread out across entire programs. AspectJ controls such code-tangling and makes the underlying concerns more apparent, making programs easier to develop and maintain.

This tutorial will introduce aspect-oriented programming and show how to use AspectJ to implement crosscutting concerns in a concise, modular way. We will also demonstrate and use AspectJ's integration with IDEs such as JBuilder, NetBeans, Emacs, and Eclipse, in addition to the core AspectJ tools.

AspectJ is freely available at


Erik Hilsdale is a researcher at the Palo Alto Research Center. As a member of the AspectJ team, he focuses on language design, pedagogy, and compiler implementation. He has written several conference and workshop publications in programming languages. He is an experienced and energetic instructor in programming languages with a long background with AspectJ.

Wes Isberg is a member of the AspectJ team and worked at Xerox's Palo Alto Research Center during the development of AspectJ 1.0 and 1.1. Before that he worked at Lutris Technologies on their open-source J2EE server and at Sun Microsystems on JDK 1.1 and Java 1.2.


For additional information, clarifications, questions, or special requirements, please contact the AOSD 2003 Tutorial Chair: Eric Eide (

 Send comments to: