ACD (Average Component Dependency)

ACD es otra métrica que mide el acoplamiento utilizando en este caso un elemento más genérico como es el componente que se puede definir como una unidad de división de una determinada aplicación. En base a esta definición tan generalista se podría considerar componente un paquete, las unidades de compilación (.java) o directamente considerar exclusivamente las clases.

Por regla general la asociación entre componente y unidad de compilación es la más común.

El cálculo de la métrica es sencillo ya que basta con calcular para cada componente el número de componentes de los que depende directa o indirectamente (a través de otros componentes), sumar cada uno de esos cálculos individuales y dividirlos entre el número total de componentes que se han analizado.

De esta manera se calcula la dependencia media de cada componente del programa, de manera que si por ejemplo tenemos un programa con 500 componentes y se obtiene un valor de ACD de 10, estaríamos indicando que cada componente depende de otros 50 componentes, por lo que un cambio en cualquiera de ellos podría provocar un comportamiento anómalo en él. Esto también puede ser visto de manera simétrica (ya que lo que se hace es calcular un valor absoluto de dependencia) de manera que un cambio en el componente podría afectar a otros 50 componentes.

Con el ejemplo expuesto en el anterior párrafo se puede comprender cómo de necesario resulta reducir el número de dependencias para conseguir un software lo más mantenible posible. De hecho esta métrica es considerada por muchos como una métrica indicativa del grado de testeabilidad que debe tener una determinada aplicación, ya que como es lógico a mayor dependencia, más probabilidad de efectos colaterales, mayor necesidad de pruebas.

Deja un comentario