2009-06-29 16 views
7

Me preguntaba si alguien tiene experiencia en las métricas utilizadas para medir la calidad del software. Sé que hay métricas de complejidad de código, pero me pregunto si hay una manera específica de medir qué tan bien funciona durante su vida útil. No me refiero al rendimiento en tiempo de ejecución, sino más bien a una medida de la calidad. También son bienvenidas todas las herramientas sugeridas que podrían ayudar a reunirlas.Métricas de la calidad del software

¿Hay medidas para responder a estas preguntas:

  • ¿Es fácil cambiar/mejorar el software, robustez
  • Si se trata de una pieza muy común/general de software, la manera reutilizable es que
  • Cuántos defectos se asociaron con el código
  • ha necesitado este ser rediseñado/recodificada
  • Cuánto tiempo ha estado alrededor de este código
  • desarrolladores como la forma en que el código está diseñado e implementado

parece que la mayor parte de esto tendría que estar estrechamente atado con una herramienta de informes de errores y CM.

+2

wiki de la comunidad ... –

Respuesta

0

Hay un buen thread de los antiguos grupos de Joel on Software Discussion sobre esto.

0

Sé que algunos programas de estadísticas SVN proporcionan una visión general sobre las líneas modificadas por envío. Si tiene un sistema de seguimiento de fallos y las personas que corrigen errores añadiendo funciones, etc. indican su número de confirmación cuando se soluciona el error, puede calcular cuántas líneas se vieron afectadas por cada solicitud de error/nueva función. Esto podría darle una medida de la capacidad de cambio.

Lo siguiente es simplemente contar el número de errores encontrados y establecerlos en proporción al número de líneas de código. Hay algunos valores de cuántos errores debe tener un software de alta calidad por línea de código.

0

que podría hacerlo de alguna manera económica o en formadel programador.

En el caso de una forma económica, usted tendrá que medir los costos de mejorar el código, corregir errores, agregar nuevas características, etc. Si elige la segunda vía, puede medir cuánto personal trabaja con su programa y qué tan fácil es, por ejemplo, encontrar y corregir un error promedio en horas humanas. Ciertamente no son perfectos, porque los costos dependen de la situación del mercado y las horas humanas dependen de las personas y sus habilidades, por lo que es mejor combinar ambos métodos.

De esta manera obtienes algunos instrumentos para medir la calidad de tu código. Por supuesto, debe tener en cuenta el tamaño de su proyecto y otros factores, pero espero que la idea principal esté clara.

1

Si medir la calidad del código en los términos que pones sería un trabajo sencillo y las métricas precisas, probablemente ya no habría necesidad de administradores de proyecto. Aún más, la distinción entre gerentes buenos y pobres sería muy pequeña. Porque no lo es, eso solo demuestra que obtener una idea precisa sobre la calidad de su software no es tarea fácil.

Sus preguntas abarcan múltiples áreas que se cuantifican de manera diferente o son muy subjetivas para la cuantificación, por lo que debe agruparlas en categorías que correspondan a objetivos comunes. Luego puede asignar un factor de "importancia" a cada categoría y derivar algunas métricas de eso.

Por ejemplo, puede usar static code analysis tools para medir la calidad sintáctica de su código y derivar algunas métricas de eso.

También puede derivar métricas de errores/líneas de código utilizando una herramienta de seguimiento de errores integrada con un sistema de control de versiones.

Para medir la robustez, la reutilización y la eficiencia del proceso de codificación, puede evaluar el uso de patrones de diseño por función desarrollada (por supuesto, donde tiene sentido). No hay ninguna herramienta que lo ayude a lograr esto, pero si supervisa el crecimiento de su software y agrega números a estos, puede darle una idea bastante buena de cómo está evolucionando el proyecto y si va en la dirección correcta. La introducción de procedimientos de revisión de códigos podría ayudarlo a hacer un seguimiento de estos más fácil y posiblemente abordarlos al principio del proceso de desarrollo. Un número para poner en estos podría ser el porcentaje de características implementadas utilizando los patrones de diseño apropiados.

Si bien las métricas pueden ser bastante abstractas y subjetivas, si dedicas tiempo y siempre tratas de mejorarlas, pueden brindarte información útil.

Algunas cosas a tener en cuenta sobre las métricas en el proceso de software: aunque

  1. A menos que usted los hace así, las mediciones podrían demostrar ser más daño que bien.
  2. Las métricas son difíciles de hacer bien.
  3. Debe tener cuidado al usar métricas para calificar el rendimiento individual u ofrecer esquemas de bonificación. Una vez que hagas esto, todos intentarán engañar al sistema y tus métricas no tendrán ningún valor.
1

Si está usando Ruby, hay algunas herramientas para ayudarle a cabo con métricas que van desde las LOC/Método y complejidad Métodos/Clase Saikuros Ciclomática.

Mi jefe en realidad llevó a cabo una presentación sobre la métrica de software que utilizamos en una conferencia de rubí año pasado, these are the slides.

Una herramienta interesante que aporta una gran cantidad de parámetros al mismo tiempo es metric_fu. Comprueba muchos aspectos interesantes de tu código. Las cosas que son muy similares, cambian mucho, tienen muchas ramas. Todos los signos de que sus códigos podrían ser mejores :)

Imagino que hay muchas más herramientas como esta para otros idiomas también.

0

Una métrica más centrada en el cliente sería el tiempo promedio que tarda el proveedor de software para corregir errores e implementar nuevas características.

Es muy fácil de calcular, según la fecha del software de seguimiento de errores creada, y la información cerrada.

Si el tiempo de implementación/fijación de errores promedio es extremadamente alto, esto también podría ser un indicador de mala calidad del software.

0

Es posible que desee comprobar el siguiente page que describe diversos aspectos de la calidad del software, incluidos los gráficos de muestra. Algunas de las características de calidad que necesita para medir se pueden derivar utilizando una herramienta como Sonar.Es muy importante averiguar cómo le gustaría modelar algunos de los siguientes aspectos:

  1. de mantenimiento: has mencionado sobre lo fácil que es cambiar/probar el código o la reutilización del código. Estos están relacionados con el aspecto de capacidad de prueba y reutilización de la capacidad de mantenimiento, que se considera una característica clave de la calidad del software. Por lo tanto, puede medir la capacidad de mantenimiento como una función de la capacidad de prueba (cobertura de prueba de la unidad) y la reutilización (índice de cohesión del código).
  2. Defectos: Defectos por sí solos pueden no ser una buena idea para medir. Sin embargo, si puede modelar la densidad del defecto, podría darle una buena imagen.
Cuestiones relacionadas