coupling_cohesion_metrics
coupling_cohesion_metrics
Algoritmo para medir cuantitativamente el acoplamiento entre los módulos del sistema de verificación y la cohesión interna de cada módulo. Permite detectar tempranamente cuando la arquitectura se degrada, identificando módulos que se vuelven demasiado dependientes entre sí o que asumen responsabilidades que no les corresponden.
When to use
Usar de forma periódica (mensual o por sprint) para monitorizar la salud arquitectónica del sistema. Ejecutar cuando se sospeche que un módulo ha crecido demasiado, cuando las importaciones cruzadas aumenten, o cuando los cambios en un módulo requieran modificaciones en cascada en otros módulos. Complementa la skill archunit_import_linter con métricas cuantitativas.
Instructions
- Instalar herramientas de análisis:
pip install radonpara complejidad ypip install import-linterpara dependencias. - Medir el acoplamiento aferente (Ca) de cada módulo: cuántos otros módulos dependen de él. Un Ca alto indica un módulo central que requiere estabilidad.
- Medir el acoplamiento eferente (Ce) de cada módulo: de cuántos módulos depende. Un Ce alto indica un módulo con demasiadas dependencias externas.
- Calcular la inestabilidad de cada módulo:
I = Ce / (Ca + Ce). Valores cercanos a 1 indican módulos inestables que deberían depender de abstracciones. - Medir la cohesión interna usando LCOM (Lack of Cohesion of Methods): analizar cuántas funciones de un módulo usan los mismos datos internos.
- Crear un script
backend/scripts/architecture_metrics.pyque genere un reporte con estas métricas para todos los módulos del sistema. - Establecer umbrales de alerta: Ce > 5 (demasiadas dependencias), LCOM > 0.8 (baja cohesión), y trackear la evolución temporal.
- Visualizar las métricas en un dashboard o generar un reporte en cada release que muestre la tendencia.
More from davidcastagnetoa/skills
traefik
Reverse proxy moderno con autodiscovery nativo en Kubernetes y Let's Encrypt
67easyocr
OCR alternativo a PaddleOCR, excelente en caracteres especiales y múltiples scripts
36prisma-nestjs-patterns
>
26c4_model_structurizr
Diagramas de arquitectura C4 como código con Structurizr DSL, versionados en Git
24exif_metadata_analyzer
Analizar metadatos EXIF para detectar edición previa con Photoshop, GIMP u otros editores
19insightface_arcface
Reconocimiento facial de estado del arte con ArcFace R100 para comparar selfie con foto del documento
15