01_Unidad1_Metricas - vhcontre/inventario-2025 GitHub Wiki

📏 Métricas y medición del software

🎯 Objetivos

  • Comprender la importancia de las métricas en el proceso de desarrollo de software.
  • Conocer tipos de métricas, su aplicación y relevancia para la gestión y mejora continua.
  • Introducir conceptos de calidad medible en productos y procesos.

📐 ¿Qué son las métricas de software?

Las métricas de software son medidas cuantitativas utilizadas para evaluar atributos de productos, procesos y proyectos de software. Su objetivo es facilitar:

  • La planificación de recursos y tiempos,
  • El seguimiento del proyecto,
  • La mejora continua del proceso,
  • Y la toma de decisiones basada en datos.

🔎 “Lo que no se mide, no se puede mejorar.” — Lord Kelvin


🧮 Tipos de métricas

📦 Métricas de producto

Evalúan características del software entregado.

  • Tamaño (Líneas de código - LOC, Puntos función)
  • Complejidad (McCabe, Halstead)
  • Calidad (tasa de errores, cobertura de pruebas, mantenibilidad)

🛠️ Métricas de proceso

Miden la eficiencia del ciclo de vida del software.

  • Velocidad de desarrollo
  • Retrabajo o retrabajo evitado
  • Tiempos de ciclo y lead time
  • Índice de defectos por etapa

👥 Métricas de proyecto

Ayudan a evaluar el progreso y desempeño del equipo.

  • Esfuerzo estimado vs. real
  • Progreso (% de tareas completadas)
  • Burn-down y burn-up charts
  • Velocidad del equipo (en proyectos ágiles)

📊 Ejemplos y herramientas

Métrica Herramienta típica
LOC, complejidad SonarQube, CodeClimate
Cobertura de tests Pytest + coverage
Seguimiento ágil GitHub Projects, Jira
Integración continua GitHub Actions, Jenkins

🧠 Importancia práctica

Aplicar métricas permite:

  • Prevenir desviaciones graves en cronogramas.
  • Detectar cuellos de botella y áreas críticas.
  • Justificar decisiones técnicas frente a stakeholders.
  • Argumentar mejoras de procesos y prácticas de desarrollo.

🔗 Relación con el proyecto

Semana Aplicación directa de conceptos de métricas
2 Diseño del modelo y estimaciones iniciales
3–6 Uso de herramientas como coverage, linters
6–10 Pruebas automáticas, CI/CD y métricas de calidad

📚 Bibliografía y recursos

  • Pressman, R. – Ingeniería del Software. Un enfoque práctico.
  • Sommerville, I. – Software Engineering.
  • McCabe, T. – A Complexity Measure (1976).
  • Artículos sobre DevOps Metrics (DORA, Accelerate).

📝 Actividades sugeridas

  • Medir la cobertura de tests en tu proyecto.
  • Analizar la complejidad ciclomática de un módulo.
  • Implementar un badge de calidad en el README.

💡 Cierre

Las métricas no son un fin en sí mismo, sino una herramienta para tomar mejores decisiones.