CAHIER DES CHARGES Editeur XML Responsable de projet : Michel Meynard Université Montpellier 2 - M1 Informatique S2 CHANTEMESSE Florian NOYARET Pierre REY Cyrille VINYES François 4 février 2008
Table des matières 1 Introduction 2 2 Travail demandé 3 3 Organisation 5 3.1 Méthode de travail........................ 5 3.2 Planning.............................. 5 1
Chapitre 1 Introduction Ce deuxième semestre de M1 Informatique, il nous a été demandé d effectuer un projet par groupe de 4. Notre groupe est constitué des étudiants suivants : Florian CHANTE- MESSE, Pierre NOYARET, Cyrille REY et François VINYES. Notre sujet s intitule : EDITEUR XML. Dans ce cahier des charges nous allons tenter de définir quelles sont exactement les tâches à effectuer et les fonctionnalités qui vont être implémentées dans l outil demandé ; ainsi que le planning à respecter pour mener à bien ce projet. 2
Chapitre 2 Travail demandé Le sujet qui nous a été affecté nous demande de concevoir de A à Z un outil qui se présente sous la forme d un éditeur XML (Extensible Markup Language), et qui devra comporter ces différentes fonctionnalités : Edition brute du source XML : L outil devra donc proposer comme n importe quel éditeur de texte la possibilité d éditer le source du fichier grâce à la souris et au clavier. Edition arborescente (ou mode plan) du document XML : Ouverture et fermeture de sous-arborescences en un clic, à la manière de l explorateur windows ou comme à l ouverture d un fichier XML sous Firefox (démuni de feuille de style). Voir la figure 2.1. Fig. 2.1 Exemple d arborescence XML. Validation (parser) en continu (multi-thread) : L outil devra 3
être multi-tâche, c est-à-dire que pendant que la tâche principale s occupe par exemple de gérer les interactions avec la fenêtre principale, une ou plusieurs autres tâches se chargeront de parser en continu le document XML. C est-à-dire qu elle devra veiller à la bonne forme (syntaxe) du document édité. Aide à l écriture d une DTD (inférence de DTD) : Nous devons disposer d une aide permettant d écrire avec simplicité une DTD. Sa forme reste toujours à déterminer. Visualisation dans un navigateur d un document XML associé à une feuille de style : Cette fonctionnalité permettra de lancer le navigateur internet et ouvrira le document XML édité afin d en avoir un aperçu. Coloration syntaxique : Comme tout éditeur de code source, nous mettrons en place une coloration syntaxique automatique du code édité. Complétion automatique si DTD : Notre outil devra nous sortir, si nous avons créé au préalable une DTD, un squelette de fichier XML respectant parfaitement la DTD, ou alors autoriser seulement la complétion de balises autorisées par la DTD. Ecriture électrique (balise fermante ajoutée automatiquement) : A la manière d Eclipse, qui se charge, lorsqu on tape du code, d afficher automatiquement les accolades ou parenthèses fermantes, notre outil devra faire de même en proposant de rajouter automatiquement les balises XML fermantes. Fonctionnalités classiques d un éditeur : Les onglets Fichier, Edition...qui comportent les commandes classiques Enregistrer, Copier, Coller... 4
Chapitre 3 Organisation 3.1 Méthode de travail Afin de tous nous coordonner, nous avons mis en place différents outils de communications permettant de nous tenir tous au courant de nos avancées. Création d un site dit trac où chacun peut envoyer les différentes versions des fichiers et autres : http://www.assembla.com/wiki/show/loligo qui utilise le protocole de communication SVN. Nous utilisons également les outils de messagerie classiques et de messagerie instantanée. 3.2 Planning Nous avons défini nos objectifs et les différentes tâches que nous prévoyons d accomplir en fonction du temps que nous pensons avoir besoin pour les traiter et du délai de fin de projet. Ces tâches reprennent principalement les objectifs que nous nous sommes fixés au chapitre 2. En voici la liste : Etude de l existant, analyse du besoin, cahier des charges : (tout le groupe - 2 semaines) L ensemble des processus nécessaires à la définition de nos objectifs et à la rédaction de ce cahier des charges. Diagramme UML : (tout le groupe - 1 semaine) Réflexion sur la structure de notre éditeur et description de son fonctionnement. Structure de l interface : (tout le groupe - 1 semaine) Première ébauche du corps de notre interface (qui devra acceuillir les différentes fonctionnalités à traiter par la suite). 5
Tâche arbre syntaxique : (Cyrille, Florian - 2 semaines) Traitement de l arborescence du fichier XML. Tâche erreur de syntaxe : (Pierre, François - 2 semaines) Traitement des erreurs de syntaxes du code XML (de manière multithreadée). Menu contextuel, onglets : (Cyrille, Florian - 2 semaines) Ajout des différentes fonctionalités de l interface (fichier, edition, ouverture de fichier, copier, coller...) Colorisation du code, fermeture de balise, indentation automatique : (Pierre, François - 2 semaines) Validation du XML par la DTD : (Florian, François - 2 semaines) Aide à la création de DTD : (Cyrille, Pierre - 2 semaines) Complétion si DTD : (Pierre, François - 2 semaines) Navigateur : (Cyrille, Florian - 2 semaines) Explorateur de fichier. Finalisation, Préparation soutenance : (tout le groupe - 1 semaine) Finalisation de l assemblage, de certaines fonctionnalités, de la préparation du support pour la soutenance et entrainement à la soutenance. Rédaction rapport : (tout le groupe - 11 semaines) La répartition de ces différentes tâches et le planning prévisionnel établi sont illustrés par le diagramme de Gantt de la figure 3.1. Nous devrons accomplir quelques tâches tous les 4 au départ (tâche d apprentissage, de structure de l interface et diagramme UML) car il est important que nous ayons tous traité ces parties, pour commencer le projet sur les mêmes bases. La finalisation du projet va être également faite à 4, car nous aurons à rassembler les différentes parties traitées précédemment par chacun de nous. Nous nous sommes partagé la plupart des tâches par groupe de 2, afin de pouvoir les accomplir en parallèle. Nous avons fait attention de respecter un certain ordre dans leur accomplissement afin de ne pas débuter une tâche qui dépendrait d une autre non encore traitée. 6
Fig. 3.1 Diagramme de Gantt de notre projet 7
De plus, tout au long de notre projet, nous rédigerons notre rapport, afin de bien parler des différentes parties au fur et à mesure que nous les aurons accomplies. Chacun rédigera les parties qu il aura traité. 8
Table des figures 2.1 Exemple d arborescence XML.................. 3 3.1 Diagramme de Gantt de notre projet.............. 7 9