El acoplamiento es el grado de dependencia entre dos elementos del programa (sean clases o métodos dentro de una misma clase).
Cuanto más acoplados están, más difícil es modificarlos, reutilizarlos o testearlos por separado.
Lo que buscamos en un sistema es un acoplamiento débil, donde cada elemento sea fundamentalmente independiente y se comunique con los otros a través de una interfaz compacta y bien definida.
Todo lo que sea acceder a elementos concretos o hacer un switch con múltiples valores esperados tenderá a tener un alto grado de acoplamiento. En cambio, usar estructuras genéricas como bucles que iteran sobre colecciones de elementos variables tendrá probablemente un grado menor.
El grado de acoplamiento a nivel de clases puede verse reflejado en el diagrama de clases de BlueJ mediante las líneas de uso entre las distintas clases. El objetivo sería reducir al máximo posible el número de líneas, pues cada una indica que una clase depende de otra, lo que significa un aumento del acoplamiento.
Un bajo acoplamiento es interesante puesto que realizar modificaciones o adiciones de código en una clase no requerirá trastocar código en otras clases.