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
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/26 10:50] (current)
blay [Métriques : utilisation du plugin Metrics de Eclipse]
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 17:27 by blay