Esta librería proporciona herramientas para analizar y medir la estabilidad y calidad de una arquitectura de software, utilizando las métricas y principios definidos por Robert C. Martin. La biblioteca está implementada usando ArchUnit.
Para cada componente -donde en este contexto componente es un ensamblado- calcula las siguientes métricas:
- Fan-in o acoplamiento aferente: cuántos otros componentes dependen del componente dado.
- Fan-out o acoplamiento eferente: de cuántos otros componentes depende un componente dado.
- Abstractness: Proporción de tipos abstractos o extensibles -interfaces, clases abstractas, registros abstractos, tipos genéricos- respecto del total de tipos
- Instability: Medida de qué tan susceptible es el componente al cambio $I = \frac{Ce}{Ca + Ce}$
- Distance: Distancia de la secuencia principal $D = |A + I - 1|$
- Note
- Para el cálculo de las métricas de abstracción se consideran tipos abstractos:
- Interfaces interface
- Clases abstractas abstract class
- Records abstractos abstract record
- Tipos genéricos class<T>