Je n'arrive pas à comprendre ce qu'est l'indicateur "NPath Complexity".
Les quelques explication (en anglais) que j'ai trouvées ne m'ont pas aidées. Quelqu'un aurait une définition compréhensible (en français), voir un exemple ?
Je n'arrive pas à comprendre ce qu'est l'indicateur "NPath Complexity".
Les quelques explication (en anglais) que j'ai trouvées ne m'ont pas aidées. Quelqu'un aurait une définition compréhensible (en français), voir un exemple ?
En le testant sur du code, j'en conclu que, généralement, cette règle n’est pas respectée quand il y a plusieurs « if » les uns à la suite des autres (4 ou 5 peuvent suffire). Ca doit représenter l'arbre des "possibilités" d'une méthode.
The NPATH metric computes the number of possible execution paths through a function
Un autre nom pour cette mesure est la complexité cyclomatique
http://fr.wikipedia.org/wiki/Nombre_cyclomatique
Nous sommes tous semblables, alors acceptons nos différences !
--------------------------------------------------------------
Liens : Blog | Page DVP | Twitter
Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
Critiques : Apache Maven
Merci. Ça confirme que c'est bien le graphe de tous les cas possibles.
Bonjour,
L'article de la Wikipédia francophone nombre cyclomatique correspond à la cyclomatic complexity (et non à la NPath complexity, pour lequel il n'y a pas d'article).
Je vous recommande la lecture de http://www.codingswag.com/2013/05/cy...ity-explained/ qui illustre par deux exemples de code la complexité NPath et la complexité cyclomatique.
La complexité cyclomatique compte le nombre de chemins, en additionnant chaque boucle if/while/switch/etc.
Visuellement, sur le graphe présenté en bas de cet article, la complexité cyclomatique correspond au nombre de lignes du graphe (celles traversant le schéma de haut en bas).
La complexité NPath tente de répondre à la question « combien y-a-t-il de possibilités de chemins différents ? », en parcourant le code et en multipliant par le nombre de possibilités à l'entrée de chaque boucle (par exemple *2 pour un if, *7 pour un switch de 6 cas et un cas par défaut).
Une succession de 5 boucles if aura une complexité cyclomatique de 6 (1 pour la fonction + 5 * 1 pour chaque if), mais une complexité NPath de 32 (2^5, il y a à 5 reprises 2 possibilités).
En résumé, la complexité cyclomatique compte le nombre de chemins sur la route, la complexité NPath le nombre total de possibilités pour arriver du début à la fin de la route en empruntant ces chemins.
Contexte : je procédais justement à une amélioration de l'article Wikipédia ci-dessus, et recherchais s'il existait en français une traduction utilisée de NPath complexity. C'est durant cette recherche que j'ai découvert ce fil de discussion, et me suis inscrit sur le forum en vue de rectifier l'erreur.
Merci de m'avoir donné l'opportunité de réfléchir plus en avant sur la question de la différence ces deux mesures.
Partager