Title | Distilling Software Architecture Primitives from Architectural Styles |
Publication Type | Report |
Year of Publication | 2002 |
Authors | Mehta, N. R., and N. Medvidović |
Series Title | Technical Report |
Document Number | USCCSE-2002-509 |
Date Published | September 2002 |
Institution | University of Southern California, Center for Software Engineering |
City | Los Angeles |
Type | Technical Report |
Keywords | architectural 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. |