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
- Software Architecture Overview
- Quality Attributes
- Conway’s Law
- Conceptual Integrity
- Architecture Erosion
- Technical Debt
- Architectural Decision Records (ADR)
- Architectural Styles and Patterns
- Serverless Architecture
- Software Design vs Software Architecture
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.