software architecture and Demeter

Subject: software architecture and Demeter
From: Karl Lieberherr (
Date: Tue Mar 05 2002 - 08:51:04 EST


you find recent discussions about the work by Craig Chambers and our group.

Below are tow paragraphs from Jonathan's message:

I was struck by the parallels between the Law of Demeter and the
concept of "communication integrity" that developed within the software
architecture community. Communication integrity, the constraint that
components only communicate with other components along architectural
connections, is the key technical property enforced by ArchJava. One way
of looking at our work is explicitly specifying an object's "neighbors" in
a software architecture and using type-based techniques to enforce the Law
of Demeter for architectural components. In fact, we observed that it is
easier to use ArchJava to express the architecture of object-oriented
programs that already obey the Law of Demeter.


I had not thought of applying ArchJava's language features to a role-based
problem such as Flier until you suggested it. I was not able to access
the ArchJava.ppt file (perhaps a permissions problem?) but I have tried to
express it in ArchJava in the attached code. I think this solution
effectively isolates the Flier code from the rest of the system, and
enables its reuse across different animals that fly. However, I don't
think it is nearly as clean as a solution using a system like
Personalities, AspectJ, or open classes (such as in MultiJava). All of
the explicit connections required become somewhat cumbersome at the small
scale of individual objects in a system; moreover, I suspect that this
solution does not necessarily enforce all of the right constraints that a
"personality" should have.

-- Karl

This archive was generated by hypermail 2b28 : Tue Mar 05 2002 - 08:51:08 EST