Architectural Foundations

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

Software Architecture

A software system’s architecture is the set of principal design decisions about the system.

Software architecture acts as a blueprint for the construction and evolution of a software system.

Architectural design decisions can cover:

  • Structure
  • Behavior
  • Interaction
  • Non-functional properties

Principal

Principal means that a design decision has enough importance to give it architectural status.

Therefore, not every design decision is architectural or necessarily affects the system’s architecture.

Fundamental Understanding

There are three fundamental understandings of software architecture:

  • Every application has an architecture.
  • Every application has at least one architect.
  • Architecture is not a phase in development.

Temporal Aspect

Architecture has a temporal aspect because design decisions are made and unmade throughout a system’s lifetime.

  • At any given point in time, a system has one architecture.
  • A system’s architecture changes over time.

Where Do Architectures Come From?

Architecture results from the interaction of:

  • Stakeholders
  • Development organization
  • Technical environment
  • Architect’s experience
  • Requirements
  • Architect(s)

These influences lead to the architecture of the system.

Architecture Business Cycle

The Architecture Business Cycle (ABC) describes the continuous relationship between architecture and its surrounding environment.

  • Architectures are influenced by stakeholders, organizations, technical environments, and architect experience.
  • These influences affect requirements and architectural decisions.
  • The resulting architecture affects the system and its environment.
  • The cycle continues through feedback.
Written by October 9, 2026 2 min read
Was this helpful?