La complejidad ciclomática (CC) es una métrica fundamental en el desarrollo de software que cuantifica la dificultad de lectura, prueba y mantenimiento de un método. En C#, se calcula como 1 más el número de estructuras de control independientes (if, while, switch, operadores lógicos), lo que determina el mínimo de casos de prueba necesarios para cubrir todas las rutas de ejecución. Un valor de 1 indica un flujo lineal simple, mientras que los valores superiores a 25 suelen considerarse excesivos según el analizador de Microsoft CA1502.
Esta guía detalla cómo la CC se deriva de la teoría de grafos y su impacto práctico en la calidad del código. Se explica que, aunque la suma total de la complejidad puede aumentar al refactorizar, lo crítico es la complejidad por método, ya que define la carga cognitiva del desarrollador. Se presentan umbrales de riesgo: entre 1 y 10 es simple, entre 11 y 20 moderadamente complejo, y por encima de 50 es inpracticable de probar exhaustivamente.
Para la medición, se recomiendan herramientas como NDepend o los analizadores integrados de Visual Studio. El enfoque propuesto combina la métrica estática con la cobertura de pruebas y el análisis del código IL (Intermediato de Microsoft). Se enfatiza que la referencia debe ser relativa: en lugar de buscar un número mágico, los equipos deben establecer una línea base para detectar cuando los métodos existentes se vuelven más complejos, priorizando la estabilidad de la base de código legada sobre la optimización constante de métricas absolutas.
