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.
CITATION STYLE
Aldrich, J., Chambers, C., & Notkin, D. (2002). Architectural reasoning in ArchJava. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) (Vol. 2374, pp. 334–367). Springer Verlag. https://doi.org/10.1007/3-540-47993-7_15
Mendeley helps you to discover research relevant for your work.