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:

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ó:

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

Megjegyzések és hivatkozások

Megjegyzések
  1. Itt a strukturált kifejezés azt jelenti, hogy "egy belépési ponttal és egy kilépési ponttal".
Hivatkozások
  1. McCabe (1976), p. 314.
  2. „  Cyclomatic és NPath komplexitás magyarázata  ” , a Coding Swag oldalon ,2013 május(hozzáférés : 2013. szeptember 10. ) .
  3. (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ó ).
  4. (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ó ).
  5. https://github.com/bbatsov/rubocop
  6. 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;">