Architectural Style

An architectural style, sometimes called an architectural pattern, is a set of principles — a coarse grained pattern that provides an abstract framework for a family of systems. An architectural style improves partitioning and promotes design reuse by providing solutions to frequently recurring problems. You can think of architecture styles and patterns as sets of principles that shape an application. Garlan and Shaw define an architectural style as: "a family of systems in terms of a pattern of structural organization. More specifically, an architectural style determines the vocabulary of components and connectors that can be used in instances of that style, together with a set of constraints on how they can be combined. These can include topological constraints on architectural descriptions (e.g., no cycles). Other constraints — say, having to do with execution semantics—might also be part of the style definition.” (David Garlan and Mary Shaw, January 1994, CMU-CS-94-166, see "An Introduction to Software Architecture")[1]

App Arch Guide 2.0 (Microsoft patterns&practices) list a number of architectural styles:

Architectural Style
source: InfoQ

Each of those architectural styles are applied to specific areas of interest:

Architectural Style 1
source: InfoQ

Benefits of Architectural Styles[2]
Architectural styles provide several benefits. The most important of these benefits is that they provide a common language. Another benefit is that they provide a way to have a conversation that is technology-agnostic. This allows you to facilitate a higher level of conversation that is inclusive of patterns and principles, without getting into the specifics. For example, by using architecture styles, you can talk about client-server versus N-Tier. According to Architectural Styles CS 377 Introduction to Software Engineering:

  • Design Reuse. Well-understood solutions applied to new problems.
  • Code reuse. Shared implementations of invariant aspects of a style.
  • Understandability of system organization. A phrase such as ‘client-server” conveys a lot of information.
  • Interoperability. Supported by style standardization.
  • Style-specific analysis. Enabled by the constrained design space.
  • Visualizations. Style-specific descriptions matching engineer’s mental models.

See Also

Architectural Risk
Architectural Pattern
Architectural Principles
Architecture Description Language (ADL)
Architecture Development Method (ADM)
Service Oriented Architecture (SOA)
Software Architecture
The Open Group Architecture Framework (TOGAF)
Architecture-Driven Modernization
Design Pattern
Enterprise Architecture


  1. What is Architectural Style MSDN
  2. A Quick Look at Architectural Styles and Patterns InfoQ

Further Reading