- Architectural design represents the structure of data and program components that are required to build a computer-based system
- It considers the architectural style that the system will take, the structure and properties of the components
- that constitute the system, and the interrelationships that occur among all architectural components of a system.
- The architecture highlights early design decisions that will have a reflective impact on all software engineering work that follows and, as important, on the ultimate success of the system as an operational entity.
Data-centered architecture style
A data store (e.g., a ﬁle or database) resides at the center of this architecture and is accessed frequently by other components that update, add, delete, or otherwise modify data within the store
This architecture is applied when input data are to be transformed through a series of computational or manipulative components into output data. A pipe and ﬁlter pattern has a set of components, called ﬁlters, connected by pipes that transmit data from one component to the next . Each ﬁlter works independently of those components upstream and downstream, is designed to expect data input of a certain form, and produces data output (to the next ﬁlter) of a speciﬁed form.However, the ﬁlter does not require knowledge of the working of its neighboring ﬁlters.
Call and return architecture
This architectural style enables a software designer (system architect) to achieve a program structure that is relatively easy to modify and scale
A number of sub styles exist within this category:
- Main program/subprogram architectures. This classic program structure decomposes function into a control hierarchy where a “main” program invokes a number of program components, which in turn may invoke still other components
- Remote procedure call architectures. The components of a main program/ subprogram architecture are distributed across multiple computers on a network
- The components of a system encapsulate data and the operations that must be applied to manipulate the data
- Communication and coordination between components is accomplished via message passing
- A number of different layers are defined, each accomplishing operations that progressively become closer to the machine instruction set
- At the outer layer, components service user interface operations
- At the inner layer, components perform operating system interfacing
- Intermediate layers provide utility services and application software functions