Architectural Reasoning in ArchJava

The European Conference on Object-Oriented Programming (ECOOP '02), Malaga, Spain, June 10-14, 2002.
Jonathan Aldrich, Craig Chambers, and David Notkin
Software architecture describes the structure of a system, enabling more effective design, program understanding, and formal analysis. However, existing approaches decouple implementation code from architecture, allowing inconsistencies that cause confusion, violate architectural properties, and inhibit software evolution. We are developing ArchJava, an extension to Java that seamlessly unifies software architecture with an object-oriented implementation. In this paper, we show how ArchJava's type system ensures that implementation code conforms to architectural constraints. A case study applying ArchJava to an Islamic tile design application demonstrates that ArchJava can express dynamically changing architectures effectively within implementation code, and suggests that the resulting program may be easier to understand and evolve.

To get the paper, click here (PDF format).


ArchJava Project, jonal@cs.washington.edu