Qualité du logiciel et métriques
Sur la base de l'article Learning Software Engineering Principles Using Open Source Software 
 qui présente cet enseignement au Canada, nous nous proposons d'aborder l'analyse de code.
Nous travaillerons cependant sur un exemple plus simple, les classes de graphes issues des cours en ligne de Polytechnique  si vos codes ne sont pas en java, sinon directement sur vos codes : src.zip.
Ceux qui le veulent peuvent faire le même exercice mais sur les codes de Junit, dans ce cas se reporter à la fin de ce TD pour le téléchargement des codes.
Question :
 Télécharger les codes sur lesquels nous allons faire de l'analyse de code.
 
 
Parcourir les codes : premier aperçu
Une fois les codes téléchargés et placés dans Eclipse, nous allons utiliser pour l'instant les outils standard pour parcourir ces codes.
 Placez vous dans une perspective “java”: Window → open perspective → Java …
 
 Comprenez les hiérarchies des classes en utilisant la vue dédiée 

 
 
 En utilisant la vue 
package explorer, regarder les classes du package 
grapheX. Est-ce que les noms des classes sont explicites? avez vous une idée de l'intérêt de ces classes? 

 
 
 En utilisant “Outline View”, examiner la classe “Arc”. Le code est-il autodescriptif? Pouvez-vous expliquer son intérêt sans trop de difficulté?
 
 En utilisant “Outline View”, examiner les méthodes non-triviales de la classe Graphe. Le code est-il autodescriptif? Pouvez-vous expliquer son intérêt sans trop de difficulté?
 
 Retrouver les méthodes qui appelent la méthode 
voisins de la classe 
Graphe 
 
 
  Faîtes la même chose à partir de la classe Graphe pour visualiser tous les appels à son constructeur.
 
 
Métriques : utilisation du plugin Metrics de Eclipse
 Placez vous dans une perspective java
 
- 
 
 Clique droit sur le projet, puis Properties → Metrics → utiliser les métriques (cf. Figure EnableMetrics) → Apply 

 
 
 Si l'affichage ne se fait pas, vous devez faire un clean du projet (Projet→ clean/Build).
 
 Vous pouvez double-cliquer sur les métriques pour les voir en détail en particulier pour visualiser les valeurs maximales. Les éléments enfants à chaque niveau sont triés par ordre décroissant métrique (maximum ).
 
 Etudiez les valeurs des métriques obtenues. 
 
 Les valeurs seuils ne sont pour la plupart pas définies. Pour les définir, aller dans le menu 
Preference de 
Eclipse puis sous 
Metric, configurer les valeurs seuils à votre convenance et regarder à nouveau les codes.
 (En savoir plus) 
 
 
 Regardez vos codes avec cet outil.
 
 
Conventions de codage et de style : Utilisation du plugin CheckStyle
Notre objectif dans cette partie est de comprendre
Questions
 Activer CheckStyle dans le projet 

 
 
 Afficher la vue “Checkstyle Violation” et étudier quelques unes des “violations” relevées par exemple les import *, les variables publiques, le nom des variables, … 

 
 
 Et dans vos codes quelles erreurs de style détectez-vous?
 
 Configurer les règles pour votre projet
 Dans Eclipse → preference → CheckStyle
 
 Vous visualisez alors les règles par défaut de tous les projets. Prenez le temps de les regarder et d'en comprendre certaines. 

 
 
 Nous allons définir nos propres règles, donc nous commençons par définir votre propre configuration : sélection du projet → properties, puis checkstyle 

 
 
 Sélectionner Local Check Configuration → New 

 
 
 Sélectionner la configuration puis faire configure
 
 Visualisez alors les règles rangées par catégorie.
 
 Choisissez à présent les règles que vous voulez vérifier dans votre projet.
 la duplication de code
 
 le nommage des variables
 
 le nommage des packages, mais vous le modifiez pour forcer le nom des packages à se terminer par “pk”par exemple. 

 
 
 
 Effacer les violations précédentes (projet → checkstyle → clear checkstyle violation. 

 Si cela ne fonctionne pas, désélectionner “use simple configuration” puis 
Add 
  
 
 
 Visualiser les erreurs sur un graphique
 Sélectionner juste à côté de la vue Checkstyle la visualisation graphique (les 4 couleurs) 
 
 
 
 
 Prenez le temps d'étudier vos codes de TD, projet méthodologie ou tutoré.
 
 
PMD
Pourquoi cet outil ?
On peut en effet se poser la question car il existe beaucoup d'outils similaires. 
Le choix fait CETTE année dans le cadre de CE module est motivé par :
 Il est reconnu et utilisé par beaucoup de projets Java, et ceci en particulier dans les entreprises qui emploient les étudiants de licence professionnelle;
 
 Il est simple d'utilisation et se présente comme un plugin pour Eclipse, or nous visons dans le cadre de cet enseignement à minimiser les environnements de programmation.
 
 “Il couvre un large spectre, en termes de contrôle (de la convention de nommage au calcul de complexité cyclomatique) et il fournit, en standard, près de 300 règles « prêtes à l'emploi » ”
 
En savoir plus sur le choix : (cf. http://connect.ed-diamond.com/GNU-Linux-Magazine/GLMF-105/Verifier-votre-code-Java-avec-PMD)
 
Exécuter PMD
Questions :
 Sélectionner le projet → propriétés → PMD → activer PMD 
 
 Clique droit sur le projet puis PMD vérifier le projet 

 
 
 Pour mieux voir les erreurs, ouvrir une nouvelle vue PMD 

 
 
 Etudier les erreurs relevées Pour comprendre les erreurs pensez à cliquer sur l'erreur et visualiser la règle 

 
 
 Rechercher les codes dupliqués et étudier les duplications… et sur vos propres codes. 

 
 
 Générer le rapport PMD 

 
 
 Etudier les erreurs relevées dans vos propres codes. 
 
 
1- Sélectionner eclipse → Preferences → PMD
2- Visualiser les règles associées au nommage.