Software architecture identifies the major components of the system and the means of their communication. The following are different software architectures and their respective pros and cons.
In data-flow architecture, data enters the system, and then a series of transformations are applied to the input data before getting the output. The system transfers the data with the help of
Call and return architectures are the most dominant architectures since the inception of software development. They decompose the main program into a number of program components which, in turn, may invoke other program components.
In data-centered architectures, shared data is held in a central repository and can be accessed, modified, deleted, or updated by any subsystem.
In layered architectures, the system is designed in a stack of layers. Each layer hides the layers below it. The functionality of a system is organized into layers, with each layer only dependent on the layer below it.
In client-server architectures, the system is divided into the following two components:-
The server component is the service provider while clients are the service requesters.
In peer-to-peer architecture, each component acts as both a client and a server, with no node having more importance than the other.
Free Resources