Cómo interpretar métricas de calidad software: entendiendo el cuadro de mando de Sonar (2/3)

2. Código duplicado

El código repetido es una métrica básica de calidad, y junto con la complejidad ciclomática, es el mayor enemigo de la mantenibilidad (aquí hay un post sobre el tema y aquí otro post sobre estas dos métricas)

codigoDuplicado

Figura 6. Código repetido

  •  Líneas duplicadas: Número de líneas involucradas en una duplicación
  • Bloques duplicados: Número de bloques de líneas duplicadas
  • Archivos duplicados:Número de archivos involucrados en una duplicación.
  • Líneas duplicadas (%): (Número de líneas duplicadas/Número total de líneas) *100

Por defecto se considera una duplicación si 10 líneas sucesivas de código Java están repetidas, pero se puede modificar este límite a través de la propiedad «sonar.cpd.java.minimumLines»
Por ejemplo, si vamos a analizar un proyecto con Maven, y queremos cambiar a 30 el límite al que se considera código duplicado, deberemos escribir en la terminal lo siguiente:
«mvn sonar:sonar -D sonar.cpd.java.minimumLines=30»
Aún así, después de consultar detenidamente la documentación y los foros de Sonar, no nos queda muy claro el criterio que utiliza la herramienta para considerar el código duplicado, y no tenemos información acerca de a partir de cuánto se considera duplicación en otros lenguajes de programación.
 

3. Documentación y comentarios

 documentacionComments

Figura 7. Documentación y comentarios

  • Documentación
  • API pública:Número de clases públicas, métodos públicos (sin contar métodos de acceso como get y set) y propiedades públicas (sin contar aquellas que son de la forma public static)
  • API pública sin documentar: Númerode APIs públicas sin una cabecera de comentarios, sin un Javadoc.
  • API pública documentada (%):

apiPublicaFormula

  • Comentarios
  • Líneas comentadas: Número de líneas que contienen un comentario.
  • Comentarios (%):

formulaComentarios

De esta fórmula se deduce lo siguiente:

      • Si el valor es un 50%, el número de líneas de código es igual al número de líneas comentadas.
      • Si el valor es un 100%, significa que el archivo solo contiene comentarios.

 

4.Tamaño

 lineasCodigoClases

Figura 8. Métricas relacionadas con el tamaño del sistema

  • Líneas de código: Número de líneas de código, sin contar los comentarios (en la Figura 8 serían 365375)
  • Líneas: Número de líneas totales (líneas de código + líneas de comentarios).
  • Accesores: Número de métodos get () y set () totales.

 
El resto de métricas que aparecen siguen la misma forma que las anteriores, es decir, se muestra el número de paquetes, clases, métodos o ficheros totales.
 

5. Violaciones

 
violaciones

Figura 9. Violaciones de código

  •  “Issues”: Número de “malas prácticas” (violaciones) en el código. Por ejemplo, los números mágicos, llamar a un método que no es un constructor con el mismo nombre que una clase etc.
  •  Cumplimiento de reglas (%)=

formulaViolaciones

Si el valor es negativo, se redondea a 0%

Las violaciones ponderadas son la suma de todas las violaciones multiplicadas por los coeficientes asociados a su severidad. Para asociar un peso a las severidades, hay que loguearse como administrador en Sonar, e ir a Ajustes > Ajustes Generales y establecer la propiedad pesos de las reglas (Rules weight). Los valores por defecto son 10 para las violaciones bloqueantes, 5 para las violaciones críticas, 3 para las violaciones mayores y 1 para las menores. Logueados como administradores en la herramienta, podremos definir nuevas violaciones en el código.

Post anterior: Cómo interpretar métricas de calidad software: entendiendo el cuadro de mando de Sonar (1/3)

Puedes ver la continuación de esté post aquí: Cómo interpretar métricas de calidad software: entendiendo el cuadro de mando de Sonar (3/3)

jgarzas

Ph.D. en informática, Postdoctorado en la Carnegie Mellon (EE.UU) e Ingeniero en Informática.

Primera vez que me tocó hacer una gestión Ágil en una empresa... año 2001. Desde entonces he trabajado en, o para, más de 90. Y he formado a más de 2000 alumnos.

También soy profe de la Universidad Rey Juan Carlos.

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *