Design for change
You don't want a change in one module to cause errors to
ripple throughout your system. Encapsulate information, make
modules highly cohesive, seek low coupling among modules.
the measure of the interdependence of one module to another.
Modules should have low coupling. Low coupling minimizes
the "ripple effect" where changes in one module cause errors in
other modules.
the measure of strength of the association of elements within
a module. Modules whose elements are strongly and genuinely
related to each other are desired. A module should be highly
cohesive.
Cohesion is a property or characteristic of an individual module.
Coupling is a property of a collection of modules.