(1997) : Shaw, M. Clements, P.
DOI: https://doi.org/10.1109/cmpsac.1997.624691
#pipe_and_filter #classification #message_passing #design #software_architecture #data_flow #my_bibtex
A field guide to boxology: preliminary classification of architectural styles for software systems
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. In this paper, we support careful discrimination with a preliminary classification of styles. We use a 2D 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.