Úvod do cyklomatickej komplexnosti

Cyklematickú zložitosť vyvinul Thomas J. McCabe v roku 1976. Odporúčal, aby programátori spočítali zložitosť modulov, na ktorých pracujú, a rozdelil ich na menšie moduly tak, aby vždy, keď cyklomatická zložitosť modulu presiahla 10. 10. maximálna cyklomatická zložitosť pre jeden program. Je to meranie zložitosti zdrojového kódu, ktoré súvisí s mnohými chybami kódovania. Určuje nezávislé cesty, ktoré by boli veľmi užitočné pre vývojárov a testerov.

Pomáha to pri testovaní softvéru a dáva nám väčšiu istotu, že boli testované všetky aspekty nášho programu. Zvyšuje sa tým kvalita kódu a pomáha sa viac sústrediť na neviditeľné cesty, ak existujú. Všeobecne sa počíta vývojom riadiaceho vývojového diagramu kódu, ktorý meria počet lineárne nezávislých ciest programom na presné meranie zložitosti časti kódu. Pomáha to zlepšovať kvalitu softvéru.

definícia

Cyklomatická zložitosť kódu je počet lineárne nezávislých ciest, ktoré sú v ňom vypočítané.

Ako vypočítať cyklickú zložitosť?

Vypočítanie cyklomatickej zložitosti programu je veľmi jednoduché podľa nasledujúceho vzorca.

Cyklická zložitosť = E - N + 2P

  • E => č. hrán grafu
  • N => Počet uzlov v grafe
  • P => Počet pripojených komponentov

Existuje alternatívny vzorec, ak vezmeme do úvahy výstupný bod, ktorý sa vracia k vášmu vstupnému bodu. A vytvoríte to ako cyklus.

Cyklická zložitosť = E - N + P

Cyklická zložitosť = E - N + 1

Máme ešte jeden spôsob výpočtu. Toto je ľahší spôsob.

  1. Nakreslite graf
  2. Potom pripojte výstupný bod k vstupnému bodu
  3. A potom spočítajte diery v grafe

Pozrite sa na nasledujúci obrázok:

Uvádzame niekoľko poznámok vývojového diagramu:

If-then-else:

zatiaľ čo:

Do-Kým:

pre:

Ak program nemá žiadnu slučku, potom je jeho zložitosť nižšia. Keď program narazí na akúkoľvek slučku, zložitosť sa zvýši.

Predpokladajme, že jeden máme, ak je definovaná podmienka, potom sme dostali zložitosť ako 2. Pretože podmienka má dve podmienky: true a false.

Táto technika sa väčšinou používa pri základnom testovaní bielej skrinky. Cyklomatická zložitosť predstavuje minimálne číslo. testov potrebných na vykonanie každej cesty v kóde.

Rôzne jazyky majú rôzne nástroje na meranie cyklomatickej zložitosti programu.

Kroky na výpočet cyklickej zložitosti sú nasledujúce

  1. Nakreslite vývojový diagram alebo grafovú schému z kódu.
  2. Teraz v druhom kroku skontrolujte a identifikujte, koľko nezávislých ciest má.
  3. Potom vypočítajte cyklomatickú zložitosť pomocou vzorca uvedeného nižšie:

M = E – N + 2P

  1. Podľa návrhu opatrenia testovacie prípady.

Teraz môžete získať otázku, ako sa môže skutočne vypočítať. Poďme ďalej a pochopíme, ako to vlastne spočítame.

Zvážte nasledujúci príklad kódu Java:

Tento program počíta sériu fibonacii takto:

0 + 1 = 1

1 + 1 = 2

2 + 1 = 3

3 + 2 = 5

5 + 3 = 8

8 + 5 = 13

// Nasledujúcim programom je iba vytlačiť sériu 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:

Séria fibonacii je: 0

1

1

2

3

5

8

13

Podrobnejšie sa pozrite na vyššie uvedený program. Jeden nájdete v slučke. Tento program pozostáva iba z jednej slučky while.

Teraz je čas na to nakresliť graf.

Graf riadenia toku ako je uvedené nižšie:

vývojový diagram

Teraz, pre výpočet zložitosti vyššie uvedeného programu, musíme najprv vypočítať celkové číslo. hrán:

Celkom č. hrán: 6

Teraz vypočítajte celkový počet uzlov.

Celkový počet uzlov: 5

Vzorec: M = EN + 2p

M = 6 -5 + 2

M = 1 + 2

M = 3

Cyklická zložitosť tohto programu je teda 3.

Komplexné kódy sa ťažko udržiavajú a aktualizujú alebo upravujú. Ako všetci vieme, cyklomatická zložitosť by nemala prekročiť 10.

Druhy zložitosti

Existujú dva typy komplexnosti:

Základná zložitosť :

Táto zložitosť je typom kódu, ktorý nemôžeme ignorovať.

Ex. Systém riadenia letu je komplexnejší.

Náhodná zložitosť:

Ako už názov napovedá, pretože v systéme sa stalo niečo ako oprava chyby, oprava, úprava atď. Väčšinou pracujeme iba na náhodnej zložitosti.

Výhody cyklomatickej komplexnosti:

  • Jednoduchá logika, ak sa zložitosť zníži, sme pohodlnejšie pochopiť.
  • Ak existuje zložitejší program, potom je potrebné, aby programátor nezvýšil žiadne možnosti.
  • Cesty počítané v zložitosti ukazujú, že program napísaný programom je zložitý, alebo môžeme pokračovať a znížiť zložitosť.
  • Znižuje to spojenie kódu.
  • Predpokladajme, že program má cyklomatickú zložitosť 5. To znamená, že metódou existuje 5 rôznych nezávislých ciest.
  • To znamená, že na implementáciu tohto kódu na testovanie sa musí vykonať 5 testovacích prípadov.
  • Preto je vždy dobré získať menšie číslo pre cyklomatickú zložitosť.
  • Tento proces je potrebný, pretože je veľmi ťažké modifikovať vysoko spojený kód.
  • Čím je zložitosť kódu vyššia, tým je kód zložitejší.

Nástroje používané na výpočet cyklickej zložitosti sú:

  • cyklo
  • CCCC
  • McCabe IQ
  • gcov
  • Bullseye Pokrytie
  • PMD
  • LC2
  • FindBugs
  • Jarchitect

záver

Cyklomatická komplexnosť je mierou komplexnosti programu. Toto opatrenie nám pomáha porozumieť požadovanej práci a zložitosti softvéru. Cyklická zložitosť je súčasťou White Box Testingu.

Odporúčané články

Bol to sprievodca cyclomatickou komplexnosťou. Tu diskutujeme o tom, ako vypočítať cyklomatickú zložitosť? spolu s výhodami a druhmi zložitosti. Ďalšie informácie nájdete aj v nasledujúcich článkoch -

  1. Úvod do systému Linux
  2. Úvod do C ++
  3. Čo je to HTML5?
  4. Čo je režim dlhodobého spánku?

Kategórie: