The Dimensions of Coupling section explores the three forces that shape the relationships between software components: integration strength, distance, and volatility. These dimensions don’t act in isolation—instead, their interplay determines whether a design leads to modularity or complexity. Understanding these dimensions helps software designers make coupling a conscious, strategic decision–rather than an accidental liability.
Integration Strength: How Much Knowledge Is Shared
Integration Strength categorizes how much knowledge is shared between coupled components and the risks it introduces. This article presents a practical model for assessing coupling through four levels—intrusive, functional, model, and contract—and explores how shared knowledge impacts modularity and system change.
Distance in Software Coupling: The Cost of Change
Distance between coupled components—whether in code, teams, or runtime—significantly impacts the cost and complexity of change. This article explores distance as a key socio-technical dimension of coupling, affecting lifecycle and runtime dependencies in software systems.
Volatility: Predicting Change in Software Coupling
Volatility is the third key dimension of coupling, capturing the likelihood of change in a component. This article explores how domain-driven design's subdomains—and other models like Wardley Maps—help assess volatility and guide resilient software design.