User Tools

Site Tools


2014_2015:s3:concprogobjet:td:reverse-engineering

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
2014_2015:s3:concprogobjet:td:reverse-engineering [2014/11/22 17:27]
blay [Conventions de codage et de style : Utilisation du plugin CheckStyle]
2014_2015:s3:concprogobjet:td:reverse-engineering [2014/11/22 18:43]
blay [Découverte de l'outil sur le code de JUNIT]
Line 120: Line 120:
       - 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 {{ :​2014_2015:​s3:​concprogobjet:​td:​checkstyleconfigprojet.png?​direct&​300 |}}       - 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 {{ :​2014_2015:​s3:​concprogobjet:​td:​checkstyleconfigprojet.png?​direct&​300 |}}
       - Sélectionner Local Check Configuration -> New {{ :​2014_2015:​s3:​concprogobjet:​td:​checkstylenewconfig.png?​direct&​300 |}}       - Sélectionner Local Check Configuration -> New {{ :​2014_2015:​s3:​concprogobjet:​td:​checkstylenewconfig.png?​direct&​300 |}}
-      - sélectionner ​la configuration puis faire configure +      - Sélectionner ​la configuration puis faire configure 
-      - Vous choisissez ​à présent les règles que vous voulez vérifier dans votre projet.+      - 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           * la duplication de code
           * le nommage des variables           * le nommage des variables
           * le nommage des packages, mais vous le modifiez pour forcer le nom des packages à se terminer par "​pk"​par exemple. {{ :​2014_2015:​s3:​concprogobjet:​td:​checkstyleconfpackage.png?​direct&​300 |}}           * le nommage des packages, mais vous le modifiez pour forcer le nom des packages à se terminer par "​pk"​par exemple. {{ :​2014_2015:​s3:​concprogobjet:​td:​checkstyleconfpackage.png?​direct&​300 |}}
-       - Effacer les violations précédentes (projet -> checkstyle -> clear checkstyle violation. {{ :​2014_2015:​s3:​concprogobjet:​td:​checkstyleclearviolation.png?​direct&​300 |}} Si cela ne fonctionne pas, désélectionner "use simple configuration"​ puis ''​Add''​ +       - Effacer les violations précédentes (projet -> checkstyle -> clear checkstyle violation. {{ :​2014_2015:​s3:​concprogobjet:​td:​checkstyleclearviolation.png?​direct&​300 |}} Si cela ne fonctionne pas, désélectionner "use simple configuration"​ puis ''​Add''​ {{ :​2014_2015:​s3:​concprogobjet:​td:​checkstylecreerconfiguration.png?​direct&​300 |}} 
-{{ :​2014_2015:​s3:​concprogobjet:​td:​checkstylecreerconfiguration.png?​direct&​300 |}} Vous visualisez alors les règles rangées par catégorie.+
   - Visualiser les erreurs sur un graphique   - Visualiser les erreurs sur un graphique
        - Sélectionner juste à côté de la vue Checkstyle la visualisation graphique (les 4 couleurs) {{ :​2014_2015:​s3:​concprogobjet:​td:​checkstyleboutongraphique.png?​direct&​300 |}} {{ :​2014_2015:​s3:​concprogobjet:​td:​checkstylegraphiquevue.png?​direct&​300 |}}        - Sélectionner juste à côté de la vue Checkstyle la visualisation graphique (les 4 couleurs) {{ :​2014_2015:​s3:​concprogobjet:​td:​checkstyleboutongraphique.png?​direct&​300 |}} {{ :​2014_2015:​s3:​concprogobjet:​td:​checkstylegraphiquevue.png?​direct&​300 |}}
Line 160: Line 160:
 examination. examination.
  
 +Attention c'est des recommandations seulement. Par exemple, dans les tests certaines valeurs ne doivent évidemment pas être définies comme des constantes.
 !--> !-->
 </​html>​ </​html>​
-Attention c'est des recommandations seulement. Par exemple, dans les tests certaines valeurs ne doivent évidemment pas être définies comme des constantes.+
 ===== PMD ===== ===== PMD =====
  
Line 173: Line 174:
   * //"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 » "//   * //"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]]) 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  ==== ==== 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 {{ :​2014_2015:​s3:​concprogobjet:​td:​pmd-open.png?​direct&​300 |}}
 +  - Pour mieux voir les erreurs, ouvrir une nouvelle vue PMD {{ :​2014_2015:​s3:​concprogobjet:​td:​pmdvue.png?​direct&​300 |}}
 +  - Etudier les erreurs relevées Pour comprendre les erreurs pensez à cliquer sur l'​erreur et visualiser la règle {{ :​2014_2015:​s3:​concprogobjet:​td:​pmdvoirregle.png?​direct&​300 |}}
 +  - Rechercher les codes dupliqués et étudier les duplications... et sur vos propres codes. {{ :​2014_2015:​s3:​concprogobjet:​td:​codesdupliques.png?​direct&​300 |}}
 +  - Générer le rapport PMD {{ :​2014_2015:​s3:​concprogobjet:​td:​pmdgenererrapport.png?​direct&​300 |}}
 +  - Etudier les erreurs relevées dans vos propres codes. ​
 +
 +<​html>​
 +<!--
 1- Fabriquons un exemple pour être sûr d'​avoir des erreurs à analyser ((Cette partie s'​appuie sur le tutoriel suivant http://​www.javatips.net/​blog/​2012/​06/​pmd-in-eclipse-tutorial)) :  1- Fabriquons un exemple pour être sûr d'​avoir des erreurs à analyser ((Cette partie s'​appuie sur le tutoriel suivant http://​www.javatips.net/​blog/​2012/​06/​pmd-in-eclipse-tutorial)) : 
  
Line 198: Line 211:
 } }
 </​code>​ </​code>​
- +!--> 
-2Clique droit sur le projet puis PMD vérifier le projet +</​html>​
- +
-{{ :​2014_2015:​s3:​concprogobjet:​td:​pmd-open.png?​direct&​300 |}} +
- +
-3- Pour mieux voir les erreurs, ouvrir une nouvelle vue PMD +
-{{ :​2014_2015:​s3:​concprogobjet:​td:​pmdvue.png?​direct&​300 |}} +
- +
-4- Générer le rapport PMD +
-{{ :​2014_2015:​s3:​concprogobjet:​td:​pmdgenererrapport.png?​direct&​300 |}} +
- +
-5- Etudier les erreurs relevées dans la nouvelle classe, dans les codes existants et dans vos propres codes. +
- +
-Pour comprendre les erreurs pensez à cliquer sur l'​erreur et visualiser la règle +
- +
-{{ :​2014_2015:​s3:​concprogobjet:​td:​pmdvoirregle.png?​direct&​300 |}}+
 ==== Configurer PMD  ==== ==== Configurer PMD  ====
 1- Sélectionner eclipse -> Preferences -> PMD 1- Sélectionner eclipse -> Preferences -> PMD
Line 222: Line 221:
 {{ :​2014_2015:​s3:​concprogobjet:​td:​pmdregles.png?​direct&​300 |}} {{ :​2014_2015:​s3:​concprogobjet:​td:​pmdregles.png?​direct&​300 |}}
  
 +==== Allons plus loin, comment PMD fonctionne ? ====
 +
 +  * http://​pmd.sourceforge.net/​pmd-5.1.2/​
 +  * http://​connect.ed-diamond.com/​GNU-Linux-Magazine/​GLMF-105/​Verifier-votre-code-Java-avec-PMD
 +  * Quelles règles? http://​pmd.sourceforge.net/​pmd-5.1.2/​rules/​index.html#​Basic
 +<​html>​
 +<!--
  
 ==== Découverte de l'​outil sur le code de JUNIT ==== ==== Découverte de l'​outil sur le code de JUNIT ====
Line 234: Line 240:
       * La classe Theorie.java est notée comme une GOD Class ? Pourquoi ? (trop de méthodes)       * La classe Theorie.java est notée comme une GOD Class ? Pourquoi ? (trop de méthodes)
 {{ :​2014_2015:​s3:​concprogobjet:​td:​godclasspmd.png?​direct&​200 |}} {{ :​2014_2015:​s3:​concprogobjet:​td:​godclasspmd.png?​direct&​200 |}}
-==== Utilisation personnelle de PMD ==== 
  
-Appliquer PMD sur vos propres codes. ​ 
  
-==== Allons plus loin, comment PMD fonctionne ? ==== 
  
-  * http://​pmd.sourceforge.net/​pmd-5.1.2/​ 
-  * http://​connect.ed-diamond.com/​GNU-Linux-Magazine/​GLMF-105/​Verifier-votre-code-Java-avec-PMD 
-  * Quelles règles? http://​pmd.sourceforge.net/​pmd-5.1.2/​rules/​index.html#​Basic 
  
 ===== Reverse Engineering ===== ===== Reverse Engineering =====
Line 257: Line 257:
       * Cette visualisation doit se faire sur une sous-partie. Sélectionner quelques classes qu'il vous semble intéressant de visualiser.       * Cette visualisation doit se faire sur une sous-partie. Sélectionner quelques classes qu'il vous semble intéressant de visualiser.
   - Generate sequence or collaboration diagrams   - Generate sequence or collaboration diagrams
 +
 +
  
  
Line 290: Line 292:
 Mais on a quand même 14,9Mo... Mais on a quand même 14,9Mo...
  
 +!-->
 +</​html>​
  
  
2014_2015/s3/concprogobjet/td/reverse-engineering.txt · Last modified: 2014/11/26 10:50 by blay