Architectural Styles

Work in progress. This note is still being written and incomplete.

An architectural style is a named collection of architectural design decisions that:

  • Are applicable in a given development context.
  • Constrain architectural design decisions for a particular system.
  • Elicit beneficial qualities in the resulting system.

Architectural styles are a primary way of capturing lessons learned from experience in software system design.

They:

  • Have less domain specificity than architectural patterns.
  • Can help determine structures ranging from subroutines to top-level application structures.

Definitions of Architectural Style

Architectural styles can also be understood as:

  • Recurring organizational patterns and idioms
    Established and shared understandings of common design forms.
  • Abstractions of recurring composition and interaction characteristics in a set of architectures.

Basic Properties of Styles

An architectural style has:

Design Vocabulary

A vocabulary of design elements such as:

  • Component types
  • Connector types
  • Data elements

Examples include:

  • Pipes
  • Filters
  • Objects
  • Servers

Configuration Rules

Rules that define the allowed composition of architectural elements.

These include topological constraints that determine how elements can be connected.

Semantic Interpretation

Compositions of design elements have well-defined meanings.

Possible Analyses

Systems built using a style can be analyzed using properties and constraints specific to that style.

Benefits of Using Styles

Design Reuse

Well-understood solutions can be applied to new problems.

Code Reuse

Shared implementations of invariant aspects of a style can be reused.

Understandability

A style can communicate a system’s organization clearly.

For example, the term client-server conveys significant architectural information.

Interoperability

Standardization associated with a style can support interoperability.

Style-Specific Analysis

The constrained design space makes specific architectural analyses possible.

Visualization

Style-specific visualizations can match engineers’ mental models.

Style Analysis Dimensions

When analyzing an architectural style, consider:

  • What is the design vocabulary?
  • What component and connector types are used?
  • What are the allowable structural patterns?
  • What is the underlying computational model?
  • What are the essential invariants of the style?
  • What are common examples of its use?
  • What are the advantages and disadvantages of using the style?
  • What are the style’s specializations?

Common Architectural Styles

CategoryArchitectural Styles
Traditional, Language-InfluencedMain program and subroutines, Object-oriented
LayeredVirtual machines, Client-server
Data-FlowBatch sequential, Pipe and filter
Shared MemoryBlackboard, Rule-based
InterpreterInterpreter, Mobile code
Implicit InvocationEvent-based, Publish-subscribe
OtherPeer-to-peer, C2, CORBA
Written by October 5, 2026 3 min read
Was this helpful?