Styles, Patterns and DSSA

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

Architectural Styles

Certain design choices regularly result in solutions with superior properties compared with other alternatives.

These solutions may be more:

  • Elegant
  • Effective
  • Efficient
  • Dependable
  • Evolvable
  • Scalable

Definition

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 within that context.
  • Elicit beneficial qualities in the resulting system.

Architectural Style Example

  • Physically separate components that request services from components that provide services.
  • Make service providers unaware of requesters’ identities.
  • Insulate requesters from one another.
  • Allow multiple service providers to emerge dynamically to balance the load.

These decisions support distribution, scaling, independent addition and removal, and load balancing.

Architectural Patterns

An architectural pattern is a set of architectural design decisions that:

  • Applies to a recurring design problem.
  • Is parameterized for different software development contexts in which the problem appears.

A widely used pattern in modern distributed systems is the three-tiered system pattern.

It is used in areas such as:

  • Science
  • Banking
  • E-commerce
  • Reservation systems

Architectural styles are strategic, while architectural patterns are tactical.

Three-Tiered Pattern

Front Tier

Contains the user interface functionality used to access the system’s services.

Middle Tier

Contains the application’s major functionality.

Back Tier

Contains the application’s data access and storage functionality.

Domain Specific Software Architecture

Domain Specific Software Architecture (DSSA) captures and characterizes the best solutions and best practices from past projects within a particular domain.

DSSA allows:

  • New applications to focus on points of novel variation.
  • Reuse of applicable parts of the architecture and implementation.
  • Reuse across product lines.

A DSSA is an assemblage of software components that are:

  • Specialized for a particular type of task or domain.
  • Generalized for effective use across that domain.
  • Composed in a standardized structure (topology) effective for building successful applications.

Patterns, Styles and DSSAs

Patterns, styles, and DSSAs differ mainly in their scope and application-domain knowledge:

  • Program design patterns
    Smaller scope and shallower domain knowledge.
  • Architectural patterns
    Broader scope and greater architectural knowledge.
  • Architectural styles
    Wider application scope and architectural constraints.
  • Domain-specific software architectures
    Broad system scope and deep domain knowledge.
Written by October 7, 2026 2 min read
Was this helpful?