La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

JDepend - Analyse de la qualité du code Java -

Présentations similaires


Présentation au sujet: "JDepend - Analyse de la qualité du code Java -"— Transcription de la présentation:

1 JDepend - Analyse de la qualité du code Java -
Guillon Denis - IR3 Groupe 2 - Exposé Système

2 Déroulement de l’exposé
Programmation et qualité Présentation de JDepend Critères de qualité Installation et mise en œuvre Intégrations diverses Améliorations de la qualité du code Intérêts et limitations 14/01/2019

3 Programmation et qualité
Pourquoi écrire du code de qualité ? La réussite du projet en dépend Le respect de normes de développement permet : d’assurer la pérennité et de la diffusion du projet une maintenance et documentation aisée Mesure de la qualité Lisibilité du code Uniformité des conventions Couplage minimum (modules indépendants) 14/01/2019

4 Présentation de JDepend
Outil développé en Java par Mark Clark Parcourt les répertoires contenant les classes d’un projet Java Calcule des métriques de qualité pour chaque package Sensible à l’extensibilité, la réutilisabilité et la maintenabilité des sources Soumis à la licence « BSD License » 14/01/2019

5 Critères de qualité - Métriques 1/2 -
Nombre de classes et d’interfaces (CC et AC) Critère d’extensibilité des packages Couplage par dépendance ascendante (Ca) Indicateur de mauvaise gestion des dépendances Indicateur d’un package au centre de l’application Couplage par dépendance descendante (Ce) Indicateur d’indépendance du code 14/01/2019

6 Critères de qualité - Métriques 2/2 -
Degré d’abstraction (A) (0<A<1) % de classes concrètes Degré de stabilité (I) ( I = Ce / (Ce + Ca) ) Propriété de stabilité par rapport à la mise à jour d’autres packages Distance normale (D) à la droite A + I = 1 Indicateur de l’équilibre d’un package Volatilité (V) Propension d’un package à évoluer dans le temps Dépendance cyclique 14/01/2019

7 Distance normale 14/01/2019

8 Dépendances - Exemples -
A = 0, I =1, D = 0 Package dont les autres packages ne doivent pas dépendre A = 0,85, I = 0, D = 0,15 A l’inverse, package réutilisable car très stable 14/01/2019

9 Installation et mise en œuvre - Installation sous Unix -
Téléchargement des sources jdepend-2.9.zip Décompression de l’archive dans un répertoire Ajout en variable d’environnement : du répertoire : JDEPEND_HOME=~/chemin/jdepend-2.9 chmod -R a+x $JDEPEND_HOME de l’archive jar contenant les classes : export CLASSPATH=$CLASSPATH:$JDEPEND_HOME/lib/jdepend.jar Recompilation cd $JDEPEND_HOME ant jar 14/01/2019

10 Installation et mise en œuvre - Mise en oeuvre -
Interfaces de visualisation des métriques : 1 interface graphique Affichage d’un arbre hiérarchique de chaque package par les dépendances ascendantes et descendantes 2 interfaces en ligne de commande (texte et xml) Affichage dans un fichier des métriques détaillées et des cycles pour chaque package Calculs de métriques pour des packages spécifiques ligne de commande : option -components Configuration du fichier jdepends.properties 14/01/2019

11 Intégrations diverses
Utilisation avec Ant ajout d’une tâche dans le build.xml pour la génération automatique de l’analyse de la qualité du code Utilisation avec JUnit vérification l’existence de dépendances vérification de l’existence de cycles de dépendances vérification de valeurs « acceptables » de métriques 14/01/2019

12 Amélioration de la qualité du code
Objectif : Suppression de dépendances entre classes applicatives et implémentation Méthode : Injection de code pour manipuler des objets indépendamment de leur stockage Les différents types d’injection de code Injection par constructeur Passage d’un objet au constructeur d’une classe Injection par mutateur Passage d’un objet par setter Injection par interface Passage d’un objet suivant une méthode déclarée dans une interface 14/01/2019

13 Conclusion Un package faiblement couplé, abstrait et stable est de qualité Intérêts Mesure automatique de la qualité du code en terme d’extensibilité, de réutilisabilité et de maintenabilité. Révèle des problèmes d’organisation des classes Outil Open source Limitations Ne fournit pas d’interprétation des métriques Ne collecte pas de métriques sur le code source 14/01/2019

14 Ressources http://www.clarkware.com/software/JDepend.html
14/01/2019


Télécharger ppt "JDepend - Analyse de la qualité du code Java -"

Présentations similaires


Annonces Google