Système de gestion de fichiers compressés
Version du 04 Mai 1999
Cahier des charges utilisateur :
SOMMAIRE :
- PRESENTATION DU DOCUMENT
- PRESENTATION DU PROJET
- Environnement de développement
- A qui ce programme se destine t-il ?
- ETUDES DES CONTRAINTES
- ANALYSE DU PROJET
1) PRESENTATION DU DOCUMENT
Ce document constitue le cahier des charges utilisateur de notre projet
tutoré.
Ce projet est nécessaire à l'obtention de notre licence informatique. Il
compte comme un module à part entière.
Notre tuteur est Maxime Crochemore
, professeur d'algorithmique à l'université de Marne la Vallée.
2) PRESENTATION DU PROJET
Notre projet consiste à réaliser un système de gestion de fichiers dans lequel
tous les fichiers textes sont constamment compressés sur le support de
stockage. Des outils de manipulations ainsi que des commandes de type Unix
seront réalisés, comme par exemple la visualisation, l'édition, la recherche
de motif ...
Environnement de développement :
Ce système de gestion de fichiers compressés sera portable sur les plateformes
utilisant le système d'exploitation Unix et sera écrit en langage C.
A qui se programme se destine t-il ? :
Ce programme est destiné à tout utilisateur possédant des nombreux fichiers
texte et désireux de les compresser dans le but d'économiser de la mémoire
de masse. L'intéret est qu'il reste possible de les manipuler à tout moment,
puisque des utilitaires seront également programmés.
3) ETUDE DES CONTRAINTES
En général, lorsqu'un fichier (quelque soit son format) est compressé sur un
support physique (disque dur, disquette, ...), il doit être décompressé
pour pouvoir y effectuer des modifications.
En revanche, il existe sous UNIX plusieurs commandes telles que "zgrep",
"zipgrep" ... pour le traitement des fichiers compressés par gzip mais ces
commandes sont des scripts développés en "shell". Aussi ces scripts
décompressent le fichier pour le mettre dans un "tube", pour appeler ensuite
la commande "grep".
D'où l'intérêt de notre projet : la réalisation d'un mode de compression de
fichiers texte assez performant, et l'implémentation de ces fonctions fortes
utiles .
Le système de compression/décompression n'est utilisable que sur les fichiers
texte.
Les différentes commandes qui seront réalisées pour la manipulation des
fichiers ne seront opérationnelles que pour les fichiers qui auront été
préalablement compressés par le programme lui même ou par un autre utilisant
la méme méthode de compression.
4) ANALYSE DU PROJET
Le projet est décomposable en trois modules :
- La compression :
Il s'agit de trouver un algorithme de compression qui soit suffisamment
performant pour les fichiers texte de grande taille. Cet algorithme utilisera
un antidictionnaire qui sera transmis en entête du fichier compressé.
Le principe est le suivant : pour chaque fichier à compresser on crée son antidictionnaire et on l'utilise, avec une certaine méthode, pour compresser le fichier. Cette méthode sera décrite plus en détail dans les documents suivants.
- La décompression :
Pour la décompression, l'algorithme utilisera le même antidictionnaire (puisqu'il aura été transmis en entête du fichier. A partir de cet antidictionnaire, et en utilisant une méthode inverse de celle utilisée pendant la compression, le fichier original sera reconstruit. La description détaillée de cette méthode sera également présentée plus loin.
- Le traitement des fichiers :
Afin que le programme ai une certaine utilité, un certain nombre de
commandes
et petits utilitaires seront développés afin d'offrir un système de gestion
de fichiers compressés complet et puissant à l'utilisateur.
Une interface graphique pourra éventuellement être développée.
Retour à la page principale