Reflection 2001 - The Third International Conference on Metalevel Architectures and Separation of Crosscutting Concerns - Kyoto, Japan, September 25-28, 2001

TUTORIALS

Tutorial 1    9/25 (Tue) 09:30-12:30

Reflective Programming in Java

Shigeru Chiba, Assistant Professor, Tokyo Institute of Technology

Length
half day
Language
Japanese
Tutorial Abstract (if any)
The tutorial will consist of two parts. The first part will cover basics of the Java Reflection API and the second part will cover overview of research activities of reflective programming.
Target Audience (if any)
The audience should be familiar with Java.

Tutorial 2    9/25 (Tue) 14:00-17:00

Aspect-Oriented Programming in Java with AspectJ(tm)

Gregor Kiczales, Professor, University of British Columbia

Length
half day
Language
English
Tutorial Abstract (if any)

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/.

Target Audience (if any)
The audience should be familiar with Java. Prior knowledge of aspect-oriented programming or AspectJ is not required.