Software Architecture and Architecture styles in Software Engineering
By: Hammad Maqbool
Tags: Software Architecture, Software, Software Testing, Software Engineering, Software Development

In Urdu/ Hindi Language

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:

analyze the effectiveness of the design in meeting. consider architectural alternatives at a stage when making design changes is still relatively easy. 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.