Programmation Java
Master M2 TTT --- Projet MiniLex
Résumé du projet
Le programme MiniLex est un programme qui crée un index
à partir d'un ficher texte et permet de faire des requêtes simples de recherche
de mots.
Calendrier
Le projet est à faire en binôme (cela veut dire deux personnes et pas trois
ni une, sauf si vous êtes un nombre impair). Le projet est rendre avant
le LUNDI 15 JANVIER 2007 par email sous la forme d'une pièce jointe
au format zip contenant l'ensemble des programmes est des documents.
Le email devra être envoyé à l'adresse beal@univ-mlv.fr. Le fichier
doit s'appeller nom1_nom2.zip, où nom1 et nom2
sont les noms des binômes dans l'ordre alphabétique.
Détail du rendu
Voici les noms des répertoires et fichiers qui doivent être contenus
dans l'archive zippée.
- Un ficher readme.txt indiquant comment compiler et exécuter
le programme, où se trouve la documentation, etc.
- Un répertoire src contenant les sources (les .java).
- Un répertoire classes contenant les classes (les .class)
correspondants aux sources.
- Un répertoire docs contenant deux documents au format PDF.
- La documentation utilisateur user.pdf contenant, en plus
des informatins classiques (comment compiler, exécuter, etc ...) une
description de l'application et comment l'utiliser.
- La documentation développeur dev.pdf contenant une
description détaillée de chaque classe que vous avez
implémentée. Il faut essayer de décrire ici les structures de données
et algorithmes.
On indiquera ici la liste des bugs connus, s'il y en a, avec un
scénario permettant de générer le bug ainsi que la raison pour laquelle
le bug se produit.
- Un sous-répertoire api contenant la documentation complète
au format javadoc.
Description du projet
Le logiciel doit pouvoir se lancer par une commande
java MiniLex [index|query] [option dépendant de index ou query]
.
Cette commande permet, en mode index, de créer un index d'un fichier
dont le nom est donné en argument. En mode query, elle permet d'effectuer
des requêtes sur un index déjà crée. L'index sera donné par un fichier
de sérialisation de nom fichier.txt.idx contenant un objet
représentant l'index. Pour cela le nom
fichier sera donné en argument.
- Avec l'option index, la commande sera donc
java MiniLex index [-minlength length] fichier.txt
.
Cette commande permet de créer un index à partir du fichier
fichier.txt. Un index est un objet d'une classe Index.
Un objet de cette classe contient une map de type
SortedMap<String,TreeSet<Integer>>.
dont les clés sont les mots
apparaissant au moins une fois dans le fichier texte et les valeurs associées
sont des collections ordonnées contenant les numéros des lignes dans laquelle le mot
apparaît. L'objet et sérialisé dans un fichier
appelé fichier.txt.idx.
L'option -minlength length indique le nombre de lettres minimum du mot
pour qu'il appartienne à l'index.
-
Avec l'option query, la commande sera
java MiniLex query fichier
.
Cette commande commencera par charger l'index sauvegardé dans fichier.txt.idx
puis affichera un mini menu demandant d'entrer une ligne de type
- Soit simple word1. On aura en réponse
toutes les lignes du fichier fichier.txt
qui contiennent le mot word1. La recherche se faisant
à partir de l'index et du fichier fichier.txt.
- Soit double word1 word2. On aura en réponse
toutes les lignes du fichier fichier.txt qui contiennent les deux mots dans l'ordre.
- (Partie optionnelle) Avec double word1 word2, afficher aussi
les deux lignes telles que word1 est à la fin de la première
ligne et word2 au début de la deuxième.