Complejidad ciclomática

 ¿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:

 
horas = int(input("Número de horas: "))
y = 1
res = 12000

if(horas > 40):
  while(y < horas):
    if(y <= 39):
      res += 5000
    elif(y > 39):
      res += 6250
    y += 1
else:
  while(y < horas):
    res += 5000
    y += 1

print("Pago total: ")
print(res
 

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