Software Architecture Patterns – Introduction

Hi Everyone,

I am currently pursuing Masters from BITS Pilani. In the second semester exam, I had a subject named – ‘Software Architectures’. For a ‘serious’ software developer, this is an awesome subject to study and get masters on!


I am going to share some of the vital topics from this subject which will definitely help you in creating / understanding software architectures and it’s process easily!

Begining with, there are various ways of developing an architecture. It depends upon the organization’s way of approaching a solution, problem and architect’s way of handling the problems. We will see different architecture pattern types after going through Architecture Business Cyclle ( ABC ).

Architecture Business Cycle:


Software architecture is a result of technical, business, and social influences. Its existence, in turn, influences these technical, business, and social environments. This cycle of influences from the environment to the architecture and back to the environment is called the Architecture Business Cycle.

This cycle provides the details of stakholders of the System, overall architect’s experience, requirements quality attributes and their influence on the environment.

Below are ‘some’ of the architecture technique ( styles ):

1)   Pipes and Filters 


         Examples of this architecture are: Unix Shell Programs and Compilers

Main Characteristics:

1) No data sharing
2) Do not know upstream / downstream filters
3) Correctness does not depend on order of incremental processing


1) Often reduces to batch processing system
2) Difficult to support interactive applications

2)  MVC ( Model View Controller )


             Model – refers to data model
             View – refers to external views or presentation of data.
             Controller – refers to module relating reactions of view or presentation to changes in data.

3) Broker



1) Location Transparency

2) Changeability / Extensibility of components

3) Portability (of client and server)

4) Portability (of brokers) & Interoperability (among brokers)

5) Reusability


1) Overheads – Performance Loss

2) Lower fault tolerance

3) Developmental issues (Testing / Debugging)

@MsWizKid signing off,

Enjoy 🙂

One thought on “Software Architecture Patterns – Introduction

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s