Coupling describes the degree of dependency between software modules, classes, services, or components.
Lower coupling generally makes software easier to change, test, replace, and deploy because fewer parts depend tightly on one another.
Related concepts include Software Architecture, Architectural Pattern and Design Pattern.