Participants should be comfortable in Java, have experience in maintaining large applications, and be familiar with the concepts of Aspect-Oriented Programming.
We present the Demeter library, a Java package, and the aspect-oriented features it offers including clean modularization of traversal-related concerns, encapsulated lists that cut across the object structure, advice on traversals and maintaining multiple views on the class diagram.
Besides a layered introduction to the various features of Demeter using a sequence of Java programs, we also present the implementation highlights of Demeter.
We will introduce some of the AspectJ concepts and explain Java programs written with Demeter using the AspectJ terminology. Demeter and AspectJ are complementary tools and they have been successfully used together.
Karl J. Lieberherr is a Professor in the College of Computer Science at Northeastern University. His current research interests are methods and tools for developing adaptive software, with special emphasis on aspect-oriented software development. His research group is developing the Demeter System, consisting of the Method and the Tools, to facilitate software development by introducing novel high-level abstractions that support separation of concerns. He taught several tutorials at ICSE, OOPSLA and ECOOP.
Doug Orleans, Johan Ovlinger, and Pengcheng Wu are Ph.D. students under Karl Lieberherr. They work on various facets of Aspect Oriented Programming and software engineering.
Doug Orleans is a PhD student at Northeastern University studying programming language design under Karl Lieberherr. He is the principal implementer of the Demeter software.
Pengcheng Wu is a second year PhD student at Northeastern University,Boston,MA,USA. He is currently working with Prof. Karl Lieberherr to do research on the implementation of a translator from Aspectual Collaborations description to AspectJ code and extensions to the Adaptive Programming tools.
Johan Ovlinger is a PhD student at Northeastern. He is busy working on his thesis "Modular Programming with Aspectual Collaborations" which attempts to combine aspects and modules for use with Java. He and his advisor Karl Lieberherr hope to have a prototype implementation available for public preview any day now.