Paper appears in two files:
Download the Postscript text file and the Postscript table file.
Or, download the PDF text file and PDF table file.
Software architects use a number of commonly-recognized "styles" to guide their design of system structures. Each of these is appropriate for some classes of problems, but none is suitable for all problems. How, then, does a software designer choose an architecture suitable for the problem at hand? Two kinds of information are required: (1) careful discrimination among the candidate architectures and (2) design guidance on how to make appropriate choices. Here we support careful discrimination with preliminary classification of styles. We use a two-dimensional classification strategy with control and data issues as the dominant organizing axes. We position the major styles within this space and use finer-grained discriminations to elaborate variations on the styles. This provides a framework for organizing design guidance, which we partially flesh out with rules of thumb.
Brought to you by the Composable Software Systems Research Group in the School of Computer Science at Carnegie Mellon University.
[Last modified 11-Feb-1999.
Mail suggestions to the Maintainer.]