code metrics – Visual Studio Code Metrics ¿Cómo aseguras la calidad de tu código?

Visual Studio Code Metrics
Visual Studio Code Metrics

Artículos relacionados

1. Visual Studio 2013 Code Metrics

La documentación oficial de Microsoft nos dice lo siguiente acerca de Visual Studio Code Metrics:

Son un conjunto de métricas de código que proporcionan a los desarrolladores una mejor visión del estado del código que están desarrollando. Al tomar ventaja de estas métricas, los desarrolladores pueden saber que tipos y/o métodos deben ser re escritos o se deben probar a fondo. Los equipos de desarrollo pueden identificar riesgos potenciales, comprender el estado actual de un proyecto y realizar el seguimiento del progreso durante el desarrollo del software.

En otras palabras Visual Studio Code Metrics es una analizador de código estático que nos ayuda a velar por la calidad de nuestro desarrollo generando métricas de código que nos ayudan a tomar decisiones sobre la forma en que venimos diseñando y escribiendo el código.

Métricas de código usadas:
a. Maintainability Index (Índice de mantenimiento)

Calcula un valor entre 0 y 100 que indica que tan fácil es un código para mantener. Un valor alto significa una mejor capacidad de mantenimiento.

Índice de mantenimiento
Índice de mantenimiento
b. Cyclomatic Complexity (Complejidad ciclomática)

Mide la complejidad estructural del código. Se crea mediante el cálculo del número de diferentes rutas de código en el flujo del programa. Un programa que tiene un flujo de control complejo requerirá más pruebas para lograr una buena cobertura de código y será menos mantenible. Para leer más acerca de la complejidad ciclomática haz clic acá.

c. Depth of Inheritance (Profundidad de herencia)

Indica el numero de clase extendida que es una clase con respecto a su clase base. A partir de su clase base cuenta las clases que tiene que navegar para llegar a la raíz de su jerarquía. Cuanto más profunda es la jerarquía, se vuelve más difícil entender donde se definieron los métodos y campos.

  • Clase base A. El nivel de herencia es 1, recuerden que todo objeto hereda de Object.
  • Clase B hereda de A. El nivel de herencia es 2.
  • Clase C hereda de B. El nivel de herencia es 3.
  • Clase D hereda de C. El nivel de herencia es 4.
  • Clase E hereda de D. El nivel de herencia es 5.
d. Class Coupling (Acoplamiento de clases)

Mide el acoplamiento entre clases a través de: parámetros, variables locales, tipos de devolución, llamadas a métodos, instancias genéricas, clases de base, implementaciones de interfaz, campos definidos en tipos externos y atributos. Un buen diseño de software dicta que los tipos y métodos deben tener una alta cohesión y bajo acoplamiento.

e. Lines of Code (Líneas de código)

Indica el número aproximado de las líneas en el código. El recuento se basa en el código MSIL y por lo tanto no es el número exacto de líneas en el archivo de código fuente. Un recuento muy alto podría indicar que un tipo o método tiene muchas resonsabilidades y debe ser dividido. También podría indicar que el tipo o método puede ser difícil de mantener.

Uso

Existen dos formas para analizar el código, la primera es ir al menú Analyze y seleccionar la opción Calculate Code Metrics for solution.

Generar Code Metrics para solución 1
Generar Code Metrics para solución 1

La otra forma es hacer clic derecho en la solución y seleccionar la opción Calculate Code Metrics.

Generar Code Metrics para solución 2
Generar Code Metrics para solución
Nota: Estos mismos pasos aplican para ver la complejidad ciclomática de un proyecto.
Resultado

Una vez realizado el paso anterior veremos la ventana Code Metrics del Visual Studio.

Resultado Code Metrics
Resultado Code Metrics

2. Visual Studio Code Metrics Powertool for Visual Studio 2013

Visual Studio Code Metrics Powertool ofrece las mismas funcionalidades que la ventana Code Metrics del Visual Studio, solo que esta vez permite la ejecución desde la linea de comandos de esta herramienta ideal para integrarlo a nuestro procesos de compilación (Build Process).

Para instalar Visual Studio Code Metrics Powertool for Visual Studio 2013 tenemos que descargarlo desde este enlace. Para verificar que la instalación se haya realizado con éxito ingresamos a este directorio: “%PROGRAMFILES%\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop” y debemos encontrar estos dos archivos: Metrics.exe y MetricsReport.xsd.

Uso

Para analizar el código solo debemos ejecutar este comando:

metrics /f:Core.dll /o:MetricsResults.xml
Comando análisis code metrics
Comando análisis code metrics
Resultado

Como resultado obtendremos este archivo xml que puede ser descargado haciendo clic acá. Para dejar las dudas a un lado y saber si los resultados son los mismos veamos la siguiente imagen:

Resultado Code Metrics línea de comandos
Resultado Code Metrics línea de comandos

En ambas imágenes podemos ver los siguientes resultados:

  • Indice de mantenimiento: 94
  • Complejidad ciclomática: 89
  • Profundidad de herencia: 1
  • Acoplamiento de clases: 21
  • Lineas de código: 113

Conclusión

Visual Studio 2013 Code Metrics viene con un conjunto de métricas de código que proporcionan una mejor visión del estado del código. Estas métricas son: Índice de mantenimiento, complejidad ciclomática, profundidad de herencia, acoplamiento de clases y líneas de código. Se puede usar desde el Visual Studio o desde la línea de comandos descargando el Visual Studio Code Metrics Powertool. Visual Studio 2013 Code Metrics sirve para analizar el código de toda una solución o de proyectos individuales.

Referencias:
Metal Tip:

Este artículo lo escribí escuchando la canción The Pain Inside de la banda StormZone de Irlanda del norte, les comparto el enlace.

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s