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:20]
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 99: Line 99:
  
 Notre objectif dans cette partie est de comprendre ​ Notre objectif dans cette partie est de comprendre ​
-  ​les notions de normes de codage +  ​les notions de normes de codage 
-  ​comment préciser vos propres règles de nommage.+  ​comment préciser vos propres règles de nommage.
  
 <​html>​ <​html>​
Line 109: Line 109:
 --!> --!>
 </​html>​ </​html>​
 +
 +**Questions**
  
   - Activer CheckStyle dans le projet {{ :​2014_2015:​s3:​concprogobjet:​td:​checkstyleactiver.png?​direct&​300 |}}   - Activer CheckStyle dans le projet {{ :​2014_2015:​s3:​concprogobjet:​td:​checkstyleactiver.png?​direct&​300 |}}
Line 118: 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. +       - 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:​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 |}} 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 |}}
 +  - Prenez le temps d'​étudier vos codes de TD, projet méthodologie ou tutoré.
  
-Sélectionner juste à côté de la vue Checkstyle la visualisation graphique (les 4 couleurs) +<​html>​ 
-{{ :​2014_2015:​s3:​concprogobjet:​td:​checkstyleboutongraphique.png?​direct&​300 |}} +<​!-- ​ 
- +**Questions ​sur vos propres ​codes** 
-{{ :​2014_2015:​s3:​concprogobjet:​td:​checkstylegraphiquevue.png?​direct&​300 |}} +   - Consider the coding conventions for line length in the Sun document. Browse your application source code and determine if this coding convention has been consistently followed.
- +
- +
-Leur donner les conventions Sun +
- +
-Quand vous travaillez à plusieurs ​sur des codes vous pouvez être amenés à définir ​vos propres ​règles de nommage par exemple, tous les noms de packages se terminent par pk, ... +
- +
-questions:​ +
- +
-  * Consider the coding conventions for line length in the Sun document. Browse your application source code and determine if this coding convention has been consistently followed.+
   * Consider the coding conventions for line wrapping in the Sun document. Browse your application source code and determine if this coding convention has been consistently followed.   * Consider the coding conventions for line wrapping in the Sun document. Browse your application source code and determine if this coding convention has been consistently followed.
   * Consider the coding conventions for various types of   * Consider the coding conventions for various types of
Line 165: Line 159:
 assessment of the source code base by visual assessment of the source code base by visual
 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. Attention c'est des recommandations seulement. Par exemple, dans les tests certaines valeurs ne doivent évidemment pas être définies comme des constantes.
 +!-->
 +</​html>​
 +
 ===== PMD ===== ===== PMD =====
  
Line 178: 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 203: 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 227: 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 239: 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 262: 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 295: 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.1416673237.txt.gz · Last modified: 2014/11/22 17:20 by blay