Architectural Evolution

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

Prescriptive vs. Descriptive Architecture

Prescriptive Architecture

A system’s prescriptive architecture captures the design decisions made before system construction.

It represents the:

  • As-conceived architecture
  • As-intended architecture

Descriptive Architecture

A system’s descriptive architecture describes how the system has actually been built.

It represents the:

  • As-implemented architecture
  • As-realized architecture

Architecture During System Evolution

When a system evolves, ideally its prescriptive architecture is modified first.

In practice, the system and its descriptive architecture are often modified directly.

This can happen because of:

  • Developer sloppiness
  • Short deadlines that prevent proper thinking and documentation
  • Lack of documented prescriptive architecture
  • Need or desire for code optimization
  • Inadequate techniques or tool support

Architectural Degradation

Architectural degradation includes two related concepts:

  • Architectural drift
  • Architectural erosion

Architectural Drift

Architectural drift occurs when principal design decisions are introduced into the descriptive architecture that:

  • Are not included in, encompassed by, or implied by the prescriptive architecture.
  • Do not violate the prescriptive architecture’s existing design decisions.

Architectural Erosion

Architectural erosion occurs when architectural design decisions are introduced into the descriptive architecture that violate the prescriptive architecture.

Architectural Recovery

If architectural degradation is allowed to occur, the system’s architecture may need to be recovered.

Architectural recovery is the process of determining a software system’s architecture from its implementation-level artifacts.

Examples of implementation-level artifacts include:

  • Source code
  • Executable files
  • Java .class files

Implementation-level views can become complex and virtually incomprehensible, making architectural recovery important.

Written by October 5, 2026 2 min read
Was this helpful?