Nombre cyclomatique

Le nombre cyclomatique, la complexité cyclomatique ou la mesure de McCabe est un outil de métrologie logicielle développé par Thomas McCabe en 1976 pour mesurer la complexité d'un programme informatique. Cette mesure reflète le nombre de décisions d'un algorithme en comptabilisant le nombre de « chemins » linéairement indépendants au travers d'un programme représenté sous la forme d'un graphe.

Définition

La complexité cyclomatique d'un programme structuré[note 1] est définie[1] par :

où  :

M = complexité cyclomatique ;
E = le nombre d'arêtes du graphe ;
N = le nombre de nœuds du graphe ;
P = le nombre de composantes connexes du graphe.

Intérêt

Un code simple, au faible nombre cyclomatique, est théoriquement plus facile à lire, à tester et à entretenir[2] :

  • un effort de compréhension plus soutenu doit être effectué durant la lecture d'un code complexe, de façon à retenir et à prendre en compte chaque embranchement ;
  • les tests unitaires doivent tester toutes les possibilités d’embranchement dans la fonction, de façon à suivre chacun des « chemins » ; or, les tests unitaires ont primordialement été conçus pour tester des fonctions en isolation par un cas simple ;
  • de même, la correction d'un bug ou l'amélioration d'une fonction simple sera facilitée par l'absence d'obligation de prise en compte de ces embranchements et possibilités.

Critique

Cependant, le nombre cyclomatique ne fait pas l'unanimité. Ainsi, dès , une étude montre que le nombre cyclomatique ne s'appuie pas sur une base théorique solide et n'est pas adapté au développement logiciel et souligne qu'aucune observation empirique ne vient justifier l'utilité de cette mesure[3].

D'autres possibilités existent pour compléter le nombre cyclomatique, comme la complexité NPath (en anglais, NPath complexity), mesurant le nombre total de possibilités d'emprunter l'ensemble des chemins, là où le nombre cyclomatique se contente d'additionner ces chemins[2],[4].

Outils de mesure de complexité

Il existe plusieurs outils logiciels pour calculer le nombre cyclomatique. Selon les langages de programmation, il y a des outils qui sont open source et d'autres non.

Pour les langages C et C++, pmccabe, GNU Complexity et Frama-C sont open source alors que Testwell CMT++ et PolySpace sont des logiciels commerciaux. Dans le monde de Java nous trouvons Eclipse Metrics et Metrics des plugins open source pour Eclipse. Testwell CMTJava est logiciel commercial.

Notes et références

Notes
  1. Ici, structuré signifie en particulier « avec un seul point d'entrée et un seul point de sortie ».
Références
  1. McCabe (1976), p. 314.
  2. a et b « Cyclomatic and NPath complexity explained », sur Coding Swag, (consulté le ).
  3. (en) M. Shepperd, « A critique of cyclomatic complexity as a software metric », Software Engineering Journal, IET, vol. 3, no 2,‎ , p. 30-36 (ISSN 0268-6961, résumé, lire en ligne).
  4. (en) Brian A. Nejmeh, « NPATH: a measure of execution path complexity and its applications », Communications of the ACM, Association for Computing Machinery, vol. 31, no 2,‎ , p. 188-200 (ISSN 0001-0782, DOI 10.1145/42372.42379, résumé, lire en ligne).
  5. (en) « Rubocop/rubocop : A Ruby static code analyzer and formatter, based on the community Ruby style guide. », sur GitHub (consulté le ).
  6. (en) « Fzipp/gocyclo : Calculate cyclomatic complexities of functions in Go source code. », sur GitHub (consulté le ).

Outils calculant la complexité cyclomatique

Liens externes


Read other articles:

Questa voce o sezione sugli argomenti storia contemporanea e Grecia è ritenuta da controllare. Motivo: varie osservazioni personali senza fonte probabile ricerca originale, in particolare la sezione prodromi, ma non solo Partecipa alla discussione e/o correggi la voce. Segui i suggerimenti del progetto di riferimento. Questa voce o sezione sugli argomenti storia contemporanea e Grecia non cita le fonti necessarie o quelle presenti sono insufficienti. Commento: Molte affermazioni s...

 

 

Overview of the U.S. state The history of New Mexico is based on archaeological evidence, attesting to the varying cultures of humans occupying the area of New Mexico since approximately 9200 BCE, and written records. The earliest peoples had migrated from northern areas of North America after leaving Siberia via the Bering Land Bridge. Artifacts and architecture demonstrate ancient complex cultures in this region. The first written records of the region were made by the Spanish conquistadors...

 

 

