Uvod u ciklomatičnu složenost

Ciklomatičku složenost razvio je Thomas J. McCabe 1976. Preporučio je programerima da prebroje složenost modula na kojima rade i podijele ih na manje module tako da kad god je ciklomatična složenost modula veća od 10. 10 maksimalna ciklomatična složenost za jedan program. To je mjerenje složenosti izvornog koda koje je povezano s brojnim pogreškama kodiranja. Određuje neovisne staze, što bi bilo korisno programerima i testerima.

Ovo pomaže u testiranju softvera i daje nam više samopouzdanja da je svaki aspekt našeg programa testiran. To poboljšava kvalitetu koda i također pomaže da se više koncentrirate na nevidljive staze ako ih ima. Općenito se izračunava izradom grafikona kontrolnog toka koda koji mjeri broj linearno neovisnih staza kroz program za točno mjerenje složenosti dijela koda. Ovo pomaže poboljšati kvalitetu softvera.

definicija

Ciklomatična složenost koda je broj linearno neovisnih staza unutar njega.

Kako izračunati ciklomatsku složenost?

Izračunavanje ciklomatične složenosti programa vrlo je jednostavno prema sljedećoj formuli.

Ciklomatična složenost = E - N + 2P

  • E => Ne. rubova grafikona
  • N => Broj čvorova grafikona
  • P => Broj povezanih komponenti

Postoji alternativna formula ako uzmemo u obzir točku izlaza koja se vraća do vaše ulazne točke. I stvorit ćete ga poput ciklusa.

Ciklomatična složenost = E - N + P

Ciklomatična složenost = E - N + 1

Imamo još jedan način izračunavanja toga. Ovo je lakši način.

  1. Nacrtaj graf
  2. Zatim spojite izlaznu točku s ulaznom točkom
  3. A zatim izbrojite rupe u grafikonu

Pogledajte sljedeću sliku:

Evo nekoliko bilješki dijagrama tijeka:

Ako-onda-drugo:

Dok:

Do-Dok:

Za:

Ako program nema petlje, njegova složenost je manja. Kada program naiđe na bilo koju petlju, tada se složenost povećava.

Pretpostavimo da imamo jedan ako je uvjet definiran, složenost smo dobili 2. Zbog uvjeta imamo dva uvjeta Istinito i Lažno.

Ova se tehnika uglavnom koristila u osnovnom ispitivanju bijele kutije. Ciklomatična složenost predstavlja minimum. testova potrebnih za izvršavanje svakog puta u kodu.

Različiti jezici imaju različite alate za mjerenje ciklomatične složenosti programa.

Sljedeći su koraci za izračunavanje ciklomatičke složenosti

  1. Iz koda nacrtajte dijagram toka ili grafikon.
  2. Sada, u drugom koraku provjerite i utvrdite koliko ima nezavisnih staza.
  3. Zatim izračunajte ciklomatičku složenost prema dolje navedenoj formuli:

M = E –N + 2P

  1. Prema mjeri dizajnirajte testne slučajeve.

Sada bi vam se moglo postaviti pitanje koje, kako to može stvarno izračunati. Krenimo naprijed i shvatimo kako ćemo to zapravo izračunati.

Razmotrite sljedeći primjer Java koda:

Ovaj program izračunava fibonacii seriju kao:

0 + 1 = 1

1 + 1 = 2

2 + 1 = 3

3 + 2 = 5

5 + 3 = 8

8 + 5 = 13

// Slijedeći program je samo ispis serije 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:

Serija fibonacii je: 0

1

1

2

3

5

8

13

Pogledajte bliži gornji program. Pronaći ćete jedan dok je petlja. Ovaj se program sastoji od samo jedne petlje.

Sada je vrijeme za to nacrtati grafikon.

Graf kontrolnog toka kao što slijedi:

Dijagram toka

Sada, da bismo izračunali složenost gornjeg programa, prvo moramo izračunati ukupno br. rubova:

Ukupno br. rubova: 6

Sada izračunajte ukupan broj čvorova.

Ukupan broj čvorova: 5

Formula: M = EN + 2p

M = 6 -5 + 2

M = 1 + 2

M = 3

Dakle, ciklomatična složenost ovog programa je 3.

Složene kodove je teško održavati i ažurirati ili mijenjati. Kao što svi znamo da ciklomatička složenost ne smije biti veća od 10.

Vrste složenosti

Postoje dvije vrste složenosti:

Bitna složenost :

Ova složenost vrsta je koda koji ne možemo zanemariti.

Ex. Sustav upravljanja letom je složeniji.

Slučajna složenost:

Kao što ime sugerira, jer se u sustavu dogodilo nešto poput ispravljanja grešaka, krpa, izmjena itd. Uglavnom radimo samo na složenosti Slučajnosti.

Prednosti ciklomatične složenosti:

  • Kao jednostavna logika, ako se složenost smanji, to smo prikladniji za razumijevanje.
  • Ako je složeniji program tamo, programer treba provjeriti da se mogućnosti ne povećavaju.
  • Staze brojene u složenosti pokazuju da je program napisan programom složen ili da možemo ići naprijed i smanjiti složenost.
  • Smanjuje povezivanje koda.
  • Pretpostavimo da program ima ciklomatsku složenost od 5. što znači da kroz metodu postoji 5 različitih neovisnih staza.
  • To znači da je potrebno 5 test slučajeva za provedbu ovog koda za testiranje.
  • Stoga je uvijek dobro dobiti manji broj za ciklomatične složenosti.
  • Ovaj je postupak potreban jer je jako spojen kod vrlo teško izmijeniti.
  • Što je veća složenost koda, što znači da je kod, također je složeniji.

Alati koji se koriste za izračunavanje ciklomatičke složenosti jesu

  • Cyclo
  • CCCC
  • McCabe IQ
  • GCov
  • Pokrivenost bikovima
  • PMD
  • LC2
  • Findbugs
  • Jarchitect

Zaključak

Ciklomatična složenost mjera je složenosti programa. Ova mjera nam pomaže da shvatimo koliki je posao potrebno obaviti i koliko će softver biti težak. Ciklomatična složenost dio je ispitivanja bijele kutije.

Preporučeni članci

Ovo je vodič za ciklomatičnu složenost. Ovdje smo raspravljali Kako izračunati ciklomatičku složenost? zajedno s prednostima i vrstama složenosti. Možete pogledati i sljedeće članke da biste saznali više -

  1. Uvod u Linux
  2. Uvod u C ++
  3. Što je HTML5?
  4. Što je hibernacija?

Kategorija: