|
Architecture Metrics
|
Classes | |
| class | MetricsCalculator |
| Calcula métricas de estabilidad arquitectónica para componentes basadas en sus dependencias. More... | |
Functions | |
| record | Component (string Name, IReadOnlyCollection< IType > Types) |
| Representa un componente arquitectónico, agrupando tipos por ensamblado -assembly-. | |
| record | ComponentCouplings (Dictionary< string, int > FanIn, Dictionary< string, int > FanOut) |
| Contiene el acoplamiento aferente -FanIn- y eferente -FanOut- para todos los componentes. | |
| record | ComponentDependencies (string ComponentName, IReadOnlyCollection< string > Dependencies) |
| Representa las dependencias de un componente hacia otros componentes. | |
| record | ComponentMetrics (string Name, int FanIn, int FanOut, double Abstractness, double Instability, double Distance) |
| Contiene todas las métricas de estabilidad arquitectónica para un componente. | |
| record Ucu.Andis.ArchitectureMetrics.Component | ( | string | Name, |
| IReadOnlyCollection< IType > | Types ) |
Representa un componente arquitectónico, agrupando tipos por ensamblado -assembly-.
| Name | El nombre del componente -nombre del ensamblado-. |
| Types | Colección de tipos que conforman el componente. |
Un componente en este contexto es una unidad de despliegue -ensamblado- que puede contener múltiples tipos. El análisis de acoplamiento e inestabilidad arquitectónica se hace para los componentes, no para los tipos individuales.
| record Ucu.Andis.ArchitectureMetrics.ComponentCouplings | ( | Dictionary< string, int > | FanIn, |
| Dictionary< string, int > | FanOut ) |
Contiene el acoplamiento aferente -FanIn- y eferente -FanOut- para todos los componentes.
| FanIn | Diccionario de acoplamiento aferente: nombre de componente → cantidad de componentes que dependen de él. |
| FanOut | Diccionario de acoplamiento eferente: nombre de componente → cantidad de componentes de los que depende. |
Estos valores son necesarios para calcular la inestabilidad: I = FanOut / (FanIn + FanOut).
| record Ucu.Andis.ArchitectureMetrics.ComponentDependencies | ( | string | ComponentName, |
| IReadOnlyCollection< string > | Dependencies ) |
Representa las dependencias de un componente hacia otros componentes.
| ComponentName | Nombre del componente que tiene las dependencias. |
| Dependencies | Colección de nombres de componentes de los que depende este componente. |
Una dependencia se registra cuando un tipo en el componente depende de un tipo en otro componente. Se consideran dependencias:
Las dependencias internas al mismo componente se ignoran.
| record Ucu.Andis.ArchitectureMetrics.ComponentMetrics | ( | string | Name, |
| int | FanIn, | ||
| int | FanOut, | ||
| double | Abstractness, | ||
| double | Instability, | ||
| double | Distance ) |
Contiene todas las métricas de estabilidad arquitectónica para un componente.
| Name | Nombre del componente. |
| FanIn | Acoplamiento aferente: cuántos componentes dependen de este. |
| FanOut | Acoplamiento eferente: de cuántos componentes este depende. |
| Abstractness | Proporción de tipos abstractos o extensibles -A = 0 a 1-. |
| Instability | Medida de inestabilidad -I = FanOut / (FanIn + FanOut), 0 a 1-. |
| Distance | Distancia de la secuencia principal -D = |A + I - 1|, 0 a 1-. |
Estas métricas son indicadores clave de la calidad arquitectónica según Robert C. Martin.
La abstracción considera tipos abstractos y extensibles:
Interpretación de métricas: