150 likes | 242 Views
Interface de génération de blason. Projet STL M.GIBERT / M.LIPPMANN. Sommaire. L’héraldique Définitions Présentation Le projet Naissance Grammaire ? Fonctionnalités Architecture La réalisation Représentation Design Patterns Communication Bilan Métriques Conclusion.
E N D
Interface de génération de blason Projet STL M.GIBERT / M.LIPPMANN
Sommaire • L’héraldique • Définitions • Présentation • Le projet • Naissance • Grammaire ? • Fonctionnalités • Architecture • La réalisation • Représentation • Design Patterns • Communication • Bilan • Métriques • Conclusion Interface de génération de blason M.GIBERT / M.LIPPMANN
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
Création d’un blason Interface de génération de blason M.GIBERT / M.LIPPMANN
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
Grammaire : Blason Pavage Réduit Brochant Plain Simple Partition Interface de génération de blason M.GIBERT / M.LIPPMANN
Grammaire :Figure Chef • Position : • Accompagner : • Charger : Dextre Senestre Pointe Interface de génération de blason M.GIBERT / M.LIPPMANN
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
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
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
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
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
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
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
Interface de génération de blason M.GIBERT / M.LIPPMANN