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.

Intermodule Coupling

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.

Intramodule Cohesion

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.