Why is a highly coupled module difficult to unit test?
Unit test can be done within a single module Cohesion of a single module/component is the degree to which its responsibilities form a meaningful unit; higher cohesion is better. Someone had vague reference to decomposability here. Clarification? How about: ‘Cohesion is inversely proportional to the number of responsibilities a module/component has.’ Coupling between modules/components is their degree of mutual interdependence; lower coupling is better. size: number of connections between routines intimacy: the directness of the connection between routines visibility: the prominence of the connection between routines flexibility: the ease of changing the connections between routines A first-order principle of software architecture is to increase cohesion and reduce coupling.