¿Qué es la complejidad ciclomática?
La complejidad ciclomática es una métrica para software, para mostrar que tan complicado es el proceso lógico y/o su calidad de un script especifico.
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) = ( 7 - 6 ) + 2
V(G) = 3
Nodos predicado:
Contamos los nodos que tienen 2 o mas líneas salientes del mismo, como el nodo numero 1 y 3; y sumamos 1; la formula:
V(G) = nodos predicado + 1
Con el ejemplo:
V(G) = 2 + 1
V(G) = 3
Regiones:
Son las áreas que se generan entre nodos y aristas, en nuestro grafo tenemos un área que esta entre los nodos 1, 2, 3, 4, 6; y otra área entre 3, 4, 5; y luego sumamos uno. La formula:
V(G) = áreas + 1
Con el ejemplo:
V(G) = 2 + 1
V(G) = 3
Resultados
Pero... ¿Qué significan esos números? Seguiremos una tabla para conocer la calidad de nuestro código.
Resultado Observación
1 - 10 Calidad excelente, riesgo bajo, código sencillo.
11 - 20 Calidad media, riesgo moderado, código regular.
21 - 50 Calidad baja, riesgo alto, código malo.
mas de 50 Calidad deficiente, riesgo muy alto, código muy malo no estable.
Con nuestro ejemplo, vemos que obtuvimos 3 en todas las pruebas, recomiendo hacer usar al menos 2 formulas para verificar el resultado, eso significa que el código es de una muy buena calidad.
Ahora, que sabemos la calidad de nuestro código, se recomienda que nuestro código este entre una calidad media y excelente, para cumplir buenos estándares en la programación, sí no cumple, se tendrá que mejorar.
Bibliografía
https://www.youtube.com/watch?v=iILl-n57IEs