Medir la calidad estructural transforma el debate sobre acoplamiento y cohesión en decisiones objetivas. Las métricas permiten detectar desviaciones, priorizar refactorizaciones y verificar que las mejoras se mantengan en el tiempo. En este tema se combinan fundamentos, herramientas y ejemplos aplicados a proyectos de Java.
Los indicadores de acoplamiento y cohesión complementan la revisión manual del código. Sin datos, un equipo puede pasar semanas discutiendo gustos personales. Con métricas confiables, es posible negociar objetivos de calidad y demostrar que una refactorización tiene impacto real en la mantenibilidad.
Existen varias propuestas académicas y adoptadas por la industria para evaluar la cohesión:
Los indicadores que evalúan la relación entre módulos permiten visualizar cómo se propagan los cambios:
La medición continua requiere integrar herramientas al flujo de desarrollo:
En proyectos con maven se puede automatizar la ejecución del plugin jdepend durante la fase de verificación:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jdepend-maven-plugin</artifactId>
<version>2.0</version>
<executions>
<execution>
<goals>
<goal>jdepend</goal>
</goals>
<phase>verify</phase>
</execution>
</executions>
</plugin>
El reporte resultante expone los módulos con mayor inestabilidad. Si alguna cifra supera el límite acordado, el pipeline puede fallar y alertar al equipo.
Supongamos que el análisis detecta los siguientes valores:
AplicacionPedidos: Ca = 7, Ce = 2, I = 0.22, LCOM = 0.15.InfraestructuraEmail: Ca = 1, Ce = 8, I = 0.89, LCOM = 0.75.La primera clase actúa como base del dominio y mantiene cohesión alta; conviene refactorizarla con cuidado para no afectar a los consumidores. La segunda expone bajo acoplamiento entrante pero depende demasiado de otros módulos y su cohesión mediocre sugiere responsabilidades mezcladas. Una acción inmediata podría ser separar la configuración de la lógica de envío y aislar adaptadores externos.
No existe una cifra universal para LCOM o inestabilidad. Lo valioso es observar cómo evolucionan. Si una refactorización disminuye Ce y LCOM, es evidencia de mejora. Si los valores vuelven a crecer, hay que revisar los cambios recientes y conversar con el equipo para mantener las buenas prácticas descritas en el tema 10.
Medir con disciplina permite detectar desviaciones antes de que el diseño se vuelva frágil. Al combinar métricas, herramientas y revisiones regulares, los equipos sostienen la modularidad y mantienen el equilibrio entre acoplamiento y cohesión.