Pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter, inscrivez-vous gratuitement !

 

Discussion: NPath Complexity ? [Checkstyle]

  1. #1
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    avril 2003
    Messages
    1 236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : avril 2003
    Messages : 1 236
    Points : 1 344
    Points
    1 344

    Par défaut NPath Complexity ?

    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 ?
    Christophe

    Pensez à mettre quand c'est le cas.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    avril 2003
    Messages
    1 236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : avril 2003
    Messages : 1 236
    Points : 1 344
    Points
    1 344

    Par défaut

    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.
    Christophe

    Pensez à mettre quand c'est le cas.

  3. #3
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    avril 2012
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : avril 2012
    Messages : 35
    Points : 52
    Points
    52

    Par défaut

    The NPATH metric computes the number of possible execution paths through a function

  4. #4
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : juillet 2005
    Messages : 3 790
    Points : 7 689
    Points
    7 689

    Par défaut

    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

  5. #5
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    avril 2003
    Messages
    1 236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : avril 2003
    Messages : 1 236
    Points : 1 344
    Points
    1 344

    Par défaut

    Merci. Ça confirme que c'est bien le graphe de tous les cas possibles.
    Christophe

    Pensez à mettre quand c'est le cas.

  6. #6
    Candidat au Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    septembre 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : septembre 2013
    Messages : 1
    Points : 4
    Points
    4

    Par défaut Nombre ou complexité cyclomatique et complexité NPath

    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.

  7. #7
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    avril 2003
    Messages
    1 236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : avril 2003
    Messages : 1 236
    Points : 1 344
    Points
    1 344

    Par défaut

    Merci pour ces précisions Dereckson.
    Christophe

    Pensez à mettre quand c'est le cas.

  8. #8
    Rédacteur
    Avatar de Viduc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    février 2009
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : février 2009
    Messages : 1 427
    Points : 2 750
    Points
    2 750

    Par défaut

    Bonjour

    Je me permets de rouvrir cette discussion car j'ai un petit souci lié à ce Npath. Je suis en train de mettre nos codes sous jenkins et j'utilise donc diférents outils comme PMD.

    Jusque là je voyais bien le cyclomatique, je viens de découvrir le Npath, j'ai une méthode qui ressort du rapport. Cette méthode est un beforeFilter d'un controller AppController d'un projet cake.

    En lisant les infos sur ce calcul je vois bien la logique mais je ne comprenais pas pourquoi j'obtenais une grosse valeur (1152) alors que je n'avais que quelques instructions, pas de boucle ni autre... Jai fini par commenter toute ma fonction (donc en ne laissant que la signature) et repasser dans la moulinette... et toujours le même score!!! du coup je me pose la question: est ce que ce calcul ne tient pas compte également des classes qui héritent ?

    Merci d'avance à ceux qui auront des suggestions ou idée ...

    Pour info le projet est sous cakephp 3

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [langage] structures complexes et affichage
    Par mat21 dans le forum Langage
    Réponses: 5
    Dernier message: 18/02/2004, 15h38
  2. Encore une requête complexe sur plusieurs tables
    Par DenPro dans le forum Langage SQL
    Réponses: 5
    Dernier message: 09/12/2003, 19h05
  3. Requête complexe sur plusieurs table
    Par DenPro dans le forum Langage SQL
    Réponses: 13
    Dernier message: 25/11/2003, 17h50
  4. Réponses: 5
    Dernier message: 04/08/2003, 21h50
  5. Réponses: 7
    Dernier message: 07/04/2003, 09h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo