Introduzione alla complessità ciclomatica

La complessità ciclomatica è sviluppata da Thomas J. McCabe nel 1976. Ha raccomandato ai programmatori di contare la complessità dei moduli su cui stanno lavorando e di dividerli in moduli più piccoli in modo tale che ogni volta che la complessità ciclomatica del modulo ha superato 10. 10 è il massima complessità ciclomatica per un programma. È una misurazione della complessità del codice sorgente che è correlata a numerosi errori di codifica. Determina i percorsi indipendenti, che sarebbero molto utili per gli sviluppatori e i tester.

Questo aiuta a testare il software e ci dà più sicurezza che ogni aspetto del nostro programma è stato testato. Ciò migliora la qualità del codice e aiuta anche a concentrarsi maggiormente su percorsi invisibili, se presenti. In genere è stato calcolato sviluppando un diagramma di flusso di controllo del codice che misura il numero di percorsi linearmente indipendenti attraverso un programma per misurare accuratamente la complessità di un pezzo di codice. Questo aiuta a migliorare la qualità del software.

Definizione

La complessità ciclomatica del codice è il numero di percorsi linearmente indipendenti al suo interno calcolati.

Come calcolare la complessità ciclomatica?

Il calcolo della complessità ciclomatica del programma è molto semplice con la seguente formula.

Complessità ciclomatica = E - N + 2P

  • E => Il n. dei bordi del grafico
  • N => Il numero di nodi del grafico
  • P => Il no dei componenti collegati

Esiste una formula alternativa se consideriamo il punto di uscita che ritorna al punto di entrata. E lo creerai come un ciclo.

Complessità ciclomatica = E - N + P

Complessità ciclomatica = E - N + 1

Abbiamo un altro modo per calcolare questo. Questo è un modo più semplice.

  1. Disegna il grafico
  2. Quindi collegare il punto di uscita al punto di entrata
  3. E poi conta i buchi nel grafico

Guarda la figura seguente:

Di seguito sono riportate alcune notazioni sul diagramma di flusso:

If-then-else:

Mentre:

Fare mentre:

Per:

Se il programma non ha alcun loop, la sua complessità è inferiore. Quando il programma incontra un ciclo, la complessità aumenta.

Supponiamo di averne uno se la condizione definita fosse allora complessa come 2. A causa della condizione sta avendo due condizioni Vero e Falso.

Questa tecnica è utilizzata principalmente nei test di base della scatola bianca. La complessità ciclomatica rappresenta un minimo n. dei test richiesti per eseguire ogni percorso nel codice.

Lingue diverse hanno strumenti diversi per misurare la complessità ciclomatica del programma.

I passaggi per calcolare la complessità ciclomatica sono i seguenti

  1. Disegna il diagramma di flusso o un diagramma grafico dal codice.
  2. Ora, nel secondo passaggio controlla e identifica quanti percorsi indipendenti ha.
  3. Quindi calcola la complessità ciclomatica con la formula indicata di seguito:

M = E –N + 2P

  1. Secondo la misura progettare i casi di prova.

Ora, potresti avere una domanda, come può essere effettivamente calcolato. Andiamo avanti e comprendiamo come lo stiamo effettivamente calcolando.

Considera il seguente esempio di codice Java:

Questo programma calcola le serie di fibonacii come:

0 + 1 = 1

1 + 1 = 2

2 + 1 = 3

3 + 2 = 5

5 + 3 = 8

8 + 5 = 13

// Il seguente programma è semplicemente quello di stampare 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

Operazione:

La serie fibonacii è: 0

1

1

2

3

5

8

13

Dai un'occhiata più da vicino al programma sopra. Ne troverai uno mentre loop. Questo programma è composto da un solo ciclo while.

Ora è il momento di disegnare un grafico per questo.

Controlla il diagramma di flusso come di seguito:

Diagramma di flusso

Ora, per calcolare la complessità del programma sopra, prima dobbiamo calcolare il numero totale. dei bordi:

Numero totale dei bordi: 6

Ora, calcola il numero totale di nodi.

Numero totale di nodi: 5

Formula: M = EN + 2p

M = 6-5 + 2

M = 1 + 2

M = 3

Quindi, la complessità ciclomatica per questo programma è 3.

I codici complessi sono difficili da mantenere, aggiornare o modificare. Come tutti sappiamo, la complessità ciclomatica non dovrebbe superare 10.

Tipi di complessità

Esistono due tipi di complessità:

Complessità essenziale :

Questa complessità è un tipo di codice che non possiamo ignorare.

Ex. Il sistema di gestione del volo è più complesso.

Complessità accidentale:

Come suggerisce il nome perché è successo qualcosa come la correzione di bug, l'applicazione di patch, la modifica, ecc. Nel sistema. Principalmente stiamo solo lavorando sulla complessità accidentale.

Vantaggi della complessità ciclomatica:

  • Come semplice logica, se la complessità si riduce, siamo più convenienti da capire.
  • Se è presente il programma più complesso, il programmatore deve controllare che non vengano aumentate le possibilità.
  • I percorsi contati nella complessità mostrano che un programma scritto da un programma è complesso o possiamo andare avanti e ridurne la complessità.
  • Riduce l'accoppiamento del codice.
  • Supponiamo che un programma abbia una complessità ciclomatica di 5. questo significa che ci sono 5 diversi percorsi indipendenti attraverso il metodo.
  • Ciò significa che per implementare questo codice sono necessari 5 casi di test.
  • Quindi, è sempre bene ottenere un numero minore per la complessità ciclomatica.
  • Questo processo è necessario perché il codice altamente accoppiato è molto difficile da modificare.
  • Maggiore è la complessità del codice che significa che il codice è anche più complesso.

Gli strumenti utilizzati per il calcolo della complessità ciclomatica sono

  • Cyclo
  • CCCC
  • McCabe IQ
  • gcov
  • Copertura Bullseye
  • PMD
  • LC2
  • Findbugs
  • Jarchitect

Conclusione

La complessità ciclomatica è la misura della complessità del programma. Questa misura ci aiuta a comprendere il lavoro richiesto da svolgere e la complessità del software. La complessità ciclomatica fa parte del White Box Testing.

Articoli consigliati

Questa è stata una guida alla complessità ciclomatica. Qui discutiamo come calcolare la complessità ciclomatica? insieme a vantaggi e tipi di complessità. Puoi anche consultare i seguenti articoli per saperne di più -

  1. Introduzione a Linux
  2. Introduzione al C ++
  3. Che cos'è HTML5?
  4. Che cos'è l'ibernazione?

Categoria: