Making Choices: A Comparison of Styles for Software Architecture
Author: Mary Shaw
IEEE Software, special issue on software architecture, Vol 12,
No 6, November 1995, pp. 27-41. Translated as "Stijlen voor
architectuurontwerp; een vergelijking:, IT Management [Select],
#3, September 1997, pp. 29-51.
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.
Keywords: Software architecture, object-oriented design,
information hiding, state machines, feedback control, real-time
design, automobile cruise control.
Brought to you by the
Software Systems Research Group in the School
of Computer Science at Carnegie Mellon
[Last modified 11-Feb-1999.
Mail suggestions to the Maintainer.]