This page describes the format of the course OOSA-AOP

Contents:

Assignment

In recent years a lot of researchers have started working on the observation that the current methods of abstraction in object-oriented languages and methodologies are not satisfactory. It seems that a lot of concerns that designers and implementors would like to think about separately cross-cut the current abstraction mechanism of classes. The first paper to really target this problem is
Separation of Concerns by Walter Hursch and Cristina Videira Lopes, Northeastern University technical report NU-CCS-95-03, Boston, February 1995. It's a good idea to read this paper first.

The aim of this course is to compare different research approaches that address this problem in order to come up with a clear overview of the similarities and differences between the approaches, to see how they could be combined, what the most interesting future research problems are, ...

To achieve this, pairs of students each have to study 2 approaches. In the week of February 15, a workshop will be held at EMN, where each pair will give a presentation of approx. 1 hour, introducing the two approaches and making a comparison. In between these presentations and after all presentations have finished a general discussion will be held to make one general comparison. In order for me to prepare this general discussion, all pairs of students should send me their slides in electronic format by February 7.

Topics

Below the eight groups of two topics to compare are described. As agreed on, by November 27, I need a list stating who will do which comparison. Each comparison should be carried out by an international group of two students.

Reading guidelines

Here are some guidelines stating which papers can best be read first for each topic. A lot of these papers are on the referred web-site. Others are in OOPSLA or ECOOP proceedings or in other books that should also be available at EMN. If you have any problems getting any of these references, please
contact me.

Aspect-oriented programming

Visit the AOP-homepage.

To learn about AOP it is best to first read the introductory paper: Aspect-Oriented Programming by Gregor Kiczales, John Lamping, Anurag Mendhekar, Chris Maeda, Cristina Videira Lopes, Jean-Marc Loingtier and John Irwin, in proceedings of the European Conference on Object-Oriented Programming (ECOOP97), Finland. Springer-Verlag LNCS 1241. June 1997. (It's also on the web). Also take a look at the slides and speaker notes of an invited talk about AOP.

Subject-oriented programming

Visit the SOP-homepage.

Read papers 1 and 4 of the recommended initial reading. You shouldn't try to understand all the theoretical details, but rather understand the ideas and principles.

Adaptive programming

Visit the Demeter-homepage.

To learn about adaptive programming there's a reading guide. Read the first two papers. Note that the third paper there is considered a different topic for this course (APPCs) and shouldn't be read by people only looking at Adaptive Programming.

Composition filters

Visit the Composition filters-homepage.

First read the paper "Solving the modeling problems of object-oriented languages by composing multiple aspects using composition filters" which can be found here. Also read the overview paper The Composition-Filters Object Model by Lodewijk Bergmans.

APPCs

APPCs are a sort of spring-off of the research in Adaptive programming. There's only one paper and some talks about it yet. You can find it all here.

Role-based software systems

This research was carried out in the lab of David Notkin, by Michael VanHilst and David Notkin. Read the papers on the research page of Michael VanHilst.

Catalysis

Visit the Catalysis-homepage.

Read the papers: "Catalysis -- rigorous component-based development" and "Models and Code: the connection".

OORAM

Read the first 3 chapters of the book Working with Objects: The OOram Software Engineering Method by T. Reenskaug, P. Wold and O. A. Lehne, Manning Publications, Greenwich CT, 1996.