http://wiki.c2.com/?CouplingAndCohesion
Coupling refers to the relationship of a module with another module. A module is said to be highly coupled with another module if changes to it will result to changes to the other module. And a module is said to be loosely coupled if a module is independent of any other modules. This can be achieved by having a stable interface that effectively hides the implementation of another module.
- maintainability – changes are confined in a single module
- testability – modules involved in unit testing can be limited to a minimum