Software Design Methodology

In this section, we re-examine the software architectural styles presented in the previous chapters using the theory of design spaces. We will first discuss the structural and behavioural features of software architectural styles that distinguish one style from another. We will then discuss how various architectural styles can be classified by the structural and behavioural features.
The structural feature of an architectural style is related to the structure of software systems in the style. These features include:
Constituent parts: What are the allowable kinds of components and connectors of the style? For example, in the pipe-and-filter style, components must be filters and connectors must be pipes.
Control topology: What geometric form does the control flow for the systems of the style take? For example, in the main-program-and-subroutine style, components must be organised into a hierarchical structure.
Data topology: What geometric form does the data flow for the systems of the style take? For example, in the batch sequential processing style, components are organised in a linear sequence structure that data are passed from one component to the next.
Control/Data interaction topology: Are the topological structures of control topology and data topology substantially isomorphic? For example, for all systems in the batch sequential processing style, the topological structure from the control-flow point of view is identical to the structure from the data-flow point of view. In the main-program-and-subroutine style, from the control point of view,...