Definición

  1. Cohesión: grado de cercania entre 2 o mas elementos, tienen características que les unen.
  2. Acoplamiento: grado de dependencia entre 2 o mas elementos.

Objetivo

Mantener el acoplamiento lo más bajo posible y la cohesión lo más alta posible suele ser el objetivo de todo arquitecto, diseñador o programador. Tener unos buenos criterios para agrupar unidades de software (alta cohesión), y mantener esas unidades lo más independientes posible (bajo acoplamiento) garantiza la modularidad, facilitando la reutilización del software y gran parte de las tareas del desarrollo del sofware.

El artículo completo en La tecla de escape
Otro aquí

Creo que son dos conceptos esenciales que los diseñadores de software acostumbramos a olvidar…