ArchJava: Connecting Software Architecture to Implementation

The International Conference on Software Engineering (ICSE '02), Orlando, Florida, May 19-25, 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, causing confusion, violating architectural properties, and inhibiting software evolution. ArchJava is an extension to Java that seamlessly unifies software architecture with implementation, ensuring that the implementation conforms to architectural constraints. A case study applying ArchJava to a circuit-design application suggests that ArchJava can express architectural structure effectively within an implementation, and that it can aid in program understanding and software evolution.

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


ArchJava Project, jonal@cs.washington.edu