2009-12-03 25 views
6

Ha habido una cantidad considerable de discusión sobre las métricas de código (por ejemplo, What is the fascination with code metrics?). Yo (como desarrollador de software) estoy realmente interesado en esas métricas porque creo que pueden ayudarme a escribir mejor código. Al menos son útiles cuando se trata de encontrar áreas de código que necesitan alguna refactorización.Evaluación de métricas de código

Sin embargo, lo que me gustaría saber es lo siguiente. ¿Existen algunas evaluaciones de esas métricas de código fuente que prueban que realmente se correlacionan con la tasa de errores o la mantenibilidad de un método? Por ejemplo: ¿Los métodos con una complejidad ciclomática muy alta realmente introducen más errores que los métodos de baja complejidad? ¿O los métodos con un alto nivel de dificultad (Halstead) realmente necesitan mucha más cantidad para mantenerlos que los métodos con uno bajo?

Tal vez alguien sepa sobre alguna investigación confiable en esta área.

¡Muchas gracias!

Respuesta

2

Buena pregunta, no hay respuesta directa.

Hay son trabajos de investigación disponibles que muestran las relaciones entre, por ejemplo, complejidad ciclónica y errores. El problema es que la mayoría de los trabajos de investigación no están disponibles gratuitamente.

He encontrado lo siguiente: http://www.pitt.edu/~ckemerer/CK%20research%20papers/CyclomaticComplexityDensity_GillKemerer91.pdf. Aunque muestra una relación entre la complejidad ciclomática y la productividad. Sin embargo, tiene algunas referencias a otros documentos, y vale la pena intentar googlearlos.

1

Eche un vistazo a this article from Microsoft research. En general, tengo dudas sobre la sabiduría del desarrollo que proviene de Microsoft, pero ellos tienen los recursos para poder hacer estudios a largo plazo de productos grandes. El artículo al que se hace referencia habla de la correlación que encontraron entre varias métricas y la tasa de defectos del proyecto.

1

Finalmente encontré algunos documentos sobre la correlación entre las métricas del software y la tasa de error, pero ninguno de ellos era realmente lo que estaba buscando. La mayoría de los documentos están desactualizados (finales de los 80 o principios de los 90).

Creo que sería una buena idea comenzar un análisis del software actual. En mi opinión, debería ser posible investigar algunos sistemas populare de código abierto. El código fuente está disponible y (lo que creo que es mucho más importante) muchos proyectos usan rastreadores de problemas y algún tipo de sistema de control de versiones. Probablemente sea posible encontrar un fuerte vínculo entre el registro de los sistemas de control de versiones y los rastreadores de problemas. Esto llevaría a una posibilidad muy interesante de analizar la relación entre algunas métricas de software y la tasa de errores.

Tal vez todavía hay un proyecto que hace exactamente lo que he descrito anteriormente. ¿Alguien sabe algo así?

0

Llevamos a cabo un estudio empírico sobre las capacidades de predicción de errores de las bien conocidas métricas orientadas a objetos de Chidamber y Kemerer. Resultó que estas métricas combinadas pueden predecir errores con una precisión superior al 80% cuando aplicamos modelos adecuados de aprendizaje automático. Si está interesado, puede preparar el estudio completo en el siguiente documento:

"Validación empírica de métricas orientadas a objetos en software de código abierto para predicción de fallas. En IEEE Transactions on Software Engineering, Vol. 31, No. 10 , Octubre de 2005, páginas 897-910. "

Cuestiones relacionadas