Projet POO 2011/2012

De $1

Table des matières
  1. 1. Modalités
  2. 2. Sujet
    1. 2.1. Persistance
    2. 2.2. Chargement dynamique

Version de 15:08, 16 Avr 2024

cette version.

Revenir à liste des archives.

Voir la version actuelle

Modalités

Pour le projet, vous devez constituer des groupes entre 3 et 4 étudiants maximum.

Le projet sera évalué en fonction des critères suivants :

  • fonctionnalité
  • mécanisme de gestion de plugins et de chargement dynamique
  • persistance
  • utilisation des patrons de conception
  • documentation / gestion du projet 

Chacun de ces critères comptant pour 20% de la note de rendu du projet. Cette note sera commune à tout le groupe.

Vous devez remettre votre projet le lundi 16 janvier à minuit. Il doit obligatoirement contenir :

  • Le nom des participants du projet et une description en quelques lignes de leur participation dans le projet.
  • Le source (Un projet Eclipse ou Netbeans)
  • Un .jar exécutable sous n'importe quel OS (faire des tests au moins sur Linux et Windows au préalable)
  • Un rapport qui explique les points remarquables de votre solution et qui met en valeur chacun des cinq points comptant pour l'évaluation, c'est-à-dire qui explique en particulier comment créer de nouveaux plug-ins
  • Plusieurs exemples de plugins (au moins 4)

Cette archive sera de préférence déposée sur un site web ou un site de gestion de code source (type google code).

Une soutenance orale (par groupe) aura lieu le vendredi 20 janvier selon un calendrier annoncé ultérieurement. Cette présentation orale de 20 minutes aura pour but de mettre en lumière la contribution individuelle de chaque membre du groupe. Cette note de soutenance sera individuelle. 

La note finale de projet sera calculée en faisant la moyenne des deux notes (50/50).

La note de l'UE sera calculée en faisant la moyenne entre la note d'examen et la note du projet (50/50).

Sujet

Le but du projet est de mettre en oeuvre les différents aspects étudiés et appliqués lors des cours et des TDs. Pour cela, on vous propose, sur la base du TD3 de réaliser un mini environnement Eclipse. Il ne s'agit pas tant d'évaluer la qualité finale de l'environnement proposé mais la façon dont vous avez mis en oeuvre les points vus en cours (cf. les modalités d'évaluation). Il n'est pas requis de partir du code fourni au TD3.

Il faudra au minimum fournir un plugin de navigation d'arborescence. Ce plugin doit permettre d'ouvrir une arborescence de fichiers à partir d'une base choisie par un JFileChooser (ou une classe équivalente). Ce plugin obligatoire sera ensuite complété par des plugins complémentaires qui devront dépendre de la nature des fichiers trouvés dans l'arborescence de navigation.

Par exemple, on pourra avoir des plugins dédiés à :

  • la navigation dans les fichiers archives (.jar, .zip) pour naviguer dans une archive de façon identique à la navigation dans un répertoire.
  • l'ouverture de certains formats de fichiers images : e.g., un plugin pour les .gif, un autre pour les .png, ...
  • l'ouverture de certains formats de fichiers audio ou vidéo : par l'appel d'un exécutable installé sur la machine ou en Java 
  • l'ouverture de fichiers web (.html) dans un navigateur de fichiers (cf. http://java.net/projects/jdic/)
  • la navigation dans des répertoires avec plusieurs modes d'affichage :
    • par liste avec ou sans détails : taille du fichier, date de création
    • par petites icônes : chaque icône correspondant à un type de fichier reconnu (pdf, gif, ...) par les autres plugins
    • par imagette : aperçu du contenu du fichier lorsque celui-ci contient une image dont le type est reconnu par un plugin dédié

Chaque plugin complémentaire devra être accompagné d'une carte de plugin (XML ou non) qui décrit :

  • La nature des fichiers reconnus (Par exemple un FileFilter)
  • Un menu (Par exemple une Action) qui offre des options sur le type de fichiers reconnus : par exemple pour les dossiers, affichage par imagette, icônes, arbre
  • Un ensemble d'éléments de décoration (par exemple une icône)

Il pourra éventuellement y avoir plusieurs plugins pour les mêmes types de fichiers. Pour les fichiers images, on pourra par exemple 

  • avoir un plugin en Java fait par vous qui affiche l'image
  • avoir un autre plugin qui se contente d'appeler une visionneuse installée sur votre système d'exploitation (Picasa, Gimp, ...)

La liste de plugins n'est pas exhaustive, faites place à votre imagination. 

Persistance

La persistance sera mise en place à plusieurs niveaux:

  1. Pour la création/sauvegarde/édition des cartes de plugins
  2. Pour la sauvegarde/restauration de l'espace de travail : l'ensemble des fichiers ouverts lorsqu'on quitte l'environnement seront réouverts lorsqu'on reouvre.
    • On pourra proposer éventuellement un système pour avoir plusieurs environnements de travail.
  3. Pour gérer les préférences, ou le plugin "par défaut" lorsqu'il y a plusieurs plugins qui manipulent les mêmes types de fichiers.

Chargement dynamique

Votre environnement devra obligatoirement être capable de découvrir de nouveaux plugins "à chaud" (sans relancer). Par exemple, si on dépose dans un répetoire identifié (Repository) un nouveau plugin capable de gérer les images de type .gif, il faudra ajouter le menu correspondant et être capable d'ouvrir ces fichiers.

Des séances de TDs seront réservées à l'encadrement du projet et à vous aider à préciser certains points qui peuvent vous sembler imprécis. Vous devriez cependant être en mesure dès à présent de mettre en place les premiers éléments de votre projet.