Outils graphiques de conception et de débogage sous Eclipse Olivier CADORET Daphné DUSSAUD Guillaume GRAIGNIC Sophie LE CORRE Jocelyn MAHE Vendredi 27 Mai 2011 4ème année Informatique INSA de Rennes Encadrant : Bertrand COUASNON Rapporteur : Jean-Louis PAZAT
Introduction Recherche de l’équipe IMADOC Reconnaissance de documents Création d’un environnement de développement par des étudiants Ce projet à pour but d’aider les équipes de recherches de l’équipe IMADOC sur leurs travaux concernant la reconnaissance de documents. Plusieurs équipe ont travaillés sur ce sujet, que ce soit dans le cadre stage ou de projet 4info.
Plan Contexte du projet (Jocelyn) (5min) Objectifs (Olivier) (5 min) Conception et développement (20 min) Visualisation de la grammaire (Sophie/Guillaume) Débogueur DebugDocRead (Daphné/Jocelyn/Olivier) Planification (5 min) Suivi (Daphné) Avancement (Guillaume) Conclusion (Sophie) (2 min)
Plan Contexte du projet II. Objectifs III.Conception et développement 1. Visualisation de la grammaire 2. Débogueur DebugDocRead IV. Planification 1. Suivi 2. Avancement V. Conclusion
Méthode de reconnaissance de documents I – Contexte du Projet Méthode de reconnaissance de documents DMOS (Description and MOdification of Segmentation) Description du document par une grammaire EPF Exemples d’applications : Reconnaissance d’un terrain de tennis Reconnaissance d’une structure de tableau
Méthode de reconnaissance de documents I – Contexte du Projet Méthode de reconnaissance de documents DMOS-P : Extension de DMOS Procédé multi-résolution ZOOM
Résultat après exécution I – Contexte du Projet Application DocRead Exemple de détection des terrains de tennis : Image initiale Résultat après exécution
Autres fichiers λ-Prolog I – Contexte du Projet Application DocRead 1 fichier EPF 1 fichier λ-Prolog epfc pmc C gcc Autres fichiers λ-Prolog Bibliothèques en C++ Application DocRead Grammaire EPF compilé vers lambda-prolog Fichiers lambda-prolog qui définissent les opérateurs de positions Bibliothèques C++ de traitement d’image et de donnés Le tout génère une exécutable
I – Contexte du Projet Langage EPF (OP) Description de la structure en induisant la stratégie de recherche Exemple de reconnaissance d’un rectangle : 1 2 Point d’ancrage Zone de recherche Opérateur de position 4 3 1 2 3 4
Environnement de développement II - Etude de l’existant Environnement de développement Aide à la création d’application DocRead Deux plugins Eclipse conçu par l’équipe IMADOC : LPDT : Gère les fichiers λ-Prolog (.pm) DocReadDT : Gère les fichier EPF (.epf) Afin de faciliter le développement de son outil de reconnaissance de documents, l’équipe IMADOC a conçu deux plugins pour l’IDE Eclipse : LPDT qui permet de gérer les fichiers λ-Prolog et DocReadDT qui lui gère les fichiers EPF. Dans cette partie, nous présenterons l’interface de développement Eclipse et plus particulièrement de la façon dont elle est conçue sous forme de plugins. Puis, nous présenterons le plugin LPDT et le plugin DocReadDT à la base du projet puisque notre tâche consistera en son amélioration.
Présentation d’Eclipse II - Etude de l’existant Présentation d’Eclipse IDE (Integrated Development Environment). Libre, extensible, universel et polyvalent. Spécificité : architecture en plugins. Eclipse est un environnement de développement intégré (IDE en Anglais) développé par l’Eclipse Foundation. Il est Open Source donc libre et également extensible, universel et polyvalent. Sa spécificité vient du fait que son architecture est développée autour de la notion de plugin.
Architecture d’Eclipse II - Etude de l’existant Architecture d’Eclipse Base d’Eclipse Gèrent la partie graphique On voit ici l’architecture d’Eclipse. La base de cet environnement de développement intégré est l'Eclipse Platform, qui est composée : - Du Platform Runtime qui est le Noyau principal d‘Eclipse. C’est lui qui rend possible ensuite l'architecture modulaire d‘Eclipse. Ensuite chaque éléments est un plugin. Ensuite L’eclipse platform est comprend différents plugins dont principalement : Le Workspace qui gère des fichiers et des répertoire de travail. Les plugins SWT, JFACE et Workbench qui gère la partie graphique. Par la suites les autres plugins, comme JDT, se branchent sur cet ensemble afin d'utiliser ces fonctions de base tels que l'aide ou la gestion des fichiers. Gère les fichiers et répertoires Plugins Noyau principal
Plan I. Contexte du projet II. Objectifs III.Conception et développement 1. Visualisation de la grammaire 2. Débogueur DebugDocRead IV. Planification 1. Suivi 2. Avancement V. Conclusion
Plugin LPDT – Vue LPDT II - Etude de l’existant Vue LPDT Outliner Navigateur de fichier Zone d'édition L’équipe Imadoc a donc créer un plugin baptisé LPDT (Abréviation de Lambda Prolog Document Tools) afin de gérer les fichiers λ-Prolog. On peut voir que l'éditeur possède plusieurs zones distinctes. La zone la plus grande est la zone d'édition qui permet d'éditer des fichiers λ-Prolog. Afin de faciliter la compréhension du code, des informations sur un élément sont visibles lors du survol de celui-ci. A gauche celle-ci, on a une zone qui nous permet de naviguer dans les fichiers du projet et à droite une partie outliner qui permet de visualiser les fonctions du fichier en cours d'édition. Tout ceci permet de gagner du temps lors d'une recherche dans le code. En bas, nous pouvons observer une partie console que l'utilisateur pourra utiliser après exécution d'un programme pour voir les traces qu'il aura au préalable laissé dans son code. Problème/Console
Plugin DocReadDT II - Etude de l’existant Vue DocReadDT Zone d’édition Outliner DocReadDT est un plugin Eclipse permettant l’édition de grammaire EPF. Il est basé sur le plugin LPDT et il intègre donc de la même manière : un navigateur de fichier, un outliner, une partie console. Il a également un éditeur qui gère en plus les fichiers EPF. Il permet donc de réaliser un analyseur DocRead car il gère à la fois les fichiers .pm (λ-Prolog) et .epf. DocReadDT ne possède pas (encore) de vue de Debug. Navigateur de fichier Console/problème
Plugin LPDT – Vue DebugLP II - Etude de l’existant Plugin LPDT – Vue DebugLP Vue DebugLT Visualisation des points d’arrêts et des variables Zone de Debug Le plugin LPDT possède une deuxième perspectives baptisé DebugLP qui permet, comme son nom l’indique, de débuguer les fichiers λ-Prolog. On peut donc voir que la zone d'édition est réduite par rapport à la perspective LPDT. Concernant le débogage des programmes, une zone de debug située en haut à gauche permet d'arrêter ou d'avancer étape par étape dans un programme en cours d'exécution. A la droite de la zone de debug, une partie est réservée à la visualisation des points d'arrêt et des variables. Ceci nous permet de voir, selon l'onglet activé, les valeurs des variables lors de l'exécution d'un programme ou les différents points d'arrêt mis dans le programme. Tout comme la perspective LPDT la perspective DebugLP possède une zone réservée à la console et une autre pour l’outliner et la navigation mais cette dernière étant moins utile lors de débogage, une place moins importante lui est attribuée. Le dernier module LP Context Stack permet de visualiser la pile des variable. Outliner et Navigation Zone d’édition Console/Problème Pile des variables
Besoins III - Besoin et spécification Meilleure lisibilité du code Détection d’erreurs facilitée Plus d’efficacité dans le développement Nous venons de vous décrire la version actuelle des plugins LPDT et DocReadDT pour les langages EPF et Lambda Prolog. Pourquoi nous a confié un projet de 4ème année sur ces plugins ? Les besoins principaux, en terme d’amélioration, sont une meilleure compréhension du code (Lambda Prolog et EPF) et une détection d’erreurs facilité. Tout cela dans le but de gagner de l’efficacité dans le développer
Solutions (à modifier) III - Besoin et spécification Solutions (à modifier) Outil de visualisation graphique de grammaire EPF Débogueur pour EPF (debugDocRead) Browser