Projet 4info.

Slides:



Advertisements
Présentations similaires
Un environnement de développement éducatif
Advertisements

Portail Sdin Méthodes pour la contribution du portail SDIN Mars 2013.
Les Systèmes d’Information Financière Atelier conjoint ACBF / Banque Mondiale / AFRITAC de l’Ouest Gérer l’application dans le temps, sur les plans fonctionnel,
Nouveautés pour les développeurs Office System Scott Burmester Responsable des programmes PSPS.
Introduction: Concepts de la programmation
Algèbre de composants : une approche fonctionnelle à la sémantique de documents Bart Lamiroy LORIA/INPL QGar - École des Mines de Nancy.
Affichage interactif, bidimensionnel et incrémental de formules mathématiques Hanane Naciri et Laurence Rideau INRIA Sophia Antipolis CARI'2000.
Projet de Base de Données Groupe Moteur encadré par Mr MAINGUENAUD KikiTeam – ASI3 – 19 / 06 / 2002 Soizic Geslin Minh Le Hoai Samy Fouilleux Maxime Chambreuil.
1/22 Présentation Dechou & CO Développement dun programme de gestion dascenseurs Plan d'assurance qualité
1/22 Présentation Dechou & CO Développement dun programme de gestion dascenseurs Spécifications fonctionnelles générales.
Chapitre 6: Les procédures et les fonctions
JXDVDTEK – Une DVDthèque en Java et XML
Introduction : Compilation et Traduction
INF-1019 Programmation en temps réel
Présentation du SVI - DELSOL Mikaël
Démarche de résolution de problèmes
Plugin B pour JEdit Matthias Meusburger Antoine Acquaviva
Algorithmique et Programmation
Création d’un programme :
TD Table traçante - Porte stylo Simulation d’injection plastique pour valider la conception MoldFlow Plastics Advisers version 8.0.
Des outils pour le développement logiciel
Journées Pattern Grenoble - 1 Une expérience à l'IUT de Bayonne : Les patrons Composite et Interprète Philippe Lopistéguy I.U.T. de Bayonne-Pays.
Mise en place d’un outil pour la reconnaissance de documents
Conception de la mise en page
Introduction Création d'un projet Ajout de fichiers Compilation Exécution Utiliser le débogueur Département dinformatique et de génie logiciel Développer.
Développer en C avec Eclipse Introduction Création d'un projet Ajout de fichiers Compilation Exécution Utiliser le débogueur Département dinformatique.
Application to Blot Synteny
Projet de C – Matrices creuses
PROJET DE GENIE LOGICIEL 2005
Chapitre 3 Syntaxe et sémantique.
Outils graphiques de conception et de débogage sous Eclipse
Introduction à l’environnement logiciel Clips
Effeindzourou Anna, Meunier Stéfanie, Loyer Alexis, Calandreau Julien
Programmation Système et Réseau (sous Linux)
EXIGE Un avenir dans le web....
Le VHDL : SOMMAIRE I Introduction II Éléments généraux du langage
Exploration de la programmation android Formation Assurer par: Club FreeWays Réalisé par: BOUHJJA Lamia.
Création d’une communauté web scénarisée : le projet Crealys
Master 1 en informatique Juin 2007 Visualisation d'un ensemble convexe en 2D et en 3D pour la programmation linéaire 2 / 30.
PRESTO Programme d’étude de séries temporelles Projet 4 ème année Jean-Frédéric Berthelot Paul-Alain Bugnard Camille Capelle Sébastien Castiel.
Réalisé par : Mr IRZIM Hédi Mr JRAD Firas
Introduction à Visual Studio C++ (VC++)
Les outils de la vérification statiquedynamique unitaires intégration vérificateur de syntaxe vérificateur de syntaxe étenduABAP débogueur inspecteur de.
1 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Jean-Jacques Girardot
IFIPS Info 5 – 2004 / 2005 Projet de Résolution de Contraintes JEU DE L’AWELE AMARAL – FILLIAT – LANGLAIS – PETIT – SCHILLER.
1 Monopalme Projet 4 Info Spécifications LE LAY Olivier MAHE Jocelyn FORM Nicolas HENRY Gurvan BONNIN Thomas BASSAND Guillaume Décembre 2009 MONNIER Laurent.
Conception d’un langage pour l’algorithme évolutionniste M atthieu CHOUTEAU Y ohann HUBERT C hristophe PANNEAU E stelle FILMON Mr SAUBION – Décembre 2002.
Cours MIAGE « Architectures Orientées Services »Henry Boccon-GibodCours MIAGE « Architectures Orientées Services »Henry Boccon-Gibod 1 Architectures Orientées.
1 Initiation aux bases de données et à la programmation événementielle Responsable : Souheib BAARIR. (le sujet de votre .
Le Browser hiérarchique de Classes Java : En quoi cette application pourra faciliter le travail de Mr Leblanc ?
Interface de génération de blason Projet STLM.GIBERT / M.LIPPMANN.
Réalisation d'un plugin pour la gestion
Interface de génération de blason
PaCO++ André Ribes Réunion Hydrogrid Rennes 15/09/03.
Karine Vallin - Dorian Baysset
Introduction à SVG Scalable Vector Graphic. Informations ● Plus d'informations ici (draft, tutoriaux, outils... ): –
1 Cpt JAVA : Eclipse (bis) Debogage. 2 Code à tester public class siecle { int t; public siecle() { super(); t=1; } static public boolean vrai() { return(false);
Mathieu Martin Thomas Rovayaz Natacha Laborde Nathanaël Couret
GRAPHISME PAR ORDINATEUR SIF Contenu du cours 2 Introduction à XNA –Installation de XNA 4.0 –Premier projet –Gestion des ressources (images, vidéo.
Projet de C – Matrices creuses Yves BOGE, Sha LIU, Ivan VALIMAHAMED
Bus de terrain Can Open.
DREAMWEAVER Première séance Villaron Audrey – Shibly Tarek.
Plugin Scheme pour Eclipse Etudiants Simeon KOSTOV Matthieu IZOULET Agostino SEMERIA Responsable Erick GALLESIO Maîtrise Informatique , UNSA.
SI28 : Adobe Image Ready 3.0 Agathe Edange.
FLASH Séance 2 Xiaoliang Liang Morgane Le Nan SI28 P05.
SI28 : Adobe Image Ready 3.0 Alexandre Clienti. Utilité du logiciel :  Logiciel de graphisme orienté vers le web, dérivé de photoshop (interface quasi-identique)
INF2005– Programmation web– A. Obaid Les cartes. INF2005– Programmation web– A. Obaid Images cliquables Outil permettant d'effectuer des liens à partir.
Visual Information Solutions IDL 7.0 Pour une utilisation optimale d’IDL.
1 Monopalme Projet 4 Info Spécifications LE LAY Olivier MAHE Jocelyn FORM Nicolas HENRY Gurvan BONNIN Thomas BASSAND Guillaume Décembre 2009 MONNIER Laurent.
1 Monopalme Projet 4 Info Présentation finale LE LAY Olivier MAHE Jocelyn FORM Nicolas HENRY Gurvan BONNIN Thomas BASSAND Guillaume Décembre 2009 MONNIER.
Transcription de la présentation:

Projet 4info

Plan Introduction (1min) Contexte du projet (4min) Imadoc, Dmos, EPF, lambda Prolog Etude de l’existant (5min) Présente plugin Eclipse, LPDT et DocReadDT Besoin et spécification (11 min) Visualisation de la grammaire Débogueur DebugDocRead Browser Méthode de développement (2min) Conclusion (2min)

Introduction Recherche de l’équipe IMADOC Reconnaissance de documents Développement d’un Débogueur Contexte complexe Etude de l’existant Présentation de notre solution 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. Nous commencerons par la présentation du contexte dans lequel nous décrirons le fonctionnement d’un système de reconnaissance avec notamment une courte explication sur la méthode DMOS ainsi qu’une présentation des langages EPF et lambda Prolog. Ensuite nous étudierons le fonctionnement du logiciel déjà existant. Enfin nous vous présenterons notre solution afin de répondre aux objectifs du projets.

Méthode DMOS et DMOS-P Description and MOdification of Segmentation I – Contexte du Projet Méthode DMOS et DMOS-P Description and MOdification of Segmentation Description du document par une grammaire EPF Procédé multi-résolution, DMOS-P

Langage EPF Grammaire bidimensionnel I – Contexte du Projet Langage EPF Grammaire bidimensionnel Exemple de reconnaissance d’un rectangle : Point d’ancrage Zone de recherche Opérateur de position

Langage lambda prolog Langage de programmation logique I – Contexte du Projet Langage lambda prolog Langage de programmation logique Extension du langage Prolog Exemple de syntaxe : pere(X,Y) :- parent(X,Y), homme(X). Prédicats Paramètres Faits

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

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

Etude de l’existant Eclipse : Integrated Development Environment II - Etude de l’existant Etude de l’existant Eclipse : Integrated Development Environment 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.

Eclipse IDE (Integrated Development Environment). II - Etude de l’existant 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.

Eclipse II - Etude de l’existant Vous pouvez voir ici un aperçu d’écran du logiciel Eclipse. On peut voir que l’interface est constitué de différent module que l’on peut déplacer à sa guise. En générale il y a un explorateur de fichier à gauche, un éditeur de fichier au centre, un Outliner à droite et une partie Problème/Console en bas.

Eclipse II - Etude de l’existant On voit ici l’architecture d’Eclipse. On a donc ; Le Platform Runtime qui est le Noyau principal d‘Eclipse. C’est elle qui rend possible l'architecture modulaire d'eclipse. Le Workspace qui gère des fichiers et des répertoire de travail. Après il y a toute la partie graphique avec SWT, JFACE et Workbench. Et enfin il y a le module Help qui gère l’aide et le module team qui permet de travailler en groupe. 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.

LPDT II - Etude de l’existant 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.

DebugLP II - Etude de l’existant 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.

DocReadDT II - Etude de l’existant 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.

Besoin et spécification III - Besoin et spécification Besoin et spécification Visualisation de la grammaire Débogueur DebugDocRead Browser

Besoins Visualiser la grammaire EPF Utilisation d’Xmind III - Besoin et spécification 1 – Visualisation de la grammaire (1) Besoins Visualiser la grammaire EPF Utilisation d’Xmind Nous souhaitons pouvoir générer un arbre, représentable graphiquement, qui nous donnerait une vue d'ensemble de la grammaire en cours de développement. Ceci dans le but de mieux comprendre la grammaire. Remarquons en effet qu'une règle peut contenir une ou plusieurs sous-règles, ce qui rend envisageable la représentation sous forme d'arbre. Nous avons pensé que le modèle sous forme d'arbres proposé par XMind serait une bonne représentation. XMind est un logiciel libre qui permet de créer différents types de diagrammes : des cartes heuristiques, des diagrammes d’Ishikawa (en arrête de poisson), des arbres, des organigrammes, ectetera. De plus, XMind étant une application Eclipse RCP (Rich Client Platform), nous devrions pouvoir facilement l'intégrer au reste du projet. Pour simplifier, on peut dire qu’une application RCP est comme un plugin, sauf que celle-ci peut fonctionner indépendamment d’Éclipse.

Représantation EPF III - Besoin et spécification 1 – Visualisation de la grammaire (2) Représantation EPF Branche dépliée Branche pliée Le langage EPF est composé de plusieurs niveaux. Sur le code de la figure du haut, on voit aisément les différents niveaux. L’exemple traite la reconnaissance de terrain de tennis sur une image. Le niveau 1 est terrainDeTennis, le niveau 2 est composé de Declare, AT_ABS, ZoneService et terrainSimple, etc. De ce fait, celui-ci peut être visualisé sous forme d’une arborescence, à la manière de Xmind. Pour ce faire, il est envisageable de reprendre le code source de Xmind, et d’en réutiliser les fonctionnalités intéressantes de représentation graphique. La grammaire devra également être modifiable avec répercussion sur la représentation. Par contre, la représentation ne sera pas modifiable, seulement explorable. En effet, il devra être possible de déplier les différentes branches pour en voir le contenu, et ainsi explorer les différents niveaux de la grammaire.

Intégration à Eclipse III - Besoin et spécification 1 – Visualisation de la grammaire (3) Intégration à Eclipse On voit ici un aperçu de ce que devra permettre l’ajout de ce module. Nous avons choisi de placer cette visualisation dans la même fenêtre que celle de l’édition des fichiers car il est nécessaire d’avoir un espace suffisamment grand pour afficher les différents arbres. Nous allons donc ajouter deux boutons : ‘Générer arborescence’ qui permettra de scanner le fichier EPF en cours d’édition et d’afficher sa visualisation au format XMind. Ce bouton sera grisé et donc incliquable si la grammaire a déjà été générée, ‘Actualiser arborescence’ qui actualisera l’arbre précédemment créé. L’arbre s’actualisera également lors de la sélection du fichier XMind. L’arborescence pourra être exportée ou non sous format xmind mais elle ne sera pas enregistrée dans un fichier lors de sa génération. Si on ferme le fichier xmind il faudra donc la régénérer.

Spécification Xmind Arbre déplié lors de la génération III - Besoin et spécification 1 – Visualisation de la grammaire (4) Spécification Xmind Arbre déplié lors de la génération Représentation en sous-sujet sous forme d'organigramme bas. Gestion de la récursivité Gestion des règles des grammaires possédants plusieurs définitions L'arbre représentant la grammaire sous XMind sera représenté complètement déplié lors de sa génération. L’utilisateur pourra ensuite aisément replier les branches qui ne l’intéressent pas. L’arbre aura comme sujet central le nom du fichier EPF à visualiser. Il possédera ensuite un sous-sujet correspondant à l’entrée de la grammaire. Celui-ci possédera lui-même des sous-sujets, relatif à sa définition dans la grammaire, qui posséderont eux-mêmes des sous-sujets et cetera. Cela sera modélisé sous forme 'd'organigramme bas' sous XMind. En effet cela correspond le mieux visuellement à une représentation arborescente. De plus cette structure ne prend pas trop de place et permet une utilisation agréable des branches pliables. Le principal problème est qu’une grammaire peut être récursive. Lors de l’analyse du fichier EPF, lorsque l’on détectera une règle de grammaire ayant déjà été développé précédemment dans la branche où l’on se situe, on fera pointer cette règle vers le sous-sujet déjà développé plus haut dans l’arbre. Une règle de grammaire peut posséder une multitude de définitions. Si une règle de grammaire possède plusieurs définitions, on créera un sous-sujet du nom de la grammaire qui possédera lui-même autant de sous-sujets représentants les différentes définitions de la règle. Si elle ne possède qu’une seule définition, on représentera la règle directement par un sous-sujet.

Analyse détaillé Décryptage de la grammaire EPF Restitution sous XMind III - Besoin et spécification 1 – Visualisation de la grammaire (5) Analyse détaillé Décryptage de la grammaire EPF Restitution sous XMind Une des principales difficultés consistera à analyser la grammaire EPF. Nous avons plusieurs outils à notre disposition pour effectuer cette analyse. L’Outliner existant permet déjà de faire la liste des règles de grammaires en les regroupant par noms, si elles possèdent plusieurs définitions, et en affichant leurs paramètres. Une fois ces informations obtenues il faut maintenant les restituer sous XMind. Pour cela on crée un fichier temporaire .xmind auquel on ajoute au fur et à mesure les informations que l’on lit lors du décryptage de la grammaire. Comme on l’a dit, XMind est un logiciel basé sur Eclipse RCP (Rich Client Platform). Il ne devrait donc pas être très difficile d’ajouter un onglet permettant de visualiser le fichier XMind dans Éclipse.

Reprise de DebugLP Même organisation des fenêtres III - Besoin et spécification 2 – Débogueur DebugDocRead (1) Reprise de DebugLP Même organisation des fenêtres Différence entre debugLP et DebugDocRead : Manipulation des variables dans le code EPF Utilisation des points d’arrêts dans le code EPF Création d’une table de correspondance des prédicats

Reprise de DebugLP DebugDocRead: III - Besoin et spécification 2 – Débogueur DebugDocRead (2) Reprise de DebugLP DebugDocRead: meilleure interaction entre code EPF et lambda prolog Inclure image animée si possible

Améliorations des modules existants III - Besoin et spécification 2 – Débogueur DebugDocRead (3) Améliorations des modules existants Onglet Variable Affichage du nom, de la valeur et du type Ajout d’une barre de défilement Identifier les variables de même type Visionner entièrement une variable

Améliorations des modules existants III - Besoin et spécification 2 – Débogueur DebugDocRead (4) Améliorations des modules existants Onglet Editeur Inclusion du fichier Xmind Différenciation des types de fichiers

Modules ajoutés Onglet opérateur de position III - Besoin et spécification 2 – Débogueur DebugDocRead (5) Modules ajoutés Onglet opérateur de position Inclus dans le même module que les variables Même option que pour les variables Distinction de l’opérateur courant

Modules ajoutés Onglet image III - Besoin et spécification 2 – Débogueur DebugDocRead (6) Modules ajoutés Onglet image Interaction avec l’image dans DebugDocRead Changement de la résolution Affichage d’éléments sur l’image

Architecture Débogueur debugDocRead: III - Besoin et spécification Interface graphique Communication avec le programme à débuguer La partie débogage est déjà réalisé par DebugLP

III - Besoin et spécification 3 – Browser (1)

Méthodes développement IV - Méthodes développement Méthodes développement Remplir nos objectifs en 3 parties 2 versions de notre débogueur Développement du Browser en parallèle

Conclusion