Valores de métrica de código

Cuanto más complejas son las aplicaciones de software modernas, más difícil es conseguir que el código sea confiable y fácil de mantener. Las métricas de código son un conjunto de medidas de software que proporcionan a los programadores una mejor visión del código que están desarrollando. Al aprovechar las métricas de código, los desarrolladores pueden comprender qué tipos o métodos se deben volver a poner en marcha o probar más exhaustivamente. Los equipos de desarrollo pueden identificar posibles riesgos, comprender el estado actual de un proyecto y realizar un seguimiento del progreso durante el desarrollo de software.

Los desarrolladores pueden usar Visual Studio para generar datos de métricas de código que miden la complejidad y el mantenimiento de su código administrado. Los datos de métricas de código se pueden generar para una solución completa o un único proyecto.

Para obtener información sobre cómo generar datos de métricas de código en Visual Studio, vea Cómo: Generar datos de métricas de código.

Medidas de software

En la lista siguiente se muestran los resultados de las métricas de código que calcula Visual Studio:

  • Índice de mantenimiento: calcula un valor de índice entre 0 y 100 que representa la facilidad relativa de mantener el código. Un valor alto significa una mejor capacidad de mantenimiento. Las clasificaciones codificadas por colores se pueden usar para identificar rápidamente puntos problemáticos en el código. Una clasificación verde está entre 20 y 100 e indica que el código tiene buena capacidad de mantenimiento. Una clasificación amarilla está entre 10 y 19 e indica que el código se puede mantener moderadamente. Una clasificación roja es una clasificación entre 0 y 9 e indica una baja capacidad de mantenimiento. Para obtener más información, consulte Rango de índices de mantenimiento y significado.

  • Complejidad ciclomática: mide la complejidad estructural del código. Se crea calculando el número de rutas de acceso de código diferentes en el flujo del programa. Un programa que tiene un flujo de control complejo requiere más pruebas para lograr una buena cobertura de código y es menos fácil de mantener. Para obtener más información, consulte Complejidad ciclomática.

  • Profundidad de herencia: indica el número de clases diferentes que heredan entre sí, hasta la clase base. La profundidad de herencia es similar al acoplamiento de clases en que un cambio en una clase base puede afectar a cualquiera de sus clases heredadas. Cuanto mayor sea este número, más profunda será la herencia y mayor será la posibilidad de modificaciones de clase base para dar lugar a un cambio importante. En Profundidad de herencia, un valor bajo es bueno y un valor alto es incorrecto. Para obtener más información, vea Profundidad de herencia.

  • Acoplamiento de clases: mide el acoplamiento a clases únicas a través de parámetros, variables locales, tipos de valor devuelto, llamadas de método, instancias genéricas o de plantilla, clases base, implementaciones de interfaz, campos definidos en tipos externos y decoración de atributos. Según el buen diseño de software, los tipos y métodos deben tener una cohesión alta y un acoplamiento bajo. Un acoplamiento alto es indicio de un diseño difícil de reutilizar y mantener debido a sus muchas interdependencias en otros tipos. Para obtener más información, vea Acoplamiento de clases.

  • Líneas de código fuente: indica el número exacto de líneas de código fuente que están presentes en el archivo de código fuente, incluidas las líneas en blanco. Esta métrica está disponible a partir de Visual Studio 2019, versión 16.4 y Microsoft.CodeAnalysis.Metrics (2.9.5).

  • Líneas de código ejecutable: indica el número aproximado de líneas de código ejecutable o operaciones. Se trata de un recuento de número de operaciones en código ejecutable. Esta métrica está disponible a partir de Visual Studio 2019, versión 16.4 y Microsoft.CodeAnalysis.Metrics (2.9.5). El valor suele ser una coincidencia cercana a la métrica anterior, Líneas de código, que es la métrica basada en instrucciones MSIL usada en modo heredado.

Métodos anónimos

Un método anónimo es simplemente un método que no tiene nombre. Los métodos anónimos se usan con más frecuencia para pasar un bloque de código como parámetro delegado. Los resultados de las métricas de código para un método anónimo declarado en un miembro, como un método o descriptor de acceso, están asociados al miembro que declara el método. No están asociados al miembro que llama al método.

Código generado

Algunas herramientas de software y compiladores generan código que se agrega a un proyecto y que el desarrollador del proyecto no ve o no debe cambiar. Principalmente, las métricas de código omiten el código generado cuando calcula los valores de las métricas. Esto permite que los valores de las métricas reflejen lo que el desarrollador puede ver y cambiar.

El código generado para Windows Forms no se omite, porque es código que el desarrollador puede ver y cambiar.