AccueilđŸ‡«đŸ‡·Chercher

MĂ©triques d'Halstead

Les mĂ©triques de complexitĂ© d'Halstead qui procurent une mesure quantitative de complexitĂ© pour des logiciels ont Ă©tĂ© introduites par l’amĂ©ricain Maurice Halstead. Elles sont basĂ©es sur l’interprĂ©tation du code comme une sĂ©quence de marqueurs, classifiĂ©s comme un opĂ©rateur ou un opĂ©rande.

Calcul

Toutes les mĂ©triques d'Halstead sont dĂ©rivĂ©es du nombre d’opĂ©rateurs et d’opĂ©randes :

  • : nombre total des opĂ©rateurs uniques
  • : nombre total des opĂ©rateurs
  • : nombre total des opĂ©randes uniques
  • : nombre total des opĂ©randes

Ces chiffres sont la base pour calculer

  • La Longueur du programme () : .
  • La Taille du vocabulaire () :

On obtient le Volume du Programme () en multipliant la longueur du programme par le logarithme 2 de la taille du vocabulaire :

Le Niveau de difficultĂ© () ou propension d'erreurs du programme est proportionnel au nombre d’opĂ©rateurs uniques () dans le programme et dĂ©pend Ă©galement du nombre total d’opĂ©randes () et du nombre d'opĂ©randes uniques (). Si les mĂȘmes opĂ©randes sont utilisĂ©s plusieurs fois dans le programme, il est plus enclin aux erreurs.

Le Niveau de programme () est l’inverse du Niveau de difficultĂ©. Un programme de bas niveau est plus enclin aux erreurs qu'un programme de haut niveau.

L'Effort à l'implémentation () est proportionnel au volume () et au niveau de difficulté ():

Halstead a découvert que diviser l'effort par 18 donne une approximation pour le Temps pour implémenter () un programme en secondes:

Il est mĂȘme possible d’obtenir le « nombre de bugs fournis » () qui est une estimation du nombre d'erreurs dans le programme. Cette valeur donne une indication pour le nombre d’erreurs qui devraient ĂȘtre trouvĂ©es lors du test de logiciel. Le « nombre de bugs fournis » est calculĂ© selon la formule suivante:

représente l'habileté du développeur. Au regard de son expérience[1], Halstead a fixé cette valeur à 3000 pour un développeur "standard".

Dérivés

Les métriques d'Halstead permettent de calculer l'Indice de maintenabilité d'un projet.

Outils

  • LDRA Testbed, outil de rĂšgles de codage et de qualimĂ©trie pour C, C++, Java et Ada
  • GrammaTech CodeSonar, outil de dĂ©tection de bugs et d'erreurs "RUNTIME" pour C, C++ et Jaba
  • Testwell CMT++ outil de mesure de complexitĂ© pour C et C++
  • Testwell CMTJava outil de mesure de complexitĂ© pour Java
  • PhpMetrics outil de mesure de complexitĂ© pour PHP
  • JsComplexity outil de mesure de complexitĂ© pour JavaScript

Bibliographie

  • Maurice Howard Halstead : Elements of software science. Elsevier, New York u.a. 1977. (ISBN 0-444-00205-7) (Operating and programming systems series; 2).

Lien externe

Références


Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplĂ©mentaires peuvent s’appliquer aux fichiers multimĂ©dias.