Université de Marne-la-Vallée

Maîtrise d'Informatique

Projet de Programmation Orientée-Objet

Projet à réaliser par groupe de 2
À rendre avant le 15 janvier 2001 8 heures


Le but de ce projet est de réaliser un navigateur de classes, comparable à la documentation javadoc, mais utilisant uniquement les mécanismes de réflexivité pour afficher l'ensemble des attributs et des méthodes utilisables d'une classes.

Le navigateur est une interface graphique à réaliser en Swing comprenant trois zones :

  1. une arborescence des paquetages et de classes/interfaces sous forme d'un javax.swing.JTree

  2. la liste des attributs et méthodes accessibles dans une classe/interface préalablement sélectionnée dans l'arborescence précédente

  3. une zone de dessin dans laquelle sera représentée sous forme de graphe la hiérarchie des classes et interfaces héritées et implantées par la classe/interface sélectionnée

La liste d'attributs et de méthodes devra contenir tous les membres qu'il est possible d'accéder à partir de la classe/interface sélectionnée, en particulier ceux de ces super-classes. Cette liste sera affichée par une javax.swing.JTable. Il devra être possible d'ordonner les membres en fonction de leur nom, leur visibilité, les attributs étant toujours avant les méthodes et les membres statiques avant ceux qui ne le sont pas.

Dans la zone d'affichage de la hiérarchie, lors de la sélection d'un membre dans la liste, la classe/interface dans laquelle il est définit devra changer de couleur, les interfaces et classes abstraites dans lesquels il est déclaré devront également changer de couleur. Si le membre en masque un autre les classes/interfaces où apparaissent le champ masqué devront prendre une autre couleur.

La liste des répertoires et fichiers JAR (java.util.jar.JarFile) dans lesquels seront recherchées les classes sera précisée au moyen d'un fichier de propriétés chargé au démarrage et modifiable à partir d'un menu de l'interface graphique. Les fichiers .class seront chargés dynamiquement au moyen d'un chargeur de classe personnel.

Avant de commencer à effectuer la partie dessin, le reste du projet devra fonctionner ! On pourra ajouter des informations sur les classes internes.

Un rapport de quelques pages au format Postscript, contenant le manuel d'utilisation et décrivant l'architecture du projet (en particulier les structures de données utilisées) devra être placé avec le projet (présenté sous forme d'un fichier .jar exécutable par la commande java Projet.jar) dans le répertoire /home/projet/maitrise/java2000/login avant la date limite de dépôt du projet.