Skip to content

Coupling

The degree to which one module depends on internal details of another determines how changes propagate through the system

Tension Addressed

Coupling vs. Flexibility

Recognizable As

Import/dependency graphs; shared data structures; temporal dependencies (A must run before B); knowledge of internal state; ripple effects when changing one component

Canonical Sources

Stevens, Myers, Constantine, "Structured Design" (1974); Yourdon & Constantine, "Structured Design" (1979)

Transfers To

Organizational Design (Conway's Law), Distributed Systems (service boundaries), Testing (test isolation), Database Design (table relationships)

Sub-concepts: - Content coupling: Worst - module modifies another's internals directly - Common coupling: Sharing global data - Control coupling: Passing control flags that change behavior - Stamp coupling: Passing whole structures when only part is needed - Data coupling: Best - passing only necessary data through parameters