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.

A field guide to boxology: preliminary classification of architectural styles for software systems
(1997) : M. Shaw and P. Clements
DOI: https://doi.org/10.1109/cmpsac.1997.624691
#classification #data_flow #design #message_passing #pipe_and_filter #
#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.

*Draw.io libraries for threat modeling*

This is a collection of custom libraries to turn the free and cross-platform Draw.io diagramming application into the perfect tool for threat modeling.

*Data Flow Diagrams*

Data Flow Diagramming is a simple diagramming technique used to gain an understanding of how data flows in an application or system. DFDs are excellent for getting a bird's-eye view of a system to facilitate threat modeling.

*Attack Trees*

Attack Trees are another kind of diagramming method that is great for exploring how a threat actor might attain a specific goal, or how an asset might be attacked.

#sdl #threat_modeling #attack-_trees #diagramming #data_flow-_diagram #drawio #dfd

https://github.com/michenriksen/drawio-threatmodeling

GitHub - michenriksen/drawio-threatmodeling: Draw.io libraries for threat modeling diagrams

Draw.io libraries for threat modeling diagrams. Contribute to michenriksen/drawio-threatmodeling development by creating an account on GitHub.

GitHub