Úvod do cyklomatické složitosti

Cyclomatic complexity vyvinul Thomas J. McCabe v roce 1976. Doporučil, aby programátoři spočítali složitost modulů, na nichž pracují, a rozdělili je na menší moduly tak, aby kdykoli překročila cyklomatická složitost modulu 10. 10 je maximální cyklomatická složitost pro jeden program. Jedná se o měření složitosti zdrojového kódu, která souvisí s řadou chyb kódování. Určuje nezávislé cesty, které by byly velmi užitečné pro vývojáře a testery.

To pomáhá při testování softwaru a dává nám větší důvěru v to, že byly testovány všechny aspekty našeho programu. To zlepšuje kvalitu kódu a také pomáhá soustředit se více na neviditelné cesty, pokud existují. Obecně se počítá vytvořením grafu regulačního toku kódu, který měří počet lineárně nezávislých cest programem, aby se přesně změřila složitost kódu. To pomáhá zlepšit kvalitu softwaru.

Definice

Cyklomatická složitost kódu je počet lineárně nezávislých cest v něm vypočítaných.

Jak vypočítat cyklomatickou složitost?

Vypočítání cyklomatické složitosti programu je velmi snadné podle následujícího vzorce.

Cyklomatická složitost = E - N + 2P

  • E => Ne. hran grafu
  • N => Počet uzlů grafu
  • P => Počet připojených komponent

Existuje alternativní vzorec, pokud vezmeme v úvahu výstupní bod, který se vrací k vašemu vstupnímu bodu. A vytvoříte to jako cyklus.

Cyklomatická složitost = E - N + P

Cyklomatická složitost = E - N + 1

Máme ještě jeden způsob výpočtu. To je snadnější způsob.

  1. Nakreslete graf
  2. Poté připojte výstupní bod k vstupnímu bodu
  3. A pak spočítat díry v grafu

Podívejte se na následující obrázek:

Následuje několik poznámek vývojového diagramu:

Jestliže pak jinak:

Zatímco:

Dělat, zatímco:

Pro:

Pokud program nemá žádnou smyčku, je jeho složitost nižší. Když program narazí na jakoukoli smyčku, složitost se zvětší.

Předpokládejme, že máme jednu, pokud je podmínka definována, pak máme složitost jako 2. Protože podmínka má dvě podmínky True a False.

Tato technika se většinou používala při základním testování bílé skříňky. Cyklomatická složitost představuje minimální číslo. testů nutných k provedení každé cesty v kódu.

Různé jazyky mají různé nástroje pro měření cyklomatické složitosti programu.

Kroky pro výpočet cyklomatické složitosti jsou následující

  1. Nakreslete vývojový diagram nebo grafový diagram z kódu.
  2. Nyní ve druhém kroku zkontrolujte a určete, kolik nezávislých cest má.
  3. Poté vypočtěte cyklomatickou složitost pomocí vzorce uvedeného níže:

M = E – N + 2P

  1. Podle návrhu opatření testovací případy.

Nyní můžete získat otázku, jak se může skutečně vypočítat. Pojďme a pochopíme, jak to ve skutečnosti vypočítáme.

Zvažte následující příklad kódu Java:

Tento program počítá řadu fibonacii takto:

0 + 1 = 1

1 + 1 = 2

2 + 1 = 3

3 + 2 = 5

5 + 3 = 8

8 + 5 = 13

// Následující program je pouze vytisknout sérii 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:

Řada fibonacii je: 0

1

1

2

3

5

8

13

Podívejme se blíže na výše uvedený program. Najdete jednu chvíli smyčky. Tento program se skládá pouze z jedné smyčky while.

Nyní je čas na to nakreslit graf.

Graf toku řízení, jak je uvedeno níže:

Vývojový diagram

Nyní, pro výpočet složitosti výše uvedeného programu, nejdřív musíme vypočítat celkový počet. hran:

Celkem ne. hran: 6

Nyní vypočítejte celkový počet no.of uzlů.

Celkový počet uzlů: 5

Vzorec: M = EN + 2p

M = 6 -5 + 2

M = 1 + 2

M = 3

Cyklomatická složitost tohoto programu je tedy 3.

Složité kódy je obtížné udržovat a aktualizovat nebo upravovat. Jak všichni víme, cyklomatická složitost by neměla přesáhnout 10.

Druhy složitosti

Existují dva typy složitosti:

Základní složitost :

Tato složitost je typ kódu, který nemůžeme ignorovat.

Př. Systém řízení letu je složitější.

Náhodná složitost:

Jak název napovídá, protože se v systému stalo něco jako oprava chyb, oprava, úprava atd. Většinou pracujeme pouze na náhodné složitosti.

Výhody cyklomatické složitosti:

  • Jak jednoduchá logika, pokud se složitost sníží, jsme mnohem pohodlnější pochopit.
  • Pokud je složitější program, pak musí programátor zvýšit možnosti.
  • Cesty počítané ve složitosti ukazují, že program napsaný programem je složitý nebo můžeme pokračovat a snížit složitost.
  • Omezuje to propojení kódu.
  • Předpokládejme, že program má cyklomatickou složitost 5. To znamená, že metodou existuje 5 různých nezávislých cest.
  • To znamená, že pro implementaci tohoto kódu pro testování musí být provedeno 5 testovacích případů.
  • Proto je vždy dobré získat menší číslo pro cyklomatickou složitost.
  • Tento proces je vyžadován, protože je velmi obtížné modifikovat vysoce spojený kód.
  • Čím vyšší je složitost kódu, to znamená, že kód je také složitější.

Nástroje používané pro výpočet cyklické složitosti jsou

  • Cyclo
  • CCCC
  • McCabe IQ
  • GCov
  • Bullseye Pokrytí
  • PMD
  • LC2
  • Nálezy
  • Jarchitect

Závěr

Cyklomatická složitost je měřítkem složitosti programu. Toto opatření nám pomáhá pochopit potřebnou práci a jak složitý bude software. Cyklolomatická složitost je součástí testování White Box.

Doporučené články

Toto byl průvodce cyclomatickou složitostí. Zde diskutujeme, jak vypočítat cyklomatickou složitost? spolu s výhodami a typy složitosti. Další informace naleznete také v následujících článcích -

  1. Úvod do Linuxu
  2. Úvod do C ++
  3. Co je to HTML5?
  4. Co je Hibernace?

Kategorie: