180 likes | 471 Views
Interface de génération de blason. Projet STL M.GIBERT / M.LIPPMANN. Sommaire. L’héraldique Le projet Naissance Grammaire ? Fonctionnalités Architecture La réalisation Représentation Design Patterns Communication Bilan Métriques Conclusion. L’héraldique ?. Science du blason :
E N D
Interface de génération de blason Projet STL M.GIBERT / M.LIPPMANN
Sommaire • L’héraldique • 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 / faits d’armes, etc… • Intérêt : • Langage universel permettant une identification « rapide » de la personne 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 Brochant Plain Simple Partition Interface de génération de blason M.GIBERT / M.LIPPMANN
Grammaire :Figure Chef • Position : • Nombre : Dextre Senestre Pointe Interface de génération de blason M.GIBERT / M.LIPPMANN
Grammaire :Figure • Accompagner : • Charger : Interface de génération de blason M.GIBERT / M.LIPPMANN
Processus de création d’un blason Interface de génération de blason M.GIBERT / M.LIPPMANN
S-Expression (Or ( Accompagné (charge ( fasce sable ) (molette gueules )) ( en Chef Senestre ( molette argent )))) 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
Aperçu 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 » • Partage de composants • Mise au point du protocole de communication (travail collaboratif) • Débouche sur : • 2 projets indépendants • 1 interface de communication Interface de génération de blason M.GIBERT / M.LIPPMANN
Représentation du blason • 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 • Substituabilité des composants 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 • Evaluation du coût de maitenance • 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 • Découverte du métier (héraldique) • Ecriture d’un cahier des charges • Premières versions demandées rapidement • Travail en amont • Découpage fonctionnel • Identification de composants utilisables • 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