The Importance of Software Architecture Styles

An architectural style is a general, reusable solution to a commonly occurring problem in software architecture within a given context.

You must have heard the phrase “Don’t reinvent the wheel”. In this context, don’t waste time in coming up with your own solution architecture, instead you can focus on development by using the architecture styles which suits your business need. These architectures are proven and matured over time with help on industry experts

Some benefits of architecture styles:

  • Makes your solution flexible and extendible, usable on the long term.
  • Make it possible to adapt to new requirements.

Before i talk more about the architecture styles, let’s first understand what is software architecture and the importance of it.

What is Software Architecture?

Software architecture is a high level structure or blueprint which describes relations among different components used in the final solution. Which make easy the software understanding and development.

Irrespective of software development process(Agile, Waterfall) you choose, it’s recommended to decide the structure for your solution before writing a single line of code. Because changing the structure is very costly once implemented

These are the popular architecture styles:

What is TOGAF?

TOGAF is an enterprise architecture framework that helps define business goals and align them with architecture objectives around enterprise software development.

Software Design Patterns

Design pattern is a general reusable solution to a commonly occurring problem in software design.

Design patterns were originally grouped into the categories: creational patterns, structural patterns, and behavioral patterns.

Creational Pattern

It deals with mechanism how the objects should be created in a specific situation.

Popular creational patterns are

  • Abstract factory pattern, which provides an interface for creating related or dependent objects without specifying the objects’ concrete classes.
  • Builder pattern, which separates the construction of a complex object from its representation so that the same construction process can create different representations.
  • Factory method pattern, which allows a class to defer instantiation to subclasses.
  • Prototype pattern, which specifies the kind of object to create using a prototypical instance, and creates new objects by cloning this prototype.
  • Singleton pattern, which ensures that a class only has one instance, and provides a global point of access to it.

Structural Pattern

Structural patterns makes the design easy by identifying a simple way to realize relations among entities/classes.

Popular structural patterns are

  • Adapter pattern: ‘adapts’ one interface for a class into one that a client expects.
  • Bridge pattern: decouple an abstraction from its implementation so that the two can vary independently .
  • Composite pattern: a tree structure of objects where every object has the same interface.
  • Decorator pattern: add additional functionality to a class at runtime where subclassing would result in an exponential rise of new classes.
  • Facade pattern: create a simplified interface of an existing interface to ease usage for common tasks.
  • Flyweight pattern: a large quantity of objects share a common properties object to save space.
  • Marker pattern: an empty interface to associate metadata with a class.
  • Pipes and filters: a chain of processes where the output of each process is the input of the next.
  • Proxy pattern: a class functioning as an interface to another thing.

Behavioral Pattern

Behavioral design patterns deal with how objects will be carrying out communication with each other.

Popular behavioral patters are

Create a website or blog at WordPress.com

Up ↑