Bevezetés a ciklikus komplexitásba

A ciklomatikus komplexitást Thomas J. McCabe fejlesztette ki 1976-ban. Azt javasolta, hogy a programozók számolják meg azon modulok bonyolultságát, amelyeken dolgoznak, és ossza meg őket kisebb modulokra úgy, hogy minden olyan esetben, amikor a modul ciklomatikus komplexitása meghaladja a 10, 10-et, a maximális ciklomatikus komplexitás egy programban. Ez a forráskód komplexitásának mérése, amely számos kódolási hibához kapcsolódik. Meghatározza a független útvonalakat, ami nagyon hasznos lenne a fejlesztők és a tesztelők számára.

Ez elősegíti a szoftver tesztelését, és nagyobb bizalmat ad nekünk, hogy programunk minden szempontját teszteltük. Ez javítja a kód minőségét, és elősegíti a láthatatlan utakra való koncentrálást, ha van ilyen. Általában úgy számítottuk ki, hogy kidolgozunk egy olyan vezérlőáramlási gráfot, amely egy programon keresztül méri a lineárisan független utak számát a kóddarab komplexitásának pontos mérésére. Ez elősegíti a szoftver minőségének javítását.

Meghatározás

A kód ciklomatikus összetettsége a lineárisan független utak számát számítja ki.

Hogyan lehet kiszámítani a ciklikus komplexitást?

A program ciklusos komplexitásának kiszámítása nagyon egyszerű a következő képlet alapján.

Ciklikus komplexitás = E - N + 2P

  • E => A nem a grafikon szélei
  • N => A gráf csomópontjainak száma
  • P => A csatlakoztatott elemek száma

Van egy alternatív képlet, ha figyelembe vesszük a belépési pontot támogató kilépési pontot. És úgy fogod létrehozni, mint egy ciklust.

Ciklikus komplexitás = E - N + P

Ciklikus komplexitás = E - N + 1

Van még egy módja ennek kiszámításához. Ez egy könnyebb módszer.

  1. Rajzolj grafikonot
  2. Ezután csatlakoztassa a kilépési pontot a belépési ponthoz
  3. És akkor számoljon lyukakat a grafikonon

Nézze meg a következő ábrát:

Az alábbiakban néhány folyamatábra-megjegyzés található:

If-then-else:

Míg:

Csinálni, miközben:

for:

Ha a programnak nincs hurka, akkor a bonyolultsága alacsonyabb. Ha a program bármilyen hurkot észlel, akkor a bonyolultság növekszik.

Tegyük fel, hogy van egy, ha a feltétel definiálva van, így bonyolultsága 2-es. Mivel a feltételnek két feltétele van, igaz és hamis.

Ezt a technikát leginkább a fehér doboz alapvető tesztelésére használják. A ciklomatikus komplexitás minimális számot jelent. a kód minden útjának végrehajtásához szükséges tesztek száma.

A különböző nyelvek különböző eszközökkel rendelkeznek a program ciklomatikus összetettségének mérésére.

A ciklomatikus komplexitás kiszámításának lépései a következők

  1. Rajzolja meg a folyamatábrát vagy grafikondiagramot a kódból.
  2. Most, a második lépésben ellenőrizze és azonosítsa, hány független útvonalon van.
  3. Ezután a következő képlet alapján számoljuk ki a ciklomatikus komplexitást:

M = E – N + 2P

  1. Az intézkedés megtervezése szerint a teszt esetek.

Most felmerülhet egy kérdés, hogy hogyan lehet valóban kiszámítani. Menjünk tovább és megértsük, hogyan fogjuk valóban kiszámítani.

Vegyük figyelembe a következő Java-kód példát:

Ez a program a fibonacii sorozatot úgy számítja ki:

0 + 1 = 1

1 + 1 = 2

2 + 1 = 3

3 + 2 = 5

5 + 3 = 8

8 + 5 = 13

// A következő program célja a fibonacii sorozat kinyomtatása

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:

A fibonacii sorozat: 0

1

1

2

3

5

8

13

Mutasson közelebbről a fenti programot. Megtalál egy hurkot. Ez a program csak egy hurkot tartalmaz.

Itt az ideje, hogy rajzoljunk egy grafikont.

Az ellenőrzési folyamatábra az alábbiak szerint

folyamatábra

Most, a fenti program összetettségének kiszámításához először ki kell számítanunk a teljes számot. szélek:

Összesen élek száma: 6

Most számolja ki a csomópontok összes számát.

Csomópontok száma összesen: 5

Képlet: M = EN + 2p

M = 6-5 + 2

M = 1 + 2

M = 3

Tehát ennek a programnak a ciklomatikus összetettsége 3.

A komplex kódokat nehéz fenntartani, frissíteni vagy módosítani. Mint mindannyian tudjuk, hogy a ciklomatikus komplexitás nem haladhatja meg a 10-et.

A komplexitás típusai

A bonyolultságnak két típusa van:

Alapvető komplexitás :

Ez a komplexitás egy olyan típusú kód, amelyet nem hagyhatunk figyelmen kívül.

Volt. A repülésirányítási rendszer összetettebb.

Véletlen komplexitás:

Ahogy a neve is sugallja, mert valami történt, például hibajavítás, javítás, módosítás stb. A rendszerben. Leginkább csak a véletlen komplexitáson dolgozunk.

A ciklomatikus komplexitás előnyei:

  • Egyszerű logikaként, ha a bonyolultság csökken, könnyebben érthetők meg.
  • Ha ott van a bonyolultabb program, akkor a programozónak meg kell cha = eck-re növelnie a lehetőségeket.
  • A bonyolultságban számolt utak azt mutatják, hogy egy program által írt program összetett, vagyis továbbléphetünk és csökkenthetjük a bonyolultságot.
  • Csökkenti a kód kapcsolását.
  • Tegyük fel, hogy egy program ciklikusan összetett 5-ös. Ez azt jelenti, hogy a módszer 5 különböző független útvonalat tartalmaz.
  • Ez azt jelenti, hogy 5 teszt esetet kell végrehajtani ennek a kódnak a teszteléséhez.
  • Ezért mindig jó, ha kevesebb számot kap a ciklomatikus komplexitás szempontjából.
  • Erre a folyamatra van szükség, mivel a nagymértékben csatolt kódot nagyon nehéz módosítani.
  • Minél nagyobb a bonyolultsága a kódot jelentő kódnak, annál összetettebb is.

A ciklikus komplexitás kiszámításához használt eszközök:

  • Cyclo
  • CCCC
  • McCabe IQ
  • GCov
  • Bullseye lefedettség
  • PMD
  • LC2
  • Findbugs
  • Jarchitect

Következtetés

A ciklikus komplexitás a program összetettségének mértéke. Ez az intézkedés segít megérteni a szükséges munkát és azt, hogy a szoftver milyen összetett lesz. A ciklomatikus komplexitás a White Box Testing része.

Ajánlott cikkek

Ez egy útmutató a ciklomatikus komplexitáshoz. Itt tárgyaljuk, hogyan lehet kiszámítani a ciklikus komplexitást? valamint az előnyök és a komplexitás típusai mellett. A következő cikkeket is megnézheti további információkért -

  1. Bevezetés a Linuxba
  2. Bevezetés a C ++ -ba
  3. Mi a HTML5?
  4. Mi a hibernált?

Kategória: