Introducere în complexitatea ciclomatică

Complexitatea ciclomatică este dezvoltată de Thomas J. McCabe în 1976. El a recomandat programatorilor să numere complexitatea modulelor pe care lucrează și să le împartă în module mai mici, astfel încât ori de câte ori complexitatea ciclomatică a modulului să depășească 10. 10 este complexitate ciclomatică maximă pentru un singur program. Este o măsurare a complexității codului sursă care este legată de o serie de erori de codificare. Determină căile independente, ceea ce ar fi de mare ajutor pentru dezvoltatori și testatori.

Acest lucru ajută la testarea software-ului și ne oferă mai multă încredere că fiecare aspect al programului nostru a fost testat. Acest lucru îmbunătățește calitatea codului și ajută, de asemenea, la concentrarea mai mare pe căile invizibile. În general, se calculează prin dezvoltarea unui grafic de flux al codului care măsoară numărul de trasee independente liniar printr-un program pentru a măsura cu exactitate complexitatea unei bucăți de cod. Acest lucru ajută la îmbunătățirea calității software-ului.

Definiție

Complexitatea ciclomatică a codului este numărul de căi liniar independente în cadrul acestuia.

Cum se calculează complexitatea ciclomatică?

Calcularea complexității ciclomatice a programului este foarte ușoară prin următoarea formulă.

Complexitate ciclomatică = E - N + 2P

  • E => Nr. a marginilor graficului
  • N => Numărul de noduri ale graficului
  • P => Nr de componente conectate

Există o formulă alternativă dacă luăm în considerare punctul de ieșire care se întoarce la punctul de intrare. Și îl veți crea ca un ciclu.

Complexitatea ciclomatică = E - N + P

Complexitatea ciclomatică = E - N + 1

Mai avem un mod de a calcula acest lucru. Acesta este un mod mai ușor.

  1. Desenați grafic
  2. Apoi conectați punctul de ieșire la punctul de intrare
  3. Și apoi numărați găurile din grafic

Priviți următoarea figură:

Urmează câteva notări ale graficului de flux:

În cazul în care -apoi-altceva:

In timp ce:

Face în timp ce:

Pentru:

Dacă programul nu are nicio buclă, atunci complexitatea acestuia este mai mică. Când programul întâlnește orice buclă, atunci complexitatea crește.

Să presupunem că avem una dacă condiția definită, atunci am obținut complexitate ca 2. Din cauza condiției este să avem două condiții Adevărat și Fals.

Această tehnică este utilizată mai ales în testarea de bază a cutiei albe. Complexitatea ciclomatică reprezintă un minim nr. de teste necesare pentru a executa fiecare cale din cod.

Diferite limbi au instrumente diferite pentru a măsura complexitatea ciclomatică a programului.

Pașii pentru calcularea complexității ciclomatice sunt următoarele

  1. Desenați diagrama de flux sau o diagramă grafică din cod.
  2. Acum, în al doilea pas verificați și identificați câte căi independente are.
  3. Apoi calculați complexitatea ciclomatică după formula menționată mai jos:

M = E –N + 2P

  1. Conform proiectării măsurii, cazurile de testare.

Acum, s-ar putea să primiți o întrebare care, cum se poate calcula efectiv. Haideți să mergem mai departe și să înțelegem cum de fapt o vom calcula.

Luați în considerare următorul exemplu de cod Java:

Acest program calculează seria fibonacii precum:

0 + 1 = 1

1 + 1 = 2

2 + 1 = 3

3 + 2 = 5

5 + 3 = 8

8 + 5 = 13

// Următorul program este doar să imprimați seria 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:

Seria fibonacii este: 0

1

1

2

3

5

8

13

Aruncați o privire mai atentă asupra programului de mai sus. Veți găsi unul în buclă. Acest program constă dintr-o singură buclă în timp ce.

Acum este momentul să desenăm un grafic pentru el.

Controlați graficul de flux ca mai jos:

Flowchart

Acum, Pentru a calcula complexitatea programului de mai sus, mai întâi trebuie să calculăm totalul nr. de margini:

Total nr. de margini: 6

Acum, calculați numărul total de noduri.

Numărul total de noduri: 5

Formula: M = EN + 2p

M = 6 -5 + 2

M = 1 + 2

M = 3

Deci, complexitatea ciclomatică pentru acest program este 3.

Codurile complexe sunt dificil de întreținut și de actualizat sau de modificat. După cum știm cu toții că complexitatea ciclomatică nu trebuie să depășească 10.

Tipuri de complexitate

Există două tipuri de complexitate:

Complexitate esențială :

Această complexitate este un tip de cod pe care nu îl putem ignora.

Ex. Sistemul de gestionare a zborurilor este unul mai complex.

Complexitate accidentală:

Așa cum sugerează și numele, deoarece s-a întâmplat ceva, cum ar fi remedierea erorilor, Patching, Modificare, etc în sistem. Mai ales lucrăm doar la complexitatea accidentală.

Beneficiile complexității ciclomatice:

  • Ca logică simplă, dacă complexitatea se reduce, suntem mai convenabili să înțelegem.
  • Dacă programul mai complex există, atunci programatorul trebuie să se oprească, nu se crește nicio posibilitate.
  • Căile numărate în complexitate arată că un program scris de un program este complex sau putem merge înainte și să reducem complexitatea.
  • Acesta reduce cuplarea codului.
  • Să presupunem că un program are o complexitate ciclomatică de 5, ceea ce înseamnă că există 5 căi independente diferite prin metodă.
  • Acest lucru înseamnă că 5 cazuri de test trebuie să fie făcute pentru a implementa acest cod pentru testare.
  • Prin urmare, este întotdeauna bine să obțineți un număr mai mic pentru complexitatea ciclomatică.
  • Acest proces este necesar deoarece codul foarte cuplat este foarte dificil de modificat.
  • Cu cât nu este mai complexă numărul de cod care înseamnă cod este, de asemenea, mai complex.

Instrumentele utilizate pentru calcularea complexității ciclomatice sunt

  • Cyclo
  • CCCC
  • IQ McCabe
  • GCov
  • Acoperirea Bullseye
  • PMD
  • LC2
  • Findbugs
  • Jarchitect

Concluzie

Complexitatea ciclomatică este măsura complexității programului. Această măsură ne ajută să înțelegem munca necesară și cât de complexă va fi software-ul. Complexitatea ciclomatică face parte din White Box Testing.

Articole recomandate

Acesta a fost un ghid pentru complexitatea ciclomatică. Aici discutăm Cum să calculăm complexitatea ciclomatică? împreună cu Beneficiile și tipurile de complexitate. De asemenea, puteți consulta următoarele articole pentru a afla mai multe -

  1. Introducere în Linux
  2. Introducere în C ++
  3. Ce este HTML5?
  4. Ce este Hibernate?