Glossary · Automation software engineering and architecture
Loose coupling
Also known as: Low coupling
German: Lose Kopplung
In software engineering, loose coupling is a design property in which components depend on each other only through small, stable, well-defined interfaces and know as little as possible about each other's internals, so each can be changed, replaced or deployed with minimal impact on the others.
- Software engineering
In one sentence
Loose coupling means components depend on each other only through small, stable interfaces, so each can change with little impact.
Example
Machine modules exchange data only through a defined PackML-style interface, so a new labeler from another supplier can be integrated without changing the filler's software.
How it applies
- Engineering: Loose coupling is achieved through clear interfaces, Encapsulation, asynchronous messaging, Dependency injection and avoiding shared global data. In modular machine concepts, it allows modules from different suppliers to be combined.
- Maintenance: Loosely coupled systems limit Change propagation: updates to one component rarely force changes elsewhere, which reduces retesting effort and risk.
- Documentation: Loose coupling moves the importance to interface documentation. When components interact only through interfaces, the interface specification is what integrators and service engineers depend on, so it must be complete and versioned.
Loose coupling vs. no coupling
Components that must work together are always coupled to some degree. The goal is not zero coupling but coupling that is explicit, minimal and stable. Too much decoupling, for example many indirections or generic messages, can make the system harder to understand and to diagnose.