| Aspect-oriented programming (AOP)
is a technique for improving separation of concerns in software design
and implementation, and an intriguing new approach to thinking about
design and programming, falling broadly within the emerging trend
of Generative Programming techniques.
AOP works by providing explicit mechanisms for capturing the structure
of crosscutting concerns. 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. It includes numerous examples to develop participants'
understanding of AOP through AspectJ. It will also demonstrate AspectJ's
integration with IDEs such as JBuilder.
AspectJ is freely available at http://www.aspectj.org.
Participants may optionally wish bring a laptop installed with
AspectJ and integration with one of its supported IDEs, as there
may be a few short programming experiments to add some fun.