vad menas med "Cyklomatisk Komplexitet" (cyclomatic complexity)

Permalänk
Medlem

vad menas med "Cyklomatisk Komplexitet" (cyclomatic complexity)

jag behöver veta vad det är, lätt förklarat ungefär så att jag kan relatera det i en text utifrån en testning.

ordet finns här:
http://sv.wikipedia.org/wiki/Komplexitet_%28ber%C3%A4kningsve...

och här:
http://en.wikipedia.org/wiki/Cyclomatic_complexity <--- läser igenom den as i post.

men någon kanske kan förklara enkelt vad det handlar om?

Visa signatur

Censorship is for the weak
----------------------------------
i5 6600K @ 4.7 | MSI GeForce GTX 980 Ti 6GB Gaming | ASUS Z170 PRO GAMING | 16GB 2400mhz | 850 EVO 250GB SSD | 2+1+1TB HDD | NH-U12P SE2 | Define S | XL2411Z 144Hz |

Permalänk
Medlem

Förenklat kan man säga att det i kodsammanhang handlar om hur många olika vägar (eller resultat) en modul/funktion/kodsnutt körs igenom.

Den här gamla halvtrasiga länken har ett exempel som jag tycker fungerar bra: http://onjava.com/onjava/2004/06/16/ccunittest.html

public int getValue(int param1) { int value = 0; if (param1 == 0) { value = 4; } else { value = 0; } return value; }

Den där metoden har 3 i komplexitet eftersom den har två beslutspunkter (1+2).

Denna modifierade variant har därför 4.

public int getValue(int param1) { int value = 0; if (param1 < 0) { value = -1; } else if (param1 > 0) { value = 666; } else { value = 0; } return value; }

Begreppet i sig används för att analysera hur komplex en modul är. Ju högre komplexitet desto mer är det man måste förstå när man tittar på en modul.

Förenklad beskrivning som sagt

//C

EDIT: Ändrade till 'else if'

Permalänk
Medlem

nice! tack så mycket! förstår bättre nu

er kan man lita på ^^

Visa signatur

Censorship is for the weak
----------------------------------
i5 6600K @ 4.7 | MSI GeForce GTX 980 Ti 6GB Gaming | ASUS Z170 PRO GAMING | 16GB 2400mhz | 850 EVO 250GB SSD | 2+1+1TB HDD | NH-U12P SE2 | Define S | XL2411Z 144Hz |