Spring 2002 - Michael Elhadad
This seminar (2 credits) focuses on the exploration of a new approach to
programming called Aspect Oriented Programming (AOP). The seminar will involve
presenting papers and short exploratory programming assignments.
Objectives
The objectives of the seminar are:
- Learn the motivation for AOP (separation of concern, modularization of
crosscutting aspects, aspectual recomposition).
- Get practical experience with existing AOP tools (AspectJ, JAC)
- Learn about underlying techniques making AOP possible - including
compile-time extensions (AspectJ), generic programming,
development tools (AspectJ), runtime meta-programming (MOP: OpenJava,
JavaAssist, OpenC++).
Lectures
- Introduction to AOP: motivation, starting points. Overview of AspectJ.
- Modularization, top-down decomposition.
- Cross-cutting concerns: issues which cannot be implemented in a modular
manner, but require scattering code in many classes.
Example: logging, tracing, debugging, performance monitoring,
authorization, transaction, persistence.
- Problem to be addressed by AOP: how to code cross-cutting concerns in a
modular manner, without creating additional coupling.
- Approach: (1) concern identification, (2) base code, cross-cutting code,
weaving (addition of cross-cutting code on top of the base code).
- AspectJ intro
- JAC Java Aspect Components (Yuval Nir and Limor Lahiani)
- AOP in Python (Miki Tebeka)
- JavAssist (Lior and Olga)
- OpenJava:
- Lecture (Tanya Kogan and Alex)
- OpenJava Homepage
-
OpenJava: A Class-Based Macro System for Java
Michiaki Tatsubori, Shigeru Chiba, Marc-Olivier Killijian
and Kozo Itano
Lecture Notes in Computer Science 1826,
Reflection and Software Engineering,
,
Walter Cazzola, Robert J. Stroud, Francesco Tisato (Eds.),
Springer-Verlag,
pp.117-133,
2000.
[PS]
- AOP in Scheme
- JSE (Java Syntax Expander) and JTS (Jakarta Tool Suite)
- AOP for GUI and Publish/Subscribe programming
- AOP and CORBA
Assignments
Resources
- Aspect Oriented Programming portal
- AspectJ
- OpenJava
- Aspect C
- AMT
- Composition Filters
Last modified 14 Apr 2002
Michael Elhadad