Shigeru Chiba, Assistant Professor, Tokyo Institute of Technology
Gregor Kiczales, Professor, University of British Columbia
Aspect-oriented programming (AOP) is a technique for improving separation of concerns in software design and implementation. AOP works by providing explicit mechanisms for capturing the structure of crosscutting concerns.
AspectJ is a seamless aspect-oriented extension to Java(tm). 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 use numerous examples to develop participant's understanding of aspect-oriented programming through AspectJ. We will also demonstrate AspectJ's integration with IDEs such as JBuilder 4.0 and Forte4J, and emacs.
AspectJ is freely available at http://www.aspectj.org/.