2014_2015:s3:concprogobjet:td:reverse-engineering
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
2014_2015:s3:concprogobjet:td:reverse-engineering [2014/11/22 14:59] – [Métriques : utilisation du plugin Metrics de Eclipse] blay | 2014_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? |
* 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 51: | Line 51: | ||
* Comparer le nombre de lignes à sa complexité | * Comparer le nombre de lignes à sa complexité | ||
* Que pensez-vous du nombre de méthodes dans cette classe? Est-ce que cela vous gêne? | * Que pensez-vous du nombre de méthodes dans cette classe? Est-ce que cela vous gêne? | ||
- | - Les valeurs seuils ne sont pour la plupart pas définies. Pour les définir, aller dans le menu '' | + | - Les valeurs seuils ne sont pour la plupart pas définies. Pour les définir, aller dans le menu '' |
- | - | + | - Regardez vos codes avec cet outil. |
- | {{ : | + | |
Line 101: | Line 99: | ||
Notre objectif dans cette partie est de comprendre | Notre objectif dans cette partie est de comprendre | ||
- | | + | |
- | | + | |
< | < | ||
Line 112: | Line 110: | ||
</ | </ | ||
- | 1- Activer CheckStyle dans le projet | + | **Questions** |
- | {{ : | + | |
- | 2- Afficher la vue " | + | - Activer CheckStyle dans le projet {{ : |
- | {{ : | + | |
+ | - Et dans vos codes quelles erreurs de style détectez-vous? | ||
+ | - Configurer les règles pour votre projet | ||
+ | - Dans Eclipse -> preference -> CheckStyle | ||
+ | - Vous visualisez alors les règles par défaut de tous les projets. Prenez le temps de les regarder et d'en comprendre certaines. {{ : | ||
+ | - 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 {{ : | ||
+ | - Sélectionner Local Check Configuration -> New {{ : | ||
+ | - Sélectionner la configuration puis faire configure | ||
+ | - 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 | ||
+ | * le nommage des variables | ||
+ | * le nommage des packages, mais vous le modifiez pour forcer le nom des packages à se terminer par " | ||
+ | - Effacer les violations précédentes (projet -> checkstyle -> clear checkstyle violation. {{ : | ||
+ | - Visualiser les erreurs sur un graphique | ||
+ | - Sélectionner juste à côté de la vue Checkstyle la visualisation graphique (les 4 couleurs) {{ : | ||
+ | - Prenez le temps d' | ||
- | 3- Configurer les règles pour votre projet | + | <html> |
- | + | <!-- | |
- | a- Dans Eclipse -> preference -> CheckStyle | + | **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. | |
- | Vous visualisez alors les règles par défaut de tous les projets. | + | |
- | + | ||
- | {{ : | + | |
- | + | ||
- | b- Pour votre projet, il est utile de définir votre propre configuration : sélection du projet | + | |
- | + | ||
- | {{ : | + | |
- | + | ||
- | c- Sélectionner Local Check Configuration -> New | + | |
- | + | ||
- | {{ : | + | |
- | + | ||
- | d- sélectionner la configuration puis faire configure | + | |
- | + | ||
- | Vous choisissez à présent les règles que vous voulez vérifier dans votre projet. | + | |
- | * la duplication de code | + | |
- | | + | |
- | * le nommage des packages, mais vous le modifiez pour forcer le nom des packages à se terminer par " | + | |
- | {{ : | + | |
- | + | ||
- | e- effacer les violations précédentes (projet -> checkstyle -> clear checkstyle violation | + | |
- | {{ : | + | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | si cela ne fonctionne pas, désélectionner "use simple configuration" | + | |
- | {{ : | + | |
- | + | ||
- | Vous visualisez les règles rangées par catégorie. | + | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | X- Visualiser les erreurs | + | |
- | + | ||
- | Sélectionner juste à côté de la vue Checkstyle la visualisation graphique (les 4 couleurs) | + | |
- | {{ : | + | |
- | + | ||
- | {{ : | + | |
- | + | ||
- | + | ||
- | Leur donner les conventions Sun | + | |
- | + | ||
- | Quand vous travaillez à plusieurs sur des codes vous pouvez être amenés à définir | + | |
- | + | ||
- | 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 201: | 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. | ||
+ | !--> | ||
+ | </ | ||
+ | |||
===== PMD ===== | ===== PMD ===== | ||
Line 214: | 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' | * //"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' | ||
En savoir plus sur le choix : (cf. [[http:// | En savoir plus sur le choix : (cf. [[http:// | ||
+ | |||
==== 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 {{ : | ||
+ | - Pour mieux voir les erreurs, ouvrir une nouvelle vue PMD {{ : | ||
+ | - Etudier les erreurs relevées Pour comprendre les erreurs pensez à cliquer sur l' | ||
+ | - Rechercher les codes dupliqués et étudier les duplications... et sur vos propres codes. {{ : | ||
+ | - Générer le rapport PMD {{ : | ||
+ | - Etudier les erreurs relevées dans vos propres codes. | ||
+ | |||
+ | < | ||
+ | <!-- | ||
1- Fabriquons un exemple pour être sûr d' | 1- Fabriquons un exemple pour être sûr d' | ||
Line 239: | Line 211: | ||
} | } | ||
</ | </ | ||
- | + | !--> | |
- | 2- Clique droit sur le projet puis PMD vérifier le projet | + | </ |
- | + | ||
- | {{ : | + | |
- | + | ||
- | 3- Pour mieux voir les erreurs, ouvrir une nouvelle vue PMD | + | |
- | {{ : | + | |
- | + | ||
- | 4- Générer le rapport PMD | + | |
- | {{ : | + | |
- | + | ||
- | 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' | + | |
- | + | ||
- | {{ : | + | |
==== Configurer PMD ==== | ==== Configurer PMD ==== | ||
1- Sélectionner eclipse -> Preferences -> PMD | 1- Sélectionner eclipse -> Preferences -> PMD | ||
Line 263: | Line 221: | ||
{{ : | {{ : | ||
+ | ==== Allons plus loin, comment PMD fonctionne ? ==== | ||
+ | |||
+ | * http:// | ||
+ | * http:// | ||
+ | * Quelles règles? http:// | ||
+ | < | ||
+ | <!-- | ||
==== Découverte de l' | ==== Découverte de l' | ||
Line 275: | 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) | ||
{{ : | {{ : | ||
- | ==== Utilisation personnelle de PMD ==== | ||
- | Appliquer PMD sur vos propres codes. | ||
- | ==== Allons plus loin, comment PMD fonctionne ? ==== | ||
- | * http:// | ||
- | * http:// | ||
- | * Quelles règles? http:// | ||
===== Reverse Engineering ===== | ===== Reverse Engineering ===== | ||
Line 298: | 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 331: | Line 292: | ||
Mais on a quand même 14,9Mo... | Mais on a quand même 14,9Mo... | ||
+ | !--> | ||
+ | </ | ||
2014_2015/s3/concprogobjet/td/reverse-engineering.1416668383.txt.gz · Last modified: 2014/11/22 14:59 by blay