Interface de génération de blason Projet STLM.GIBERT / M.LIPPMANN
Sommaire 1.L’héraldique A.Définitions B.Présentation 2.Le projet A.Naissance B.Grammaire ? C.Fonctionnalités D.Architecture 3.La réalisation A.Représentation B.Design Patterns C.Communication 4.Bilan A.Métriques B.Conclusion Interface de génération de blason M.GIBERT / M.LIPPMANN 2
L’héraldique ? Science du blason : – Identification d’un chevalier – Identification de la généalogie Intérêt : – Langage universel permettant une identification de l’origine de la personne entre plusieurs pays Interface de génération de blason M.GIBERT / M.LIPPMANN 3
Création d’un blason Interface de génération de blason M.GIBERT / M.LIPPMANN 4
Naissance du projet Projet précédent – Création d’une armoirie à partir de la description sous forme de S-expression – Ecrit en ML Objectif du nouveau logiciel – Ecrit en JAVA – Créer une armoirie par opérations successives sur une IHM – Générer la S-expression correspondant (possibilité de s’interfacer avec l’application ML) – Créer un moteur graphique plus riche Interface de génération de blason M.GIBERT / M.LIPPMANN 5
Grammaire : Blason Pavage Réduit Brochant Interface de génération de blason M.GIBERT / M.LIPPMANN 6 Plain Simple Partition
Grammaire :Figure Position : Accompagner : Charger : Interface de génération de blason M.GIBERT / M.LIPPMANN 7 DextreSenestre Pointe Chef
Fonctionnalités Fonctionnalités sur le blason – Création – Edition – Import / Export – Transformation en S-expression Fonctionnalités sur les figures – Chargement – Accompagnement – Agrandissement / Réduction – Décalage horizontal et / ou vertical Fonctionnalités sur l’armoirie – Prévisualisation – Export Jpeg ou SVG Interface de génération de blason M.GIBERT / M.LIPPMANN 8
Architecture Découpage fonctionnel – Un composant pour l’IHM – Un composant pour le moteur graphique – Un composant pour la description sous forme de S- expression. Réutilisation de composants – PSTL n°31 : « Réalisation SVG du blason » – Non-duplication du travail – Mise au point du protocole de communication Débouche sur : – 2 projets indépendants – 1 interface de communication Interface de génération de blason M.GIBERT / M.LIPPMANN 9
Représentation Nécessité d’une représentation : – Proche de la grammaire pré-établie – Exprimable en XML – Exprimable en S-expression – Utilisable dans une interface graphique Choix d’une représentation arborescente – Copie conforme de la grammaire – Traductible directement en S-expression et en XML – Prédéfini dans SWING (JTree) Définition des entités de base : les nœuds de l’arbre – Rapprochement du cours d’ILP – Réutilisation de concepts (design pattern, « compilation », explicitation) Interface de génération de blason M.GIBERT / M.LIPPMANN 10
Design pattern Application de divers motifs de conception – Fabrique (Blason, Figure) – Visiteurs Traduction d’un blason en XML Traduction d’un blason en S-expression Edition de nœuds du blason Représentation graphique d’un blason (JTree) – Observateurs (IHM) – Singleton (Journalisation des opérations successives) Utilisation combinée de visiteurs et de fabriques – Fabrication de Blasons et Figure abstraits via l’IHM – Un visiteur remplace des bouts de l’arbre – Indépendance entre l’IHM et les types concrets Interface de génération de blason M.GIBERT / M.LIPPMANN 11
Communication Projet composé de deux sous-projets indépendants – IHM – Moteur graphique Nécessité d’une interface entre les deux modules – Communication IHM / Moteur Graphique via un fichier XML – Communication Moteur Graphique / IHM via un fichier SVG Avantages : – Formats indépendants du langage et de la plate-forme – Subsitutabilité des composants Inconvénients : – Pas de souplesse, fichiers non paramétrables – Ecritures sur disque inutiles Interface de génération de blason M.GIBERT / M.LIPPMANN 12
Métriques Utilisation de métriques – Indicateurs de qualité (conception/réalisation) – Outils statistiques utilisés pour évaluer le coût de maintenance d’un projet (ou repartir de zéro). Mesures à l’aide d’outils spécialisés pour Java – Plugin Metrics pour Eclipse – Analyseur PMD Mise en évidence des sections « délicates » – Interprétation des données – Normalisation du code Interface de génération de blason M.GIBERT / M.LIPPMANN 13
Bilan Projet formateur – Métier inconnu auparavant – Cahier des charges inexistant – Premières versions demandées rapidement Travail en amont – Découpage fonctionnel – Identification de composants utilisables (moteur graphique) Travail en aval – Intégration – Mesures de qualité Interface de génération de blason M.GIBERT / M.LIPPMANN 14
Interface de génération de blason M.GIBERT / M.LIPPMANN 15