Exercice 2 : l'outil PMD (plug-in pour Eclipse)

But de l'exercice

Le but de cet exercice est de vous familiariser avec :

Notes :

Vérifier l'installation du plug-in PMD pour Eclipse

Activer les règles PMD pour LOG120

PMD permet de contrôler le code source, selon un ensemble de règles personnalisables, pour les fautes de style dans la programmation. Pour le cadre du cours LOG120, nous allons activer deux ensemble de règles que supporte l'outil PMD.

  1. Dans Eclipse, ouvrir les préférences pour PMD (Window -> Preferences -> PMD -> Rules configuration)
    1. Cliquer sur le bouton "Clear all" pour effacer les règles par défaut.
    2. Vérifier que la liste de règles (Rules) est vide.
    3. Cliquer sur le bouton "Import rule set..." et ensuite sur la liste déroulante (▼) des ensembles de règles ("rule sets").
      Preferences PMD import rule set
    4. Avec le bouton "Import rule set..." et en choisissant l'ensemble de règles dans la liste, importer les ensembles de règles suivants :
    5. Cliquer sur "OK" pour fermer la fenêtre des préférences.
    6. Répondre "Yes" à la question suivante :
      Do a full rebuild?

Activer les règles PMD pour un projet

  1. Cliquer à droite sur un projet Eclipse et choisir les propriétés (Properties) pour le projet.
  2. Cliquer sur l'élément "PMD" dans la liste à gauche.
  3. Cocher "Enable PMD".
    Propriétés d'un projet
  4. Cocher chaque règle (ça prendra du temps !) pour l'activer dans PMD.
  5. Cliquer sur "OK" et accepter la proposition de "Rebuild" pour le projet.

Créer une classe dans un fichier source Java

  1. Dans le projet où PMD est activé, sélectionner le menu "File -> New -> Class"
  2. Dans la fenêtre qui s'ouvre, entrer le nom de la classe bidon dans le champ "Name" (attention - tout est en minuscule ici, car on fait exprès de ne pas respecter la norme des noms de classes).
  3. Cliquer sur le bouton "Finish".
  4. Modifier le fichier texte pour qu'il ressemble au texte suivant :

    Il s'agit d'un exemple avec plusieurs fautes au niveau du style de codage. Normalement, ces fautes ne seront pas détectées par un compilateur Java. Par contre, l'outil PMD va appliquer les règles configurées et identifier les problèmes.
  5. Sauvegarder le fichier avec le menu "File -> Save bidon.java".

Contrôler le code source avec PMD

  1. Cliquer à droite sur le fichier "bidon.java" dans la fenêtre "Package Explorer" et choisir l'article du menu "PMD -> Check Code With PMD":
    PMD -> Check Code With PMD
  2. Eclipse montrera les erreurs et avertissements dans la fenêtre "Tasks" normalement en bas de l'écran:
    Tasks (erreurs et avertissements PMD)
  3. En cliquant sur chaque tâche, on peut naviguer dans le fichier source pour voir l'erreur en détail.

Corriger les erreurs de style avec le "Refactoring" d'Eclipse

Dans cet exemple, tous les problèmes sont les problèmes de noms (de variable, de classe, de méthode). Lorsqu'il s'agit des erreurs de style de codage, on voudrait les corriger sans changer la fonctionnalité du code. Faire des changements "à la main", l'un après l'autre, est risqué, surtout lorsqu'il s'agit d'un code compliqué. Le nom de variable que l'on change est sûrement utilisé à plusieurs endroits dans le code. Faire remplacer le nom partout avec une fonction de "rechercher et remplacer" est aussi problématique, car le texte pour la variable i, par exemple, peut apparaître à plusieurs endroits, non seulement pour la variable i.

En génie logiciel, ce processus d'amélioration de code source s'appelle le réusinage (ou remaniement, ou "Refactoring" en anglais). Voici la définition de réusinage de granddictionnaire.com :

réusinage n. m. : Opération qui consiste à retravailler le code source, non pas pour ajouter une fonctionnalité supplémentaire au logiciel, mais pour améliorer sa lisibilité et simplifier sa maintenance.

La solution à ce problème de nom indiqué par PMD se trouve dans les fonctionnalités de "Refactoring" d'Eclipse. L'une des fonctionnalités ("Rename") permet de renommer une variable (ou une classe, une méthode) partout dans le code source, y compris dans d'autres fichiers sources qui y font référence. Voici comment procéder pour changer le nom du variable "i" à quelque chose de plus lisible :

  1. Positionner le curseur juste avant la variable i à la ligne 3.
  2. Cliquer à droite et choisir l'article du menu "Refactor -> Rename..."
  3. Spécifier un meilleur nom pour la variable i, par exemple nombreÉléments (ça devrait refléter le vrai sens de cette variable, mais cet exemple est très simple et les détails ne seront pas expliqués) :
  4. Vérifier que toutes les références à la variable i ont été renommées, y comprise celle à la ligne 9.
  5. Répéter ce processus pour toutes les erreurs de style concernant les noms identifiées par PMD.

Note : Les chargés de laboratoire évalueront votre code source pour les laboratoires sur un critère de style de programmation. Vous perdrez un pourcentage de points important sur votre solution, si PMD indique des erreurs de style. C'est à dire que les chargés utiliseront PMD sur votre code source pour trouver des fautes de style !

Résumé

Dans cet exercice, vous avez utilisé les outils suivants :

Félicitations ! Maintenant vous connaissez encore mieux l'environnement de travail pour le cours LOG120, et vous êtes prêt à vous attaquer au prochain laboratoire.

Error processing SSI file