Explain Software architecture and software design

  • 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

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.

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

Leave a Reply