Aspect-Oriented Software Development (Advanced Software Development)

THE NEXT OFFERING OF THIS COURSE IS: FALL SEMESTER 2003. This course was formerly called Adaptive Object-Oriented Software Development: The Demeter Method. It was then renamed to Aspect-Oriented Software Development and for the purpose of the course description it is called Advanced Software Development because different people have different views of what Advanced Software Development should be. My view is that Aspect-Oriented Software Development is a very good approach to advanced software development and when I teach the course, it has the title Aspect-Oriented Software Development.

FALL SEMESTER 2003 COURSE INFORMATION (syllabus, course description, homeworks, projects, etc.)

WINTER 2003 COURSE INFORMATION (syllabus, course description, homeworks, projects, etc.)

FALL 2001 COURSE INFORMATION (syllabus, course description, homeworks, projects, etc.)

Emphasis on showing how Demeter ideas can be applied to software development with Java, UML and XML. The notion of a Demeter class dictionary is very close to the notion of an XML schema as well as to a UML class diagram.

The course is televised and video taped and can be ordered through NTU or Network Northeastern. Uses Java and tools for supporting adaptive programming, aspect-oriented programming and design patterns. UML modeling notation is used. Course requires Internet access and Java development tools on your computer. Java/design patterns/UML will be learned during the course. The only prerequisite is experience with Java or C++ equivalent to a two hour lab (see quiz below).

As in previous years, students can select work-related projects. Several students have integrated their work at their company with their course project for this course. The course is very well staffed. To help with individual projects there are two consultants (supported graduate students in the Demeter Research Project) who help you in applying Adaptive Object-Oriented Programming to your area of interest. The instructor suppervises all projects in collaboration with consultants. A success story which demonstrates this approach is a project at Hewlett-Packard.

The best way to prepare for the course before it starts is to learn about standard Java and XML technology. This will set up a practical context for the course and the connections to standard technology will be an important motivation for learning the concepts covered in the course.

Use your favorite Java book. Learn about the structure of the Java built-in collection classes. Study and enough Java so that you understand the basics of the Java Collections Framework.

XML schemas.
Learn how to describe the structure of documents and objects in XML by learning the basics of a schema language: . XML schemas are similar to class dictionaries that will be used in COM 3360. Study selected sections from so that you understand the basic structure of You don't need all the details.

Study to get a basic understanding of the XML navigation language called XPath. In COM 3360 we will use a subset of the XPath notation, namely the traversal specifications (also called propagation directives) described in

How to order the video taped version of the course: Contact Network Northeastern (NNU). Students can audit the course for about $600. If students want to receive lectures via videotape it will be an additional $100 for the quarter if they are not at one of the NNU company receive sites. They can register on line from the NNU web site, but if NNU needs to send them tapes they must call and arrange it with NNU. NNU's number is 617-373-5620 or email Mary Perkins (

  • Topic Coverage

    Demeter Home Page

    FALL 2000 COURSE INFORMATION (syllabus, course description, homeworks, projects, etc.)

    FALL 99 COURSE INFORMATION (syllabus, course description, homeworks, projects, etc.)

    FALL 98 COURSE INFORMATION (syllabus, course description, homeworks, projects, etc.)

    FALL 97 COURSE INFORMATION (syllabus, course description, homeworks, projects, etc.)

    FALL 96 COURSE INFORMATION (syllabus, course description, homeworks, projects, etc.)

    A recent message from a reader of the course textbook summarizes what the course tries to achieve:

    Date: Mon, 20 May 1996 15:49:38 -0400 (EDT)
    Subject: Thanks for Demeter
    The subject really gives it away. Thanks for Demeter.
    A few weeks I stumbled across the book in a local bookstore and
    it somehow drew my attention. Now after having studied it 
    I find myself employing the philosophy in the projects I am doing.
    I think this book for the first time provided really convincing material 
    in favor of OO programming.
    I especially like the structure-shyness of the approach.
    Although I follow the methodology I am 
    more than eager to use the tools. 

    The course teaches the concepts behind adaptive object-oriented software development and allows you to exercise the concepts by using an implementation which is built on top of Java.

    The course will cover a subset of the Unified Modeling Language (Booch/Rumbaugh/Jacobson) and of Java and JavaCC (a parser generator). Specifically, the projects will be Java and UML related.

    NEW: NNU students and students who use the video tapes only need a Java compiler and WWW access to take the course.


    Fall 1995 HOMEWORKS


    The files of the library application which is used in the Laboratory Guide are also available here .

    The Demeter System is known world-wide through papers in OOPSLA '88, '89, '90, '91, '95 (workshop), '98, ECOOP '90, '91, '92, '94, ICSE '88, '97, FSE '96, CSM '89, '93, ISOTAS '93, ER '90, CASE '92, IFIP '92, ISOTAS '93, IEEE Data Engineering '93, IEEE Computer '88, IEEE Software '89, IEEE Transactions on Software Engineering '93, '98 IEEE Transactions on Knowledge and Data Engineering '93, Theoretical Aspects of Computing '94, Communications of the ACM '94, Journal of Software Engineering '91, Journal on Lisp and Symbolic Computation '88, ACM Transactions on Programming Languages and Systems '95.

    The Demeter System is included or has been included in the course programs of Network Northeastern, National Technological University, OOPSLA, ECOOP, ELECTRO, Finnish and Swiss Summer School, MIT Summer Session. It has been taught at Northeastern University during the last 10 years.

    Prerequisites: You should know the basics of Java or C++ (like classes, objects, member functions, data members etc.) before you come to my course. For Northeastern students this means that they should have taken (or take concurrently) the C++ Lab (COM3116) or the new Java Lab.

    If you are not sure whether you have the prerequisites, take the quiz on C++. You should be able to answer all questions.

    Update on porting: The course uses DJ and DemeterJ which are written in Java and are currently being used on Windows 95, Windows NT, Unix (Solaris, SunOS, Digital Unix) and Linux. Since the system is written in Java it is easily portable.