Comparing architectural design styles
Date of Original Version
Abstract or Description
Good engineering solves problems not only by applying scientific techniques but also by making design choices that reconcile conflicting requirements. We are interested here in architectural design of software systems--that is, the overall organizations and system-level properties of software systems. Early decisions about design strategies can have far-reaching consequences, because they shape the analysis of the problem and the expression of the design. This paper explores the consequences of one of the earliest decisions, the choice of architectural style and its associated notations. The paper shows how different architectural styles lead not simply to different designs, but to designs with distinctly--and significantly--different properties. It examines eleven different published designs for "the same" problem (automobile cruise control), classifies and compare the approaches, and discusses major differences among the resulting solutions. Although all the designers nominally designed automobile cruise controls, they actually produced a wide range of solutions to somewhat different problems. The issues addressed in the designs depend on the choice of architectural style, and most styles use multiple models in the design. The comparison illustrates some of the relative advantages and shortcomings of the styles and provides some guidance for selection.