Distilling Software Architecture Primitives from Architectural Styles

TitleDistilling Software Architecture Primitives from Architectural Styles
Publication TypeReport
Year of Publication2002
AuthorsMehta, N. R., and N. Medvidović
Series TitleTechnical Report
Document NumberUSCCSE-2002-509
Date PublishedSeptember 2002
InstitutionUniversity of Southern California, Center for Software Engineering
CityLos Angeles
TypeTechnical Report
Keywordsarchitectural style, software architecture
Abstract

Architectural styles codify commonly used idioms in system structures, organizations, and interactions. Existing classifications of architectural styles provide empirical guidelines for style selection, but fail to systematically characterize styles or reveal their foundations. Moreover, the mapping between architectural styles and their implementations is generally poorly understood. This paper introduces an approach towards a systematic understanding of architectural styles based on a small set of recurring architectural primitives. Also proposed is an extensible composition framework for architectural styles based on these primitives, which is, in turn, used as the basis of style implementation. This framework, called Alfa, has been applied successfully to four different architectural styles to date. Lightweight compositional models of the styles have been created using the Alloy formal modeling notation, whereas implementation infrastructures for these styles have been developed in Java. While it would be premature to claim that Alfa is sufficiently expressive to represent any arbitrary architectural style, our experience to date suggests that we have converged on a set of primitives that effectively captures the characteristics of a large number of styles. As such, we feel that Alfa already presents a unique contribution and is worthy of careful further study.