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.

[1]  Leonard J. Bass,et al.  Classifying architectural elements as a foundation for mechanism matching , 1997, Proceedings Twenty-First Annual International Computer Software and Applications Conference (COMPSAC'97).

[2]  Frederick Hayes-Roth,et al.  Rule-based systems , 1985, CACM.

[3]  Gregory D. Abowd,et al.  Formalizing style to understand descriptions of software architecture , 1995, TSEM.

[4]  Michael A. Jackson,et al.  Software requirements and specifications - a lexicon of practice, principles and prejudices , 1995 .

[5]  Edwin H. Satterthwaite,et al.  The Impact of Mesa on System Design , 1979, ICSE.

[6]  David Garlan,et al.  Using tool abstraction to compose systems , 1992, Computer.

[7]  David B. Wortman,et al.  Semantic analysis in a concurrent compiler , 1988, PLDI '88.

[8]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[9]  Gregory R. Andrews,et al.  Paradigms for process interaction in distributed programs , 1991, CSUR.

[10]  Paul C. Clements,et al.  A survey of architecture description languages , 1996, Proceedings of the 8th International Workshop on Software Specification and Design.

[11]  David Notkin,et al.  Gandalf: Software development environments , 1986, IEEE Transactions on Software Engineering.

[12]  Jeannette M. Wing,et al.  Programming at the processor-memory-switch level , 1988, Proceedings. [1989] 11th International Conference on Software Engineering.

[13]  James O. Coplien,et al.  Pattern languages of program design , 1995 .

[14]  H. Penny Nii,et al.  Blackboard Systems, Part One: The Blackboard Model of Problem Solving and the Evolution of Blackboard Architectures , 1986, AI Mag..

[15]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.

[16]  David Garlan First international workshop on architectures for software systems workshop summary , 1995, SOEN.

[17]  Mary Shaw,et al.  Abstractions for Software Architecture and Tools to Support Them , 1995, IEEE Trans. Software Eng..

[18]  Rubén Prieto-Díaz,et al.  Module interconnection languages , 1986, J. Syst. Softw..

[19]  E PerryDewayne,et al.  Foundations for the study of software architecture , 1992 .

[20]  Mary Shaw Alphard: Form and Content , 1981, Springer New York.

[21]  Mary Shaw,et al.  Some patterns for software architectures , 1996 .

[22]  Thomas G. Lane User interface software structures , 1990 .

[23]  Lawrence J. Best,et al.  Application Architecture: Modern Large-Scale Information Processing:Modern Large-Scale Informati , 1989 .

[24]  R.M. Baizer Living in the Next-Generation Operating System , 1987, IEEE Software.

[25]  H. P Nii,et al.  Blackboard Systems , 1986 .

[26]  David Garlan,et al.  Formalizing architectural connection , 1994, Proceedings of 16th International Conference on Software Engineering.

[27]  Marek Fridrich,et al.  Helix: The Architecture of the XMS Distributed File system , 1985, IEEE Software.

[28]  Stephen Travis Pope,et al.  A cookbook for using the model-view controller user interface paradigm in Smalltalk-80 , 1988 .

[29]  Laurence J. Best Application Architecture: Modern Large-Scale Information Processing , 1990 .

[30]  Penny Nii,et al.  Blackboard systems part two: Blackboard application systems , 1986 .

[31]  Carl Hewitt,et al.  PLANNER: A Language for Proving Theorems in Robots , 1969, IJCAI.

[32]  Mary Shaw,et al.  Beyond objects: a software design paradigm based on process control , 1995, SOEN.

[33]  Alexander L. Wolf,et al.  Acm Sigsoft Software Engineering Notes Vol 17 No 4 Foundations for the Study of Software Architecture , 2022 .

[34]  D. Corkill Blackboard Systems , 1991 .

[35]  F. P. Brooks,et al.  Grasping reality through illusion—interactive graphics serving science , 1988, CHI '88.

[36]  Maurice J. Bach The Design of the UNIX Operating System , 1986 .

[37]  Alfred Z. Spector Camelot : a distributed transaction facility for mach and the internet - an interim report , 1987 .

[38]  David Garlan,et al.  Exploiting style in architectural design environments , 1994, SIGSOFT '94.

[39]  Steven P. Reiss,et al.  Connecting tools using message passing in the Field environment , 1990, IEEE Software.

[40]  Mary Shaw,et al.  An Introduction to Software Architecture , 1993, Advances in Software Engineering and Knowledge Engineering.

[41]  Grady Booch,et al.  Object-oriented development , 1986, IEEE Transactions on Software Engineering.

[42]  Robert M. Balxer Living with the next generation operating system , 1986 .

[43]  Mark C. Paulk The ARC Network: A Case StudY , 1985, IEEE Software.

[44]  Mary Shaw,et al.  Software architecture - perspectives on an emerging discipline , 1996 .

[45]  David Garlan Architectures for Software Systems , 1995 .