Se han propuesto cientos de métricas para el software, pero no todas proporcionan un soporte práctico para el desarrollador de software. Algunas demandan mediciones que son demasiado complejas, otras son tan esotéricas que pocos profesionales tienen la esperanza de entenderlas y otras violan las nociones básicas intuitivas de lo que realmente es el software de alta calidad.
Existen una serie de características que deberían acompañar a las métricas efectivas del software. Dichas características son:
- Simples y fáciles de calcular
- Empírica e intuitivamente persuasivas
- Consistentes y objetivas
- Consistentes en el empleo de unidades y tamaño
- Independientes del lenguaje de programación
- Eficaz mecanismo para la realimentación de calidad
Aunque la mayoría de las métricas de software satisfacen las características anteriores, algunas de las métricas comúnmente empleadas dejan de cumplir una o dos.
Las métricas de mantenibilidad no pueden medir el coste de realizar un cambio particular al sistema software, sino que miden aspectos de la complejidad y la calidad de los programas ya que existe una alta correlación entre la complejidad y la mantenibilidad (a mayor complejidad menor mantenibilidad) y entre la calidad y la mantenibilidad (a mayor calidad mayor mantenibilidad – y viceversa – ).
Existen maneras de medir la mantenibilidad para todos los elementos software que están o estarán sometidos a mantenimiento: código, documentos de usuario, documentos de análisis o diseño, etc.
Las métricas del software se pueden clasificar en tres categorías (Kan
- Métricas de producto. Estas métricas describen las características del producto que de alguna forma determinan la mantenibilidad, por ejemplo el tamaño, complejidad o características del diseño.
- Métricas del proceso. Las métricas del proceso pueden ser utilizadas para mejorar el desarrollo y mantenibilidad del software. Algunos ejemplos incluyen la eficacia de eliminar defectos durante el desarrollo, el patrón en el que aparecen los defectos durante las pruebas o el tiempo fijo de respuesta del proceso.
- Métricas de proyecto. Las métricas de proyecto describen las características y ejecución del proyecto. Por ejemplo, el número de desarrolladores, el patrón de staffing en el ciclo de vida, coste, planificación y productividad del software.
Además, algunas métricas pueden pertenecer a múltiples categorías.