COM 3362 Advanced Object-Oriented Systems (AOOS)

Course Directory, to contain lecture notes, syllabus, reading material, homeworks, etc.

AOOS in 2002 will focus on Aspect-Oriented Software Development (AOSD). AOSD would be a better title for the course.

Aspect-Oriented Software Development addresses the problem that module constructs in design and programming languages do often not align with the concerns of the programmer. This leads to code that is scattered, because one concern is spread across many modules, and code that is tangled, because each module contains information about several concerns. We call this the Scattering/Tangling (ST) problem.

AOSD is an emerging discipline which applies to functional programming, object-oriented programming and other programming paradigms. Aspect-Oriented Programming (AOP) is a subfield of AOSD that focuses on the implementation phase of AOSD.

The course will focus on controlling the ST problem. Numerous aspect-oriented programming and design languages and systems have been developed. The Communications of the ACM, October 2001 contains a special issue on AOP. In April 2002 is the first AOSD conference and we will study some of those papers as well (

We will use the following software resources:

Industrial Stories JavaWorld January 2002

AspectJ from Xerox PARC AspectJ home page ||| AspectJ Use at CCS ||| LocalAspectJ Documentation
Aspectual Collaborations: An implementation by Johan Ovlinger at NU CCS..
Hyper/J from IBM.
DJ: A simple tool for Java programmers.

The prerequisites for the course are: COM 3230 (Object-Oriented Design) _or_ COM 3360 (Adaptive Object-Oriented Software Development). The course is also open to advanced undergraduate students who have taken COM 1205 with me.

Aspect-Oriented Software Development

Home page of COM 3362