Uvod v ciklomatično kompleksnost

Ciklomatično kompleksnost je razvil Thomas J. McCabe leta 1976. Priporočil je, da programerji preštejejo zahtevnost modulov, na katerih delajo, in jih razdelijo na manjše module, tako da kadarkoli ciklomatična zapletenost modula preseže 10. 10 največja ciklomatična zahtevnost za en program. Gre za meritev zapletenosti izvorne kode, ki je povezana s številnimi napakami kodiranja. Določa neodvisne poti, ki bi bile zelo koristne razvijalcem in preizkuševalcem.

To pomaga pri testiranju programske opreme in nam daje več zaupanja v preizkušanje vseh vidikov našega programa. To izboljša kakovost kode in tudi pomaga bolj koncentrirati se na nevidne poti, če sploh. Na splošno se izračuna tako, da se razvije kontrolni graf pretoka kode, ki meri število linearno neodvisnih poti skozi program za natančno merjenje zahtevnosti kosa. To pomaga izboljšati kakovost programske opreme.

Opredelitev

Ciklomatična zapletenost kode je število linearno neodvisnih poti znotraj nje.

Kako izračunati ciklomatično zapletenost?

Izračunavanje ciklomatične zapletenosti programa je zelo enostavno po naslednji formuli.

Ciklomatična zapletenost = E - N + 2P

  • E => št. robov grafa
  • N => Število vozlišč grafa
  • P => Število povezanih komponent

Če upoštevamo izhodno točko, ki se vrne na vašo vstopno točko, obstaja alternativna formula. In ustvarili jo boste kot cikel.

Ciklomatična zapletenost = E - N + P

Ciklomatična zapletenost = E - N + 1

Imamo še en način izračuna tega. To je bolj enostaven način.

  1. Narišite graf
  2. Nato priključite izhodno točko na vstopno točko
  3. In nato preštejte luknje v grafu

Poglejte naslednjo sliko:

Sledi nekaj zapisov grafov toka:

Če-potem-drugače:

Medtem:

Do-while:

Za:

Če program nima zanke, je njegova kompleksnost manjša. Ko program naleti na katero koli zanko, se kompleksnost poveča.

Recimo, da imamo enega, če je pogoj definiran, potem smo dobili zapletenost kot 2. Zaradi pogoja imata dva pogoja True in False.

Ta tehnika se večinoma uporablja pri osnovnem testiranju belega polja. Ciklomatična zahtevnost predstavlja minimalno št. preizkusov, potrebnih za izvedbo vsake poti v kodi.

Različni jeziki imajo različna orodja za merjenje ciklomatične zapletenosti programa.

Naslednji koraki za izračun ciklomatične zapletenosti so naslednji

  1. Iz kode narišite diagram poteka ali grafikon.
  2. Zdaj v drugem koraku preverite in ugotovite, koliko neodvisnih poti ima.
  3. Nato izračunajte ciklomatično kompleksnost po spodnji formuli:

M = E –N + 2P

  1. V skladu z načrtom ukrepa testne primere.

Zdaj boste morda dobili vprašanje, kako to dejansko izračunati. Pojdimo naprej in razumemo, kako bomo to dejansko izračunali.

Razmislite o naslednjem primeru kode Java:

Ta program izračuna serijo fibonacii kot:

0 + 1 = 1

1 + 1 = 2

2 + 1 = 3

3 + 2 = 5

5 + 3 = 8

8 + 5 = 13

// Sledi program, da samo natisnemo serijo 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

Oglejte si zgornji program. Enega boste našli med zanko. Ta program je sestavljen samo iz ene zanke.

Zdaj je čas, da sestavite graf zanjo.

Graf toka krmiljenja kot je spodaj:

Diagram poteka

Zdaj, da izračunamo zahtevnost zgornjega programa, najprej moramo izračunati skupno št. robov:

Skupaj št. robov: 6

Zdaj izračunajte skupno število vozlišč.

Skupno število vozlišč: 5

Formula: M = EN + 2p

M = 6 -5 + 2

M = 1 + 2

M = 3

Torej je ciklomatična zapletenost tega programa 3.

Kompleksne kode je težko vzdrževati in posodabljati ali spreminjati. Kot vsi vemo, da ciklomatična zahtevnost ne sme presegati 10.

Vrste zapletenosti

Obstajata dve vrsti zapletenosti:

Bistvena zapletenost :

Ta kompleksnost je vrsta kode, ki je ne moremo prezreti.

Izv. Sistem upravljanja leta je bolj zapleten.

Nesrečna zapletenost:

Kot že ime pove, ker se je v sistemu zgodilo nekaj, kot so odpravljanje napak, popravilo, spreminjanje itd. Večinoma delamo le na zapletenosti nezgode.

Prednosti ciklomatične zapletenosti:

  • Kot enostavna logika, če se kompleksnost zmanjša, smo bolj priročni za razumevanje.
  • Če je tam bolj zapleten program, mora programer odpraviti nobene možnosti.
  • Po štetju štetih poti je razvidno, da je program, ki ga je napisal program, zapleten ali pa lahko nadaljujemo in zmanjšujemo kompleksnost.
  • Zmanjšuje povezovanje kode.
  • Predpostavimo, da ima program ciklomatično kompleksnost 5, kar pomeni, da obstaja 5 različnih neodvisnih poti skozi metodo.
  • To pomeni, da je treba za izvajanje te kode za testiranje narediti 5 testnih primerov.
  • Zato je vedno dobro dobiti manjše število za ciklomatično kompleksnost.
  • Ta postopek je potreben, ker je močno povezano kodo zelo težko spremeniti.
  • Večja zapletenost je koda, ki pomeni, da je koda tudi bolj zapletena.

Orodja za izračun ciklomatične zapletenosti so

  • Ciklo
  • CCCC
  • McCabe IQ
  • GCov
  • Pokritje z bikovimi očmi
  • PMD
  • LC2
  • Findbugs
  • Jarchitect

Zaključek

Ciklomatična kompleksnost je merilo zahtevnosti programa. Ta ukrep nam pomaga razumeti potrebno delo in opraviti programsko opremo. Ciklomatična kompleksnost je del testiranja belega polja.

Priporočeni članki

To je vodnik po ciklomatični zapletenosti. Tukaj razpravljamo, kako izračunati ciklomatično zapletenost? skupaj s koristmi in vrstami zahtevnosti. Če želite izvedeti več, si oglejte tudi naslednje članke -

  1. Uvod v Linux
  2. Uvod v C ++
  3. Kaj je HTML5?
  4. Kaj je mirovanje?