Introducción a la complejidad ciclomática

Thomas J. McCabe desarrolló la complejidad ciclomática en 1976. Recomienda que los programadores cuenten la complejidad de los módulos en los que están trabajando y los dividan en módulos más pequeños para que siempre que la complejidad ciclomática del módulo sea superior a 10. 10 es el Máxima complejidad ciclomática para un programa. Es una medida de la complejidad del código fuente que se relaciona con una serie de errores de codificación. Determina las rutas independientes, lo que sería muy útil para los desarrolladores y evaluadores.

Esto ayuda a probar el software y nos da más confianza de que cada aspecto de nuestro programa ha sido probado. Esto mejora la calidad del código y también ayuda a concentrarse más en rutas invisibles, si las hay. Generalmente se calcula desarrollando un diagrama de flujo de control del código que mide el número de rutas linealmente independientes a través de un programa para medir con precisión la complejidad de un fragmento de código. Esto ayuda a mejorar la calidad del software.

Definición

La complejidad ciclomática del código es el número de rutas linealmente independientes dentro de las cuales se calcula.

¿Cómo calcular la complejidad ciclomática?

Calcular la complejidad ciclomática del programa es muy fácil con la siguiente fórmula.

Complejidad ciclomática = E - N + 2P

  • E => El no. de bordes de la gráfica
  • N => El número de nodos del gráfico
  • P => El no de componentes conectados

Hay una fórmula alternativa si consideramos el punto de salida que vuelve a su punto de entrada. Y lo crearás como un ciclo.

Complejidad ciclomática = E - N + P

Complejidad ciclomática = E - N + 1

Tenemos una forma más de calcular esto. Esta es una manera más fácil.

  1. Dibujar gráfico
  2. Luego conecte el punto de salida al punto de entrada
  3. Y luego cuente los agujeros en el gráfico

Mira la siguiente figura:

Las siguientes son algunas anotaciones de gráficos de flujo:

If-then-else:

Mientras:

Hacer mientras:

Por:

Si el programa no tiene ningún bucle, entonces su complejidad es menor. Cuando el programa encuentra algún bucle, la complejidad aumenta.

Supongamos que tenemos uno si la condición definida entonces tenemos complejidad como 2. Debido a que la condición tiene dos condiciones, Verdadero y Falso.

Esta técnica se usa principalmente en pruebas básicas de la caja blanca. La complejidad ciclomática representa un mínimo no. de pruebas requeridas para ejecutar cada ruta en el código.

Diferentes idiomas tienen diferentes herramientas para medir la complejidad ciclomática del programa.

Los pasos para calcular la complejidad ciclomática son los siguientes

  1. Dibuje el diagrama de flujo o un diagrama gráfico del código.
  2. Ahora, en el segundo paso, verifique e identifique cuántas rutas independientes tiene.
  3. Luego calcule la complejidad ciclomática por la fórmula mencionada a continuación:

M = E –N + 2P

  1. Según el diseño de la medida los casos de prueba.

Ahora, puede obtener una pregunta que, cómo se puede calcular realmente. Sigamos adelante y comprendamos cómo vamos a calcularlo.

Considere el siguiente ejemplo de código Java:

Este programa calcula la serie fibonacii como:

0 + 1 = 1

1 + 1 = 2

2 + 1 = 3

3 + 2 = 5

5 + 3 = 8

8 + 5 = 13

// El siguiente programa es simplemente imprimir la serie fibonacii

class Printno (
Public static void main(String() args)(
int max = 20 ;
int pre = 0;
int next = 1;
System.out.println(“The Fibonacii series is : ” +prev);
While(next<= max)(
System.out.println(next);
Sum = prev + next;
Prev = next;
Next =sum;
)
)
)

> javac Printno.java

> Java Printno

O / p:

La serie fibonacii es: 0

1

1

2

3

5 5

8

13

Eche un vistazo más de cerca al programa anterior. Encontrará uno mientras bucle. Este programa consta de un solo bucle while.

Ahora es el momento de dibujar un gráfico para ello.

Controle el gráfico de flujo de la siguiente manera:

Diagrama de flujo

Ahora, para calcular la complejidad del programa anterior, primero debemos calcular el no. de bordes:

No total de bordes: 6

Ahora, calcule el número total de nodos.

No total de nodos: 5

Fórmula: M = EN + 2p

M = 6 -5 + 2

M = 1 + 2

M = 3

Entonces, la complejidad ciclomática para este programa es 3.

Los códigos complejos son difíciles de mantener y actualizar o modificar. Como todos sabemos, la complejidad ciclomática no debe exceder de 10.

Tipos de complejidad

Hay dos tipos de complejidad:

Complejidad Esencial :

Esta complejidad es un tipo de código que no podemos ignorar.

Ex. El sistema de gestión de vuelo es más complejo.

Complejidad accidental

Como su nombre lo sugiere, porque sucedió algo como la corrección de errores, parches, modificaciones, etc. en el sistema. Principalmente solo estamos trabajando en la complejidad accidental.

Beneficios de la complejidad ciclomática:

  • Como lógica simple, si la complejidad se reduce, somos más convenientes de entender.
  • Si el programa más complejo está allí, entonces el programador necesita comprobar que no hay posibilidades de aumentar.
  • Las rutas contadas en complejidad muestran que un programa escrito por un programa es complejo o podemos seguir adelante y reducir la complejidad.
  • Reduce el acoplamiento del código.
  • Supongamos que un programa tiene una complejidad ciclomática de 5, lo que significa que hay 5 caminos independientes diferentes a través del método.
  • Esto significa que se deben realizar 5 casos de prueba para implementar este código para la prueba.
  • Por lo tanto, siempre es bueno obtener un número menor para la complejidad ciclomática.
  • Este proceso es necesario porque el código altamente acoplado es muy difícil de modificar.
  • Cuanto mayor sea la complejidad del código, esto significa que el código también es más complejo.

Las herramientas utilizadas para calcular la complejidad ciclomática son

  • Ciclo
  • CCCC
  • McCabe IQ
  • GCov
  • Cobertura Bullseye
  • PMD
  • LC2
  • Findbugs
  • Jarchitect

Conclusión

La complejidad ciclomática es la medida de la complejidad del programa. Esta medida nos ayuda a comprender el trabajo que se debe realizar y la complejidad del software. La complejidad ciclomática es parte de las pruebas de caja blanca.

Artículos recomendados

Esta ha sido una guía para la Complejidad Ciclomática. Aquí discutimos ¿Cómo calcular la complejidad ciclomática? junto con Beneficios y tipos de complejidad. También puede consultar los siguientes artículos para obtener más información:

  1. Introducción a Linux
  2. Introducción a C ++
  3. ¿Qué es HTML5?
  4. ¿Qué es hibernate?