Software Architecture in Practice

Read this section to learn about the main elements, patterns, quality attributes, and principles of software architecture, including encapsulation, polymorphism, and dependencies. Pay attention to design patterns and their importance in software design.

6. Architectures Classifications

Layered Architecture 

Components are organized into horizontal layers 

An example of a layered architecture is the MVC architecture

Layered Architecture Diagram Example

Model-View-Controller (MVC) 

A way to build applications with a user interface 

  • Model - represents how data is persisted 
  • View - the presentational layer that the end user sees 
  • Controller - the mediator between the model and the view

Plugin Architecture 

Components are organized as plugins where you can use different components in an extensible and reusable way

Plugin Architecture Diagram Example


Pipes and Filters Architecture 

The main components of this architecture are pipes and lters, particularly with processing data 

  • Pipe - data ows from point to point 
  • Filters - transformations or lters that mutates the data that feeds into other pipes or sinks 
  • Sinks - where the data ultimately will be stored after a series of transformations

Pipes and Filters Architecture Diagram Example