Visualisation d'une hiérarchie de classes java

Version 1.16
Dernière modification : 8 Janvier 2008

 

 

 

 

 

 

 

 

 

 

 

Ne pas imprimer cette page,  celle-ci pouvant être mise à jour par la suite. Le numéro de version figure en dessous du titre.

Objectif du TP

Construire un outil permettant de visualiser sous forme de graphes les relations d'héritage associées à un ensemble de classes spécifiées. La phase d'extraction des données se fera en utilisant l'introspection java. La phase de visualisation se fera en utilisant dot et grappa, des outils de visualisation de graphes développés à AT&T. 

Qualité

La première partie de ce TP est exploratoire : le code fourni n'est pas censé être réutilisé. Ne pas hésiter à faire des copier-coller lorsque nécessaire. Contrairement aux tps suivants aucune norme particulière de qualité n'est exigée. Ce TP a été mis au point pour des versions de java inférieure à 1.5 et n'utilise donc pas les extensions récentes du langages concernant la généricité. En fonction de la version du compilateur utilisé on adaptera les questions ci-dessous. Avec la version 1.4 de java on demande d'indiquer systématiquement pour les signatures des méthodes le type précis des paramètres et du résultat en utilisant les conventions suivantes :

·         T?  si T est peut être null

·         T!  si T n'est jamais null

·         C<T> pour les collections 

o        par exemple Set/*<Personne!>?*/ pour null ou un ensemble Personne (ne contentant pas la valeur nulle)

o        ou bien Map/*<String!,Node!>!*/


Déroulement de la séance

·         (1) Sur Windows faire le nécessaire pour que java fonctionne correctement (l'exécution est basée sur la version Windows de dot).

o        repérer où le jdk est installé, peut être C:\Logiciel\j2sdk1.4.1

o        après avoir ouvert une fenêtre (noire) de commande, définir le chemin d'accès au exécutable pour éviter qu'il y ai des conflits entre les différentes installation de java et les incompatibilité: ne mettre que le jdk1.4 soit    set PATH=C:\j2sdk1.4.1\bin sans espaces (adapter éventuellement le nom du répertoire selon l'emplacement du jdk).

o        pour tester votre installation taper java -version qui devrait vous afficher la version 1.4.1 sans doute (ou 1.5 ?). Taper également javac qui devrait afficher un message de la forme "usage ..." (cette dernière précaution est nécessaire car selon les installations l'interpréteur peut être disponible mais pas le compilateur)

·         (2) Créer quelque part un répertoire PRI (de préférence dans Z:\, soit Z:\PRI)

·         (3) Télécharger la dernière version de l'archive CLASSVIEWx.x.zip que vous trouverez dans le répertoire ARCHIVES.

·         (4) Décompacter dans le répertoire PRI, cette archive.  Cette opération crée un répertoire CLASSVIEW dans lequel vous allez travailler.

·         (5) Observer le contenu du répertoire CLASSVIEW en vous basant sur les informations ci-dessous. 

bin

    • dot.exe  : algorithme de placement pour un graphe. Développé par AT&T. Cet algorithme prend en entrée un graphe dont les noeuds et les arcs ne sont pas positionnés et produit un graphe affichable en associant à chaque élément des coordonnées. 
    • neato.exe : idem mais implémentant un "Spring Layout", c'est à dire un algorithme de placement différent.

src

    • les sources de différentes classes. Le contenu de ce répertoire devra être complété en créant de nouvelles classes ou en modifiant certaines classes incomplétes.

classes

    • les classes compilées à partir des sources contenues dans src (utiliser systématiquement l'option -d classes lors de la compilation).

lib

    • grappa1_2.jar : bibliothèque grappa pour l'affichage de graphe. Développé par AT&T. A mettre dans le classpath, par exemple via l'option -classpath de la commande javac et java (voir les exemples fourni ci-dessus lors de la compilation et exécution de la commande ListFiles).

·         Le répertoire src contient un certain nombre de classes java complètes ou à compléter ainsi que certaines classes déjà compilées. Le répertoire bin contient le binaire de l'algorithme de placement de graphe dot. 

o        se placer dans le répertoire racine de CLASSVIEW. Toutes les commandes seront exécutées à partir de ce répertoire. Si ce n'est pas le cas l'exécutable dot ne pourra pas s'exécuter.

o        pour tester dot.exe, taper la ligne suivante. Elle ne doit afficher aucune erreur et ne rien faire (cet exécutable implémente un algorithme de placement. Lorsque aucun fichier n'est fourni sur la ligne de commande, le graphe est lu à partir du clavier) . Taper Ctrl-C pour interrompre ce programme.

§         bin\dot.exe

o        on utilisera par la suite des commandes de la forme suivante. Par exemple pour compiler la classe fr.imag.classview.app.ListFiles 

§          javac -classpath classes;lib\grappa1_2.jar -d classes -sourcepath src   src/fr/imag/classview/app/ListFiles.java.
Aucune erreur de compilation ne devrait s'afficher.

o        par exemple pour l'exécuter

§         java -classpath classes;lib\grappa1_2.jar fr.imag.classview.app.ListFiles
La liste des repertoires contenus dans le répertoire courant devrait s'afficher.

·         suivre les instructions dans ce fichier pour réaliser le TPs


Questions 

(Q1) Parcours d'une hiérarchie de fichier

(Q2) Visualisation d'un graphe simple

(Q3) Visualisation d'une hiérarchie de fichiers

(Q4) Parcours d'une hiérarchie de classes

(Q5) Visualisation d'une hiérarchie de classes

(Q6) Visualisation des super classes et des interfaces

(Q7) Interprétation de la hiérarchie de classes correspondant aux collections

(Q8) Visualisation de métriques

(Q8) Parcours des fichiers correspondant à des classes

(Q9) Visualisation des relations d'héritages pour une liste de paquetage donné

(Q10) Support pour les fichiers .zip et .jar (s'il vous reste du temps)

(Q11) Paramétrage interactif (s'il vous reste du temps)

 

(Q12) Affichage des classes dans le classpath  (s'il vous reste du temps)