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