This category brings together foundational concepts and adjacent perspectives that enrich the Balanced Coupling model. It revisits classic ideas like module coupling and connascence, and explores topics such as semantic, lifecycle, and runtime coupling–along with broader frameworks like domain-driven design and Cynefin.
Module Coupling
This article revisits the classic module coupling model from structured design, detailing its six levels of interdependency and examining its relevance today. It also introduces integration strength as a modern adaptation suited to contemporary software architecture.
Connascence
Connascence is a detailed model of coupling that classifies interdependencies between components in object-oriented systems into static and dynamic levels. This article explores how connascence compares to traditional module coupling and how it integrates with the broader framework of integration strength in software design.
Semantic coupling
Semantic coupling occurs when components depend on shared business or technical concepts, making changes ripple across systems. This article explains domain and technical semantic coupling, their relation to connascence, and how Balanced Coupling distinguishes between model and contract coupling.
Temporal Coupling
Temporal coupling arises when components must execute in a specific order or with specific timing. This article explores its relationship to connascence and integration strength within the Balanced Coupling framework.
Lifecycle Coupling
Lifecycle coupling describes how the interdependence between software components throughout their lifecycle—from development to maintenance—is shaped by technical and organizational distance. This article explains how managing distance can reduce complexity and improve modularity.
Runtime Coupling
Runtime coupling occurs when the availability of one component depends on another, risking cascading failures. This article explores resilience patterns that mitigate runtime coupling and shows how Balanced Coupling helps maintain modularity in distributed systems.
Afferent/Efferent Coupling
Afferent and efferent coupling describe the direction of dependencies between software components. This article explores these concepts in the context of balanced coupling, introduces related software metrics like instability and abstractness, and critiques their limitations when integration strength is ignored.
Cynefin
The Cynefin framework helps categorize different types of uncertainty in decision-making, from predictable outcomes to total chaos. This article explains each Cynefin domain and connects the framework to software modularity and the Balanced Coupling model.
Domain-Driven Design
Domain-Driven Design (DDD) is a methodology for building modular software systems by aligning technical design with business strategy. This article explores strategic and tactical DDD patterns and connects them to the dimensions of coupling in the balanced coupling model.