Introdução à complexidade ciclomática

A complexidade ciclomática é desenvolvida por Thomas J. McCabe em 1976. Ele recomendou que os programadores contassem a complexidade dos módulos nos quais estão trabalhando e os dividissem em módulos menores, de modo que sempre que a complexidade ciclomática do módulo exceder 10. 10 é a complexidade ciclomática máxima para um programa. É uma medida da complexidade do código-fonte que está sendo relacionada a vários erros de codificação. Ele determina os caminhos independentes, o que seria muito útil para os desenvolvedores e testadores.

Isso ajuda no teste do software e nos dá mais confiança de que todos os aspectos do nosso programa foram testados. Isso melhora a qualidade do código e também ajuda a se concentrar mais em caminhos invisíveis, se houver. Geralmente calculado através do desenvolvimento de um gráfico de fluxo de controle do código que mede o número de caminhos linearmente independentes por meio de um programa para medir com precisão a complexidade de um trecho de código. Isso ajuda a melhorar a qualidade do software.

Definição

A complexidade ciclomática do código é o número de caminhos linearmente independentes nele calculados.

Como calcular a complexidade ciclomática?

Calcular a complexidade ciclomática do programa é muito fácil pela seguinte fórmula.

Complexidade ciclomática = E - N + 2P

  • E => O não. de arestas do gráfico
  • N => O número de nós do gráfico
  • P => O número de componentes conectados

Existe uma fórmula alternativa se considerarmos o ponto de saída que retorna ao seu ponto de entrada. E você o criará como um ciclo.

Complexidade ciclomática = E - N + P

Complexidade ciclomática = E - N + 1

Temos mais uma maneira de calcular isso. Esta é uma maneira mais fácil.

  1. Desenhar gráfico
  2. Em seguida, conecte o ponto de saída ao ponto de entrada
  3. E depois conte os furos no gráfico

Veja a figura a seguir:

A seguir, estão algumas notações do gráfico de fluxo:

Se-então-outro:

Enquanto:

Fazer enquanto:

Para:

Se o programa não estiver tendo nenhum loop, sua complexidade será menor. Quando o programa encontra qualquer loop, a complexidade aumenta.

Suponha que tenhamos um, se a condição definida, tivermos complexidade como 2. Por causa da condição, ter duas condições True e False.

Esta técnica é usada principalmente em testes básicos da caixa branca. A complexidade ciclomática representa um número mínimo não. de testes necessários para executar todos os caminhos no código.

Idiomas diferentes têm ferramentas diferentes para medir a complexidade ciclomática do programa.

As etapas para calcular a complexidade ciclomática são as seguintes

  1. Desenhe o fluxograma ou um diagrama gráfico a partir do código.
  2. Agora, na segunda etapa, verifique e identifique quantos caminhos independentes ele possui.
  3. Em seguida, calcule a complexidade ciclomática pela fórmula mencionada abaixo:

M = E –N + 2P

  1. De acordo com o design da medida, os casos de teste.

Agora, você pode ter uma pergunta que, como pode ser realmente calculada. Vamos seguir em frente e entender como vamos calculá-lo.

Considere o seguinte exemplo de código Java:

Este programa calcula a série fibonacii como:

0 + 1 = 1

1 + 1 = 2

2 + 1 = 3

3 + 2 = 5

5 + 3 = 8

8 + 5 = 13

// O programa a seguir é apenas imprimir a série 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:

A série fibonacii é: 0

1 1

1 1

2

3

5

8

13

Dê uma olhada no programa acima. Você encontrará um loop while. Este programa consiste em apenas um loop while.

Agora é a hora de desenhar um gráfico para isso.

Controle o gráfico de fluxo como abaixo:

Fluxograma

Agora, para calcular a complexidade do programa acima, primeiro precisamos calcular o total não. de arestas:

Total no. de arestas: 6

Agora, calcule o número total de nós.

Nº total de nós: 5

Fórmula: M = EN + 2p

M = 6 -5 + 2

M = 1 + 2

M = 3

Portanto, a complexidade ciclomática deste programa é 3.

Códigos complexos são difíceis de manter, atualizar ou modificar. Como todos sabemos, a complexidade ciclomática não deve exceder 10.

Tipos de complexidade

Existem dois tipos de complexidade:

Complexidade essencial :

Essa complexidade é um tipo de código que não podemos ignorar.

Ex. O sistema de gerenciamento de vôo é mais complexo.

Complexidade acidental:

Como o nome sugere, porque algo aconteceu como correção de bugs, patches, modificações, etc. no sistema. Principalmente, estamos trabalhando apenas na complexidade acidental.

Benefícios da complexidade ciclomática:

  • Como lógica simples, se a complexidade diminuir, é mais conveniente entender.
  • Se o programa mais complexo estiver lá, o programador precisará verificar que nenhuma das possibilidades é aumentada.
  • Os caminhos contados em complexidade mostram que um programa escrito por um programa é complexo ou podemos prosseguir e reduzir a complexidade.
  • Reduz o acoplamento do código.
  • Suponha que um programa tenha complexidade ciclomática de 5. isso significa que existem 5 caminhos independentes diferentes através do método.
  • Isso significa que 5 casos de teste devem ser feitos para implementar esse código para teste.
  • Por isso, é sempre bom obter um número menor de complexidade ciclomática.
  • Esse processo é necessário porque o código altamente acoplado é muito difícil de modificar.
  • Quanto maior a complexidade do código, o que significa que o código também é mais complexo.

As ferramentas usadas para calcular a complexidade ciclomática são

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

Conclusão

A complexidade ciclomática é a medida da complexidade do programa. Essa medida nos ajuda a entender o trabalho necessário a ser realizado e quão complexo será o software. A complexidade ciclomática faz parte do White Box Testing.

Artigos recomendados

Este foi um guia para a complexidade ciclomática. Aqui discutimos Como calcular a complexidade ciclomática? juntamente com Benefícios e tipos de complexidade. Você também pode consultar os seguintes artigos para saber mais -

  1. Introdução ao Linux
  2. Introdução ao C ++
  3. O que é HTML5?
  4. O que é o Hibernate?