|
Architecture Metrics
|
Calcula métricas de estabilidad arquitectónica para componentes basadas en sus dependencias. More...
Static Public Member Functions | |
| static IReadOnlyCollection< Component > | BuildAssemblyComponents (Architecture architecture, params string[] assemblyNames) |
Construye una colección de instancias de Component agrupando tipos por ensamblado. | |
| static IReadOnlyCollection< ComponentDependencies > | BuildDependencyGraph (IEnumerable< Component > components) |
Construye un grafo de dependencias entre instancias de Component. | |
| static ComponentCouplings | CalculateCouplings (IReadOnlyCollection< ComponentDependencies > graph) |
| Calcula el acoplamiento aferente -fan-in- y eferente -fan-out- para todos los componentes. | |
| static double | CalculateAbstractness (Component component) |
Calcula la abstracción —A— de una instancia de Component. | |
| static IReadOnlyCollection< ComponentMetrics > | CalculateMetrics (IReadOnlyCollection< Component > components) |
| Calcula todas las métricas de estabilidad arquitectónica para los componentes. | |
Calcula métricas de estabilidad arquitectónica para componentes basadas en sus dependencias.
Esta calculadora implementa las métricas de arquitectura de Robert C. Martin:
Definition at line 17 of file MetricsCalculator.cs.
|
static |
Construye una colección de instancias de Component agrupando tipos por ensamblado.
| architecture | La arquitectura cargada a analizar. |
| assemblyNames | Los nombres de los ensamblados a agrupar como componentes. |
Este método es fundamental para organizar la arquitectura en capas lógicas a nivel de despliegue. Los ensamblados son unidades de compilación y despliegue, por lo que son el nivel correcto para medir acoplamiento e inestabilidad arquitectónica.
Definition at line 34 of file MetricsCalculator.cs.
|
static |
Construye un grafo de dependencias entre instancias de Component.
| components | Los componentes para los cuales construir el grafo. |
ComponentDependencies donde cada elemento contiene el nombre del componente y la colección de componentes de los que depende.El grafo resultante se utiliza para calcular acoplamiento aferente -fan-in- y eferente -fan-out-. Solo se incluyen dependencias externas al componente -se ignoran dependencias internas-. Cuentan como dependencias:
Definition at line 69 of file MetricsCalculator.cs.
|
static |
Calcula la abstracción —A— de una instancia de Component.
| component | El componente para el cual calcular la abstracción. |
A -Abstracción- = (número de interfaces + clases abstractas + records abstractos + tipos genéricos extensibles) / total de tipos.
Se consideran tipos abstractos o extensibles:
Ejemplos:
La abstracción es un indicador de flexibilidad: cuanto más abstracto, más fácil de extender. Los tipos genéricos aportan extensibilidad mediante parametrización de tipos.
Definition at line 181 of file MetricsCalculator.cs.
|
static |
Calcula el acoplamiento aferente -fan-in- y eferente -fan-out- para todos los componentes.
| graph | El grafo de dependencias entre componentes. |
ComponentCouplings con dos diccionarios: FanIn -acoplamiento aferente- y FanOut -acoplamiento eferente-.FanIn: Cuántos otros componentes dependen de este. FanOut: De cuántos otros componentes este depende.
Estos valores son necesarios para calcular la inestabilidad, como $I = \frac{Ce}{Ca + Ce}$.
Definition at line 124 of file MetricsCalculator.cs.
|
static |
Calcula todas las métricas de estabilidad arquitectónica para los componentes.
| components | Los componentes para los cuales calcular las métricas. |
Este método orquesta el cálculo de todas las métricas fundamentales:
Estas métricas son indicadores clave de la calidad arquitectónica según Robert C. Martin.
Definition at line 245 of file MetricsCalculator.cs.