Background
Coupling
is an ordinal scale describing the degree of interdependence between modules.
It was first introduced in the middle 1970’s as explanation of why it took
longer to maintain some programs than others.
What
researchers discovered was that when one component of a program changed
frequently it was necessary to change other components in the system.
This “ripple effect” was related to how the programmer constructed
the interface to components.
The more a module knew about the internals of a module that it used the
more like it was to require maintained when the called module changed.
It was also observed that the closer or tighter the relationship between
the components, there were reduced incidents of the component being used in
other places within the system.
While doing this research that there where seven general categories of
coupling and that the looser the coupling the less likely-hood there was to
cause other modules to require maintenance and a greater likely-hood for using
the component in other parts of the system and other related applications.
References
W.P. Stevens, G.J. Myers, L.L. Constantine. "Structured
design". IBM Systems Journal, vol. 2, no. 13. pp.
115-139. 1974
Glenford J. Meyers. Reliable Software through
composite design. Van Nostrand Reinhold. New York. 1975.