A measure of the strength of interconnections between modules of a program. A high coupling would indicate strong dependencies between one module and another. Loose coupling allows greater flexibility in the design and better traceability, isolation, and correction of faults. The strength of coupling depends on the number of references of one module by another, the amount of data passed (or shared) between modules, the complexity of the interface between modules, and the amount of control exercised by one module over another. Completely decoupled modules have no common data and no control flow interaction. See also cohesion, coupled.