Coupling
Grad av beroende mellan moduler/komponenter. Tight coupling = ändring i en modul kräver ändring i många andra. Loose coupling = ändringar är lokaliserade. Mål: low coupling, high cohesion.
Klassisk SE-princip från Larry Constantine (1968). Typer: data coupling (passar data), stamp coupling (delar struktur), control coupling (kontrollflöde), content coupling (direkt minnesåtkomst — värst). Loose coupling uppnås via: interfaces, dependency injection, event-driven, message-passing. Hyrum's Law: alla observerbara beteenden i ditt system kommer att bli beroenden — du har mer coupling än du tror.