Cyklomatická složitost

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

Cyklomatická složitost (nebo také podmínková složitost) je číslo vyjadřující složitost programu. Udává minimální počet lineárně nezávislých cest skrz zdrojový kód.

Na daném programu se cyklomatická složitost počítá pomocí grafu toku řízení toho programu: uzly grafu odpovídají neoddělitelným skupinám v programu (například tělu cyklu, podmínky). Orientované hrany odpovídají tomu, v jakém pořadí se skupiny příkazů budou provádět. +more Cyklomatickou složitost lze aplikovat individuálně na dané funkce, moduly, metody nebo třídy.

Jedna strategie pro měření se nazývá testování hlavní cesty. Testují se všechny možné cesty v programu; v tom případě je počet testů roven cyklomatickému číslu programu.

Popis

+more_Pro_výstup_z_cyklu_musí_být_splněna_podmínka. _Dále_se_nachází_IF_podmínka,_která_rozděluje_tok_na_dvě_cesty,_která_se_zpět_zkříží_do_jedné_a_program_končí_modrým_uzlem. _Pro_tento_graf_E_=_9,_N_=_8_a_P_=_1,_takže_cyklomatická_Komplexita'>složitost podle rovnice.

M = E - N + 2P je pro tento program 3.

+more_Pro_tento_graf_máme_alternativní_metodu_pro_výpočet_Komplexita'>složitosti. E = 10, N = 8 a P = 1, takže cyklomatická složitost podle rovnice.

M = E - N + P je pro tento program 3.

Cyklomatické číslo pro určitý úsek kódu je počet nezávislých cest skrz ten úsek. Například pokud neobsahuje žádnou IF podmínku nebo jakýkoliv cyklus (kód lze projít jednou cestou), tak je složitost 1. +more Například když bude kód obsahovat jednu IF podmínku, tak budou dvě možné cesty - jedna když podmínka dopadne jako TRUE a druhá když dopadne jako FALSE.

Pro strukturovaný program se odkazujeme na orientovaný graf, který představuje graf toku řízení pro daný kód. Složitost zjistíme:

M = E - N + 2P

M = cyklomatická složitost

E = počet hran v grafu

N = počet uzlů v grafu

P = počet připojených komponent

Cyklomatická složitost se jinak počítá pro programy s více možnými ukončeními; v tomto případě je rovna:

π - s + 2

Kde π je počet rozhodovacích bodů v programu a s je počet ukončovacích bodů.

Jiné vyjádření se používá, když je ukončovací bod (exit point) spojen zpět na vstupní bod (entry point). V tomto případě tomu grafu říkáme silně souvislý a cyklomatická složitost programu je rovna cyklomatickému číslu grafu. +more Pak je složitost definována jako.

M = E - N + P (stejně jako cyklomatické číslo v teorii grafů) je podrobněji popsána níže.

Cyklomatické číslo v teorii grafů

Cyklomatické číslo grafu je minimální počet hran takový, že po jejich odstranění nebude v grafu žádný cyklus.

Reference

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top