Doug WilliamsDoug Williams dalam acara gulat TNA pada tahun 2010Nama lahirDouglas Clayton DurdleLahir1 September 1972 (umur 51)[1]Reading, Berkshire, Inggris[1][2]Karier gulat profesionalNama ringDoug Williams[1]Douglas Williams[3]Tinggi5 ft 11 in (1,80 m)[2]Berat240 pon (110 kg)[2]Asal dariReading, InggrisThe United Kingdom (TNA)Dilatih olehNWA UK Hammerlock[1]Andre Baker[4]Dino Scarlo[4...

Indian lyricist (born 1980) This article may have been created or edited in return for undisclosed payments, a violation of Wikipedia's terms of use. It may require cleanup to comply with Wikipedia's content policies, particularly neutral point of view. (June 2019) This article includes a list of general references, but it lacks sufficient corresponding inline citations. Please help to improve this article by introducing more precise citations. (May 2020) (Learn how and when to remove this te...

 

 

King of the Akkadian Empire Shu-turulKing of AkkadThe name Shu-turul (𒋗𒄙𒄒, shu-tur2-ul3) on the macehead inscription, with transcription in standard Sumero-Akkadian cuneiform.King of the Akkadian EmpireReignc. 2168 BC – 2154 BCPredecessorDuduSuccessorGutian DynastyFatherDudu of Akkad Shu-turul (Shu-durul, 𒋗𒄙𒄒, shu-tur2-ul3)[1][2] (also Šu-Turul) was the last king of the Akkadian Empire, ruling for 15 years according to the Sumerian king list...

 

 

American jazz musician, bandleader and actor (1908–2002) Lionel HamptonBackground informationBirth nameLionel Leo HamptonBorn(1908-04-20)April 20, 1908Louisville, Kentucky, U.S.DiedAugust 31, 2002(2002-08-31) (aged 94)New York City, U.S.GenresSwingbig bandmainstream jazzbluesOccupation(s)MusiciancomposerbandleaderInstrument(s)VibraphonedrumspianopercussionYears active1927–2002LabelsDeccaMusical artist Lionel Leo Hampton (April 20, 1908 – August 31, 2002) was an American jazz vibrap...

Official residence of the Governor of Himachal Pradesh, India This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Raj Bhavan, Shimla – news · newspapers · books · scholar · JSTOR (May 2012) (Learn how and when to remove this message) Raj BhavanGeneral informationCoordinates31°05′20″N 77°10′52″E...

 

 

RincianTanggal28 Maret 2024 (2024-03-28)LetakRute regional R5185 km (3,1 mi) di sebelah barat dari Mamatlakala, LimpopoKoordinat23°58′33″S 28°32′7″E / 23.97583°S 28.53528°E / -23.97583; 28.53528Koordinat: 23°58′33″S 28°32′7″E / 23.97583°S 28.53528°E / -23.97583; 28.53528NegaraAfrika SelatanJenis kecelakaanKeluar jalan dari jembatan menyebabkan kebakaran bus yang dahsyatPenyebabSopir kehilangan kendaliStatis...

 

 

AnuraagSutradaraShakti SamantaProduserShakti SamantaDitulis olehVrajendra GaurSkenarioMadhusudhan KalelkarBinoy ChatterjeeCeritaShakti SamantaPemeranVinod MehraNutanAshok KumarMoushmi ChatterjeePenata musikS. D. BurmanSinematograferAloke Das GuptaPenyuntingBijoy ChoudhuryPerusahaanproduksiShakti FilmsDistributorUnited ProducersTanggal rilisDesember 1972 (1972-12)NegaraIndiaBahasaHindiAnuraag adalah sebuah film Hindi 1972, yang disutradarai oleh Shakti Samanta. Film ini dibintangi o...

This article relies excessively on references to primary sources. Please improve this article by adding secondary or tertiary sources. Find sources: Magnuson-Stevens Act Provisions; National Standard Guidelines – news · newspapers · books · scholar · JSTOR (October 2017) (Learn how and when to remove this message) The Magnuson-Stevens Act Provisions is necessary to help compliance the requirements of the MSA to end and prevent overfishing, rebuild over...

 

 

هذه المقالة تحتاج للمزيد من الوصلات للمقالات الأخرى للمساعدة في ترابط مقالات الموسوعة. فضلًا ساعد في تحسين هذه المقالة بإضافة وصلات إلى المقالات المتعلقة بها الموجودة في النص الحالي. (مارس 2018) محطة سكة حديد متروبوليتانمعلومات عامةالبلد المملكة المتحدة حل محله جهاز نقل ال�...

 

 

Basilika Bunda dari DarahBasilika Minor Bunda dari Darahbahasa Italia: Basilica Santuario della Madonna del SangueBasilika Bunda dari DarahLokasiReNegara ItaliaDenominasiGereja Katolik RomaArsitekturStatusBasilika minorStatus fungsionalAktif Basilika Bunda dari Darah (bahasa Italia: Basilica Santuario della Madonna del Sangue) adalah sebuah gereja basilika minor Katolik yang terletak di Re, Italia. Basilika ini ditetapkan statusnya pada 1958 dan didedikasikan kepada Bunda dari Da...

Hand fans used in warfare in feudal Japan Iron Fan redirects here. For the Journey to the West character, see Princess Iron Fan. Antique Japanese (samurai) Edo period gunsen war fan, made of iron, bamboo and lacquer depicting the sun (1800–1850) on display at the Asian Art Museum in San Francisco, California The Japanese war fan, or tessen (Japanese: 鉄扇,てっせん, romanized: tessen, lit. 'iron fan'), is a Japanese hand fan used as a weapon or for signalling. Severa...

 

 

For other people named John Parker, see John Parker (disambiguation). The restored John P. Parker house in Ripley, Ohio. John P. Parker (c. 1827 – January 30, 1900) was an American abolitionist, inventor, iron moulder and industrialist. Parker, who was African American, helped hundreds of slaves to freedom in the Underground Railroad resistance movement based in Ripley, Ohio. He saved and rescued fugitive slaves for nearly fifteen years. He was one of the few black people to patent an inven...

 

 

Invasi Napoleon ke InggrisBagian dari Perang Koalisi KetigaNapoleon membagikan Légion d'honneur pertamadi perkemahan Boulogne pada 16 Agustus 1804TanggalDirencanakan dari tahun 1803 hingga 1805LokasiSelat Inggris danpesisir Belanda, Prancis dan InggrisHasil DibatalkanPihak terlibat  Prancis Republik Batavia Spanyol Bourbon  Britania RayaTokoh dan pemimpin Napoleon I Eustache Bruix Pierre-Charles Villeneuve Honoré Joseph Antoine Ganteaume George III Robert Calder Cuthbert Coll...

Keuskupan BarahonaDioecesis BarahonensisKatolik LokasiNegara Republik DominikaProvinsi gerejawiProvinsi Santo DomingoStatistikLuas2.892 km2 (1.117 sq mi)Populasi- Total- Katolik(per 2006)357.000191,000 (53.5%)Paroki20InformasiDenominasiKatolik RomaRitusRitus LatinPendirian24 April 1976 (48 tahun lalu)KatedralKatedral Bunda dari RosarioKepemimpinan kiniPausFransiskusUskupAndrés Napoleón Romero Cárdenas[1]EmeritusRafael Leónidas Felipe y Núñ...

 

 

Den här artikeln behöver fler eller bättre källhänvisningar för att kunna verifieras. (2018-07) Åtgärda genom att lägga till pålitliga källor (gärna som fotnoter). Uppgifter utan källhänvisning kan ifrågasättas och tas bort utan att det behöver diskuteras på diskussionssidan. Uppslagsordet ”VD” leder hit. För andra betydelser, se VD (olika betydelser). En verkställande direktör, på svenska vanligen förkortat vd, är den person som ansvarar inför styrelsen...

 

 

Кызылская ТЭЦ Страна  Россия Местоположение Кызыл Собственник Сибирская генерирующая компания Ввод в эксплуатацию 28 ноября 1958 Основные характеристики Электрическая мощность, МВт 17 МВт Тепловая мощность 310 Гкал/ч Характеристики оборудования Основное топливо каменн�...

Supplication to a supernatural being This article is about religious and spiritual invocation. For the term meaning starting computer software, see Execution (computing). For other uses, see Invocation (disambiguation). This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Invocation – news · newspapers · books · schola...

 

 

Swiss ice hockey player (born 1989) Ice hockey player Simon Moser Moser in 2011Born (1989-03-10) March 10, 1989 (age 35)Bern, SwitzerlandHeight 6 ft 2 in (188 cm)Weight 216 lb (98 kg; 15 st 6 lb)Position Left wingShoots LeftNL teamFormer teams SC BernSCL TigersNashville PredatorsNational team   SwitzerlandNHL draft UndraftedPlaying career 2007–present Simon Moser (born March 10, 1989) is a Swiss professional ice hockey player who current...