IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

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

Qualimétrie Discussion :

NPath Complexity ? [Checkstyle]


Sujet :

Qualimétrie

  1. #1
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2003
    Messages
    1 309
    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 309
    Points : 1 385
    Points
    1 385
    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 ?

  2. #2
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2003
    Messages
    1 309
    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 309
    Points : 1 385
    Points
    1 385
    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.

  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 : 55
    Points
    55
    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 : 46
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Points : 7 275
    Points
    7 275
    Par défaut
    Un autre nom pour cette mesure est la complexité cyclomatique

    http://fr.wikipedia.org/wiki/Nombre_cyclomatique

  5. #5
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2003
    Messages
    1 309
    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 309
    Points : 1 385
    Points
    1 385
    Par défaut
    Merci. Ça confirme que c'est bien le graphe de tous les cas possibles.

  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 309
    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 309
    Points : 1 385
    Points
    1 385
    Par défaut
    Merci pour ces précisions Dereckson.

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

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

    Informations forums :
    Inscription : Février 2009
    Messages : 1 445
    Points : 2 778
    Points
    2 778
    Billets dans le blog
    2
    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, 16h38
  2. Encore une requête complexe sur plusieurs tables
    Par DenPro dans le forum Langage SQL
    Réponses: 5
    Dernier message: 09/12/2003, 20h05
  3. Requête complexe sur plusieurs table
    Par DenPro dans le forum Langage SQL
    Réponses: 13
    Dernier message: 25/11/2003, 18h50
  4. Réponses: 5
    Dernier message: 04/08/2003, 22h50
  5. Réponses: 7
    Dernier message: 07/04/2003, 10h35

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