- 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 file 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
![](https://educatech.in/wp-content/uploads/2024/02/ar1.jpg)
Data-flow architectures
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 filter pattern has a set of components, called filters, connected by pipes that transmit data from one component to the next . Each filter 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 filter) of a specified form.However, the filter does not require knowledge of the working of its neighboring filters.
![](https://educatech.in/wp-content/uploads/2024/02/ar2.jpg)
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
Object-oriented architecture
- 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
Layered architecture
- 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
![](https://educatech.in/wp-content/uploads/2024/02/ar3.jpg)