Software Engineer, Your next Programming Instructor.

"Here I share myself."

Friday, 26 June 2020

Software Architecture and Architecture styles in Software Engineering

To understand the concept of Software Architecture you should have knowledge and concept of what is Architecture.
When you here this word, At the most simplistic level, you think about the overall shape of the physical structure. The word Architecture put the image of building into your mind most of the time but not simple building the most beautiful and well engineered building.

Why this happen?
Why this happen? Because just making a building is not the goal of arch Making a building by keeping all technical aspects in mind and dealing with them is the goal of architecture.

It is the way in which the building fits into its environment and meshes with other buildings in its vicinity.

It is the degree to which the building meets its stated purpose and satisfies the needs of its owner.

The architecture is not the operational thing.
Rather, it is a representation that enables you to:
  1. analyze the effectiveness of the design in meeting.
  2. consider architectural alternatives at a stage when making design changes is still relatively easy.
  3. reduce the risks associated with the construction.
The concept of Software Architecture:
I hope now you would have the basic mind set about what is the Architecture. Its time to move towards the concept of software architecture.

Architecture serves as a blueprint for a system . It provides an abstraction to manage the system complexity.

It defines a structured solution to meet all the technical and operational requirements, while optimizing the common quality attributes like performance and security.

IEEE defines architectural design as “the process of defining a collection of hardware  and software components and their interfaces to establish the framework for the development of a computer system.”

Software Architecture Styles:
Data centered architectures : 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. Existing components can be changed, and new client components
added to the architecture without concern about other clients. Client components independently execute processes.


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.
Call and return architectures: This architectural style enables you to achieve a program structure that
is relatively easy to modify and scale. two arch. styles are relative to this call and return architecture style.

Main program/subprogram architectures . This classic program structure decomposes function into a control hierarchy where a “main” program invokes a number of program components that 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 architectures The components of a system encapsulate data and the operations that must be applied to manipulate the data. Communication and coordination between components are accomplished via message passing.

Layered architectures: 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.




Why the architecture is important?
The answer to this question would be clear to you till know but still let me tell you some key points which will summed up why the software architecture is important.

Three key reasons that software architecture is important:

  1. Representations of software architecture are an enabler for communication between all parties (stakeholders) interested in the development of a computer based system.
  2. The architecture highlights early design decisions that will have a profound impact on all software engineering work that follows and, as important, on the ultimate success of the system as an operational entity.
  3. Architecture “constitutes a relatively small, intellectually graspable model of how the system is structured and how its components work together”.

Video Lecture in Hindi Urdu For the above notes.


No comments: