Software Architecture (Wikipedia)

Wikipedia article on Software Architecture. Canonical reference-level overview of the field.

Summary

A comprehensive encyclopedic treatment of software architecture: its definition, scope, history, activities, characteristics, relationship to related fields, and sub-topics including architecture erosion, recovery, and the relationship to agile development.

Key Claims / Arguments

  • Software architecture is “the set of structures needed to reason about a software system” — comprising elements, relations, and properties of both
  • Two fundamental laws: (1) everything is a trade-off; (2) “why” is more important than “how”
  • Architecture involves making decisions that are costly to change once implemented
  • Architecture should be driven by quality attributes (non-functional requirements), not just functional requirements
  • Architectural styles (Layered, Microservices, Event-Driven) operate at a higher abstraction level than architectural patterns (Circuit Breaker, MVC)
  • Conway’s Law: organizations produce system designs that mirror their communication structures
  • Conceptual integrity (Fred Brooks, 1975) is a core architectural characteristic — the architect is “keeper of the vision”
  • Architecture erosion — the divergence between intended and implemented architecture — was first identified in 1992 (Perry and Wolf)
  • Architecture Decision Records (ADRs) are the recommended mechanism for documenting and communicating architectural decisions
  • Fitness functions can continuously monitor architecture conformance
  • ATAM (Architecture Tradeoff Analysis Method) is the primary architecture evaluation technique

Concepts Covered

Quality Notes

High-quality Wikipedia article with extensive academic citations (Bass/Clements/Kazman, Ford/Richards, Fairbanks, Perry/Wolf). The article is well-sourced and covers both theoretical foundations and practical concerns. As a Wikipedia article it is a synthesis of sources rather than primary research. Some claims reflect specific O’Reilly publications (Fundamentals of Software Architecture, 2020) rather than universal consensus.