¿Qué es la complejidad ciclomática?
La complejidad ciclomática es una métrica para software,para observar lo complicado de un código y por ende su mantenimiento. Entre mas complejo, menos mantenible es.
Ahora, veremos como aplicarlo a un código (python) de ejemplo:
Al tener nuestro código, ahora haremos un grafo sobre el mismo (los grafos son una representación gráfica, por ejemplo, redes neuronales):
Para obtener la complejidad tenemos 3 formas diferentes de hacerlo:
Aristas y nodos:
Contamos la cantidad de aristas (son las lineas que van de los cÃrculos a otros) y los nodos ( son los cÃrculos) y luego sumamos 2; la formula:
V(G) = (aristas - nodos) + 2
Con el ejemplo:
V(G) = (13 - 10) +2
= 5
Nodos predicado:
Contamos los nodos que tienen 2 o mas lÃneas salientes del mismo, como el nodo de inicio y 3; y sumamos 1; la formula:
V(G) = nodos predicado + 1
Con el ejemplo:
V(G) = 4 + 1
V(G) = 5
Regiones:
Son las áreas que se generan entre nodos y aristas, en nuestro grafo tenemos como ejemplo el area que esta entre los nodos 2,3,4,5; y luego sumamos uno. La formula:
V(G) = áreas + 1
Con el ejemplo:
V(G) = 4 + 1
V(G) =5
Resultados
Pero... ¿Qué significan esos números? Seguiremos una tabla para conocer la complejidad de nuestro código.
Resultado Observación
1 - 10 Riesgo bajo, código sencillo.
11 - 20 Riesgo moderado, código regular.
21 - 50 Riesgo alto, código malo.
mas de 50 Riesgo muy alto, código muy malo no estable.
Con nuestro ejemplo, vemos que obtuvimos 5 en todas las pruebas, recomiendo hacer usar al menos 2 formulas para verificar el resultado, eso significa que el código es de bajo riesgo. Entonces es un código de fácil mantenimiento.
Ahora, que sabemos la complejidad de nuestro código, se recomienda que nuestro código este entre un riesgo medio y bajo, para cumplir buenos estándares en la programación, sà no cumple, se tendrá que mejorar.
BibliografÃa
Como elaborar un grafo de código