This shows you the differences between two versions of the page.
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> | ||
- | + | !--> | |
- | 2- Clique 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> | ||