Glossary · Automation software engineering and architecture
Coupling
Also known as: Module coupling
German: Kopplung
In software engineering, coupling is the degree of interdependence between software modules or components, that is, how much one module relies on the internal details, data or behavior of another. Strong coupling means a change in one module is likely to require changes in others.
- Software engineering
In one sentence
Coupling is the degree of interdependence between software modules; strong coupling makes changes spread from one module to others.
Example
The HMI reads internal step variables of the sequence directly; when the sequence is restructured, dozens of HMI screens must be changed, a sign of strong coupling.
How it applies
- Engineering: Common forms of coupling in automation software are shared global variables, direct access to another block's internals, hard-coded addresses and implicit timing assumptions between tasks.
- Maintenance: Strong coupling increases the effort of Impact analysis and the risk of Change propagation: a small change can have side effects in unexpected places.
- Documentation: Dependencies between modules should be visible in the architecture documentation. If documentation needs long explanations of how modules influence each other, that is often a sign that coupling should be reduced in the design.
Coupling vs. cohesion
Cohesion measures how well the parts inside a module belong together; coupling measures dependencies between modules. The design goal is high cohesion and Loose coupling.
In systems engineering, Coupling analysis examines interactions between system elements more broadly, including physical and functional dependencies.