Calculadora de complejidad ciclomática

Usa nuestra calculadora de complejidad ciclomática para calcular la complejidad ciclomática al instante. Incluye la definición, el significado y la fórmula de complejidad ciclomática, además de una explicación con ejemplo, guía sobre cómo reducir la complejidad ciclomática y una nota rápida sobre complejidad ciclomática vs complejidad cognitiva.

Número de componentes (C)
Componentes conectados en el grafo.
Número de aristas (E)
Aristas en el grafo de flujo de control.
Número de nodos (N)
Nodos en el grafo de flujo de control.
Results
Complejidad ciclomática (M)
Se calcula como M = E − N + 2C.
Did we solve your problem today?

¿Qué es la complejidad ciclomática?

La complejidad ciclomática es una métrica de software que mide el número de rutas independientes a través del código fuente de un programa. En términos simples, estima qué tan compleja es una función o método según sus ramificaciones y puntos de decisión.

Si buscas el significado de complejidad ciclomática o una explicación, la idea es: más ramas (if/else, casos de switch, bucles, condiciones lógicas) suelen implicar más rutas que probar, mayor costo de mantenimiento y mayor riesgo de errores.

La complejidad ciclomática se usa ampliamente como métrica en herramientas de análisis estático. Esta calculadora te ayuda a calcularla a partir del número de puntos de decisión (y opcionalmente aristas/nodos) usando la fórmula estándar.

Fórmula de la complejidad ciclomática

La fórmula clásica de complejidad ciclomática (McCabe) usa valores del grafo de flujo de control, pero también puede calcularse como 1 + número de puntos de decisión para una sola función conectada.

Complejidad ciclomática de McCabe =
M = E - N + 2P

E = aristas, N = nodos, P = componentes conectados (normalmente P = 1 para una sola función).

Atajo común (una sola función) =
M = D + 1

D = número de puntos de decisión (if/else-if, while, for, case, catch, &&, || según las reglas).

M
= Complejidad ciclomática
E
= Aristas en el grafo de flujo de control
N
= Nodos en el grafo de flujo de control
P
= Componentes conectados (normalmente 1 por función)
D
= Puntos de decisión / ramas
Complejidad ciclomática con ejemplo
D=4 → M = D+1 = 5

Si una función tiene 4 puntos de decisión, la complejidad ciclomática es 5 (cinco rutas independientes).

Por qué importa esta métrica
Más rutas → más pruebas

Una complejidad ciclomática mayor generalmente implica más casos que probar y más esfuerzo de mantenimiento.

Cómo calcular la complejidad ciclomática

  1. 1

    Cuenta los puntos de decisión (D), como if/else-if, bucles, casos de switch y ramificaciones condicionales en la función.

  2. 2

    Usa la fórmula de atajo M = D + 1 para calcular la complejidad ciclomática de una sola función.

  3. 3

    Si usas valores del grafo de flujo de control, introduce aristas (E), nodos (N) y componentes (P) y calcula M = E - N + 2P.

  4. 4

    Revisa el resultado y compáralo con umbrales comunes sobre qué es una buena complejidad ciclomática.

Preguntas frecuentes

¿Qué es la complejidad ciclomática?

La complejidad ciclomática es una métrica de complejidad del código que mide el número de rutas de ejecución independientes a través de un programa o función.

¿Definición / significado de complejidad ciclomática?

Cuantifica cuántas rutas distintas existen debido a ramificaciones y decisiones, y se usa a menudo para estimar el esfuerzo de pruebas y la mantenibilidad.

¿Cómo calcular la complejidad ciclomática?

Usa M = E - N + 2P (McCabe). Para una sola función conectada, un atajo común es M = D + 1, donde D son los puntos de decisión.

¿Cómo encontrar la complejidad ciclomática en código real?

Cuenta decisiones (if/else-if, bucles, casos de switch, ternarios y a veces operadores lógicos como && y || según tu herramienta) y calcula M = decisiones + 1.

¿Qué es una buena complejidad ciclomática?

En general, cuanto más baja mejor. Muchos equipos consideran valores alrededor de 1–10 como manejables, mientras que valores mayores pueden indicar necesidad de refactorización (los umbrales exactos varían por equipo/herramienta).

¿Cómo reducir la complejidad ciclomática?

Divide funciones grandes en otras más pequeñas, reemplaza condicionales anidados profundos con retornos tempranos, usa polimorfismo/patrones de estrategia en lugar de grandes bloques switch y simplifica la lógica booleana.

¿Complejidad ciclomática vs complejidad cognitiva?

La complejidad ciclomática cuenta rutas independientes; la complejidad cognitiva se centra en lo difícil que es entender el código (anidamiento y esfuerzo mental). Una función puede tener complejidad ciclomática similar pero complejidad cognitiva muy distinta.

¿Esto es una calculadora de complejidad ciclomática en línea?

Sí: esta calculadora calcula la métrica a partir de puntos de decisión o de entradas del grafo de flujo de control.