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 revisionPrevious revision
Next revision
Previous revision
2014_2015:s3:concprogobjet:td:reverse-engineering [2014/11/22 16:27] – [Conventions de codage et de style : Utilisation du plugin CheckStyle] blay2014_2015:s3:concprogobjet:td:reverse-engineering [2014/11/26 09:50] (current) – [Métriques : utilisation du plugin Metrics de Eclipse] blay
Line 45: Line 45:
   - 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 ).   - 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.    - Etudiez les valeurs des métriques obtenues. 
-       * Sont-elles dans les limites souhaitées? +       * Sont-elles dans les limites souhaitées? (voir question 7)
          * Dans quel cas, ne sont-elles pas dans la limite souhaitée? Qu'en pensez-vous?          * Dans quel cas, ne sont-elles pas dans la limite souhaitée? Qu'en pensez-vous?
        * Que pensez-vous de la classe //Graphe// :        * Que pensez-vous de la classe //Graphe// :
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.1416673629.txt.gz · Last modified: 2014/11/22 16:27 by blay