Ciklikus szám
A ciklikus szám , a ciklomatikus bonyolultság vagy a McCabe egy olyan metrológiai szoftver, amelyet Thomas McCabe fejlesztett ki 1976-ban egy számítógépes program összetettségének mérésére . Ez a mérték az algoritmus döntéseinek számát tükrözi, egy grafikon formájában ábrázolt programon keresztül megszámolva a lineárisan független "utak" számát .
Meghatározás
A strukturált program ciklikus komplexitását a következők határozzák meg:
M=E-NEM+2P{\ displaystyle M = E-N + 2P}vagy:
M = ciklikus komplexitás;
E = a grafikon éleinek száma;
N = a grafikon csomópontjainak száma;
P = a grafikon
összekapcsolt összetevőinek száma .
Érdeklődés
Alacsony ciklikus számú egyszerű kód elvileg könnyebben olvasható, tesztelhető és karbantartható:
- tartósabb megértési erőfeszítéseket kell tenni egy összetett kód olvasása során az egyes ágak megtartása és figyelembe vétele érdekében;
- az egységvizsgálatoknak meg kell vizsgálniuk a funkció minden lehetséges elágazását az egyes "utak" követése érdekében; az egységteszteket azonban elsősorban arra tervezték, hogy egyszerű funkcióval külön-külön teszteljék a funkciókat;
- Hasonlóképpen a hiba javítását vagy egy egyszerű funkció javítását megkönnyíti az ezen ágak és lehetőségek figyelembevételére vonatkozó kötelezettség hiánya.
Kritikai
A ciklomatikus szám azonban nem egyhangú. Tehát1988. március, egy tanulmány azt mutatja, hogy a ciklomatikus szám nem szilárd elméleti alapokon nyugszik, és nem alkalmas szoftverfejlesztésre, és hangsúlyozza, hogy egyetlen empirikus megfigyelés sem igazolja ennek az intézkedésnek a hasznosságát.
Egyéb lehetőségek léteznek befejezni a cyclomatic számot, mint a komplexitás NPATH (angol, NPATH komplexitás ) mérése az összes lehetőséget, hogy kölcsön a készlet ösvényeken, ahol a cyclomatic szám tartalmat adni ezeket az útvonalakat.
Komplexitásmérő eszközök
|
- Kereskedelmi szoftver
- A C és C ++
- Mert java
- Többnyelvű
- Mert C # (Visual Studio plugin)
|
Megjegyzések és hivatkozások
Megjegyzések
-
Itt a strukturált kifejezés azt jelenti, hogy "egy belépési ponttal és egy kilépési ponttal".
Hivatkozások
-
McCabe (1976), p. 314.
-
„ Cyclomatic és NPath komplexitás magyarázata ” , a Coding Swag oldalon ,2013 május(hozzáférés : 2013. szeptember 10. ) .
-
(in) Mr. Shepperd , " felülvizsgálata A ciklomatikus komplexitás a software-as-a mutató " , Software Engineering Journal , EIT repülést. 3, n o 21 st január 88, P. 30-36 ( ISSN 0268-6961 , összefoglaló , online olvasható ).
-
(in) Brian A. Nejmeh , " NPATH intézkedés végrehajtási útvonal bonyolultsága és alkalmazásai " , Communications of the ACM , az Association for Computing Machinery, vol. 31, n o 21 st február 1988, P. 188-200 ( ISSN 0001-0782 , DOI 10.1145 / 42372.42379 , összefoglaló , online olvasható ).
-
https://github.com/bbatsov/rubocop
-
https://github.com/fzipp/gocyclo
Eszközök a ciklomatikus komplexitás kiszámításához
Külső linkek
<img src="https://fr.wikipedia.org/wiki/Special:CentralAutoLogin/start?type=1x1" alt="" title="" width="1" height="1" style="border: none; position: absolute;">