Software Engineering (2160701)

BE | Semester-6   Summer-2017 | 04/27/2017

Q3) (b)

What is architectural design? Enlist different style and patterns of architecture.

  • Large systems are decomposed into subsystems
  • Sub-systems provide related services
  • Initial design process includes
  • Identifying sub-systems
  • Establishing a framework for sub-system control and communication
 

Why to document the Architecture?

  • Stakeholder Communication: High-level presentation of system
  • System Analysis: Big effect on performance, reliability, maintainability and other -ilities
  • Large-scale Reuse: Similar requirements similar architecture
 

Architectural Styles

Data-centered architecture style

  • A data store (Ex., a file or database) resides at the center of this architecture and is accessed frequently by other components.
  • Client software accesses a central repository.
  • In some cases the data repository is passive.
  • That is, client software accesses the data independent of any changes to the data or the actions of other client software.

Data-flow architectures

  • This architecture is applied when input data are to be transformed.
  • 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.

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 as below.
  • 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.