Syklomaattinen numero

Syklomaattisen numero , The syklomaattinen monimutkaisuuden tai laajuudesta McCabe on työkalu metrologian kehittämä ohjelmisto Thomas McCabe vuonna 1976 mittaamaan monimutkaisuus tietokoneohjelman . Tämä mitta heijastaa algoritmin päätösten lukumäärää laskemalla lineaarisesti riippumattomien "polkujen" lukumäärä graafin muodossa esitetyn ohjelman kautta .

Määritelmä

Strukturoidun ohjelman syklomaattinen monimutkaisuus määritellään seuraavasti:

tai:

M = syklomaattinen monimutkaisuus; E = kuvaajan reunojen lukumäärä; N = kaavion solmujen määrä; P = kaavion liitettyjen komponenttien määrä.

Kiinnostuksen kohde

Yksinkertaista koodia, jolla on pieni syklomaattinen luku, on teoriassa helpompi lukea, testata ja ylläpitää:

Kriittinen

Syklomaattinen luku ei kuitenkaan ole yksimielinen. Joten, alkaenMaaliskuu 1988Tutkimus osoittaa, että syklomaattinen luku ei perustu vankkaan teoreettiseen perustaan ​​eikä sovellu ohjelmistokehitykseen, ja korostaa, että mikään empiirinen havainto ei oikeuta tämän toimenpiteen hyödyllisyyttä.

Syklomaattisen luvun täydentämiseksi on olemassa muita mahdollisuuksia, kuten monimutkaisuus NPATH (englanniksi, NPATH complexity ), mitaten mahdollisuuksien kokonaismäärä lainata joukko polkuja, joissa syklomaattinen numero on tyytyväinen näiden polkujen lisäämiseen.

Monimutkaisuuden mittaustyökalut

Huomautuksia ja viitteitä

Huomautuksia
  1. Tässä strukturoidulla tarkoitetaan erityisesti "yhdellä sisäänkäynti- ja yhdellä poistumispisteellä".
Viitteet
  1. McCabe (1976), s. 314.
  2. "  Syklomaattinen ja NPath-monimutkaisuus selitetty  " , julkaisussa Coding Swag ,Toukokuu 2013(käytetty 10. syyskuuta 2013 ) .
  3. (in) Mr. Shepperd , "  Review syklomaattinen monimutkaisuus software-as-metrinen  " , Software Engineering Journal , EIT lennon.  3, n o  21. st tammikuu 88, s.  30-36 ( ISSN  0268-6961 , yhteenveto , lue verkossa ).
  4. (in) Brian A. Nejmeh , "  NPATH mitta polkuun monimutkaisuus ja sen sovellukset  " , Communications ACM , Association for Computing Machinery, voi.  31, n °  21 kpl helmikuu 1988, s.  188-200 ( ISSN  0001-0782 , DOI  10.1145 / 42372.42379 , yhteenveto , lue verkossa ).
  5. https://github.com/bbatsov/rubocop
  6. https://github.com/fzipp/gocyclo

Työkalut laskettaessa syklomaattinen monimutkaisuus

Ulkoiset linkit

<img src="https://fr.wikipedia.org/wiki/Special:CentralAutoLogin/start?type=1x1" alt="" title="" width="1" height="1" style="border: none; position: absolute;">