Coupling and Cohesion

Two words are key to understanding dependency. These terms have actually been used by the software engineering community by several years, and predate the common use of object-oriented languages. These terms are coupling and cohesion.

Coupling refers to the extent to which one component uses another to perform actions. Generally a goal is to reduce coupling as much as possible.

Cohesion refers to the extent to which the actions of a component seem to be tied together in purpose. Generally a goal is to increase cohesion within a software component.

[audio] [real] Text to accompany slide5, in Chapter 17 of An Introduction to Object-Oriented Programming