¿Hay algún trabajo en la aplicación de las medidas de complejidad de Halstead para determinar la calidad del software?

13

En 1977, Maurice Howard Halstead presentó sus medidas de complejidad para sistemas de software , que incluían mediciones del vocabulario del programa, programa longitud, volumen, dificultad, esfuerzo y un número estimado de errores en un módulo. Según Wikipedia, la dificultad se relaciona con la dificultad de entender el programa al leerlo o escribirlo, y el esfuerzo puede traducirse en el tiempo que toma codificar una aplicación en la que Tiempo = (Esfuerzo / 18) segundos.

Una medición es inútil a menos que los datos y los cálculos se relacionen con algún aspecto del desarrollo de software. Sin embargo, no he encontrado ningún trabajo que indique que una dificultad de cierto valor o superior tiende a un aumento estadísticamente significativo en los defectos o una relación entre la dificultad y el tiempo para leer el código (una dificultad de N produce un promedio de M horas invertidas). entendiendo el código base) o cualquier análisis de poder calcular el Tiempo después de que el hecho sea útil para determinar la calidad (especialmente porque el tiempo de escritura ya debería haberse registrado como una medida). Estoy especialmente interesado en la estimación de errores de Halstead (que no se menciona en Wikipedia): el número de errores en una aplicación se puede estimar por Volumen / 3000 o Esfuerzo ^ (2/3) / 3000.

Estoy buscando dos cosas:

  • ¿Alguien ha utilizado las medidas de complejidad del software de Halstead en una aplicación del mundo real para evaluar la calidad del software? Si es así, ¿cómo los aplicó y resultaron ser una medida útil, válida y / o confiable?
  • ¿Existe alguna investigación académica en forma de encuestas, análisis o estudios de caso que analicen la validez (o invalidez) de las medidas de complejidad de Halstead cuando se aplican a la calidad del software?
  • ¿Existe alguna investigación académica en forma de encuestas, análisis o estudios de caso que demuestren el uso de las Líneas de código fuente (SLOC) para calcular algo similar a las métricas de Halstead de volumen, dificultad, esfuerzo, tiempo y errores? ? Yo sospecharía que el volumen podría corresponder simplemente a un recuento de SLOC y la dificultad podría corresponder a la complejidad ciclomática (y posiblemente a otras medidas). También soy consciente de que medir el esfuerzo, la productividad o el tiempo en SLOC es potencialmente engañoso.
pregunta Thomas Owens 12.09.2011 - 15:49

3 respuestas

5

Microsoft Research ha realizado algunos trabajos en esta área. Consulte esta página: enlace . Aunque no se basó específicamente en Halstead, Nachi y su equipo han investigado el uso de Halstead, la complejidad ciclomática, la rotación de códigos y otras medidas para evaluar el riesgo relativo y la fragilidad para realizar cambios en las áreas del código. También hay un documento interesante sobre cómo la efectividad de la organización también juega un papel importante, pero eso está fuera de tema. :)

    
respondido por el nithins 13.09.2011 - 14:55
0

Hay bastantes estudios de este tipo. Google es tu AMIGO.

Las métricas de Halstead cayeron en desgracia cuando se demostró que todas ellas estaban fuertemente correlacionadas con SLOC sin procesar (líneas de código fuente). En ese momento, es más fácil medir SLOC y terminar con él.

Aquí hay un resultado de Google Books .

    
respondido por el John R. Strohm 13.09.2011 - 15:54
0

Que el volumen de Halstead se correlaciona con SLOC es interesante pero limitado. Estadística básica: la correlación lineal no es transitiva. X correlacionada con Y, Y correlacionada con Z NO SIGNIFICA que X esté correlacionada con Z.

    
respondido por el user1704475 21.11.2013 - 16:33

Lea otras preguntas en las etiquetas