Table des matières. 2 Uses Cases 8. 3 Manuel de développement 9. 4 Code 10



Documents pareils
Voici quelques-unes des questions auxquelles répond cette présentation.

Cahier Technique. «Développer une application intranet pour la gestion des stages des étudiants» Antonin AILLET. Remi DEVES

Générer du code à partir d une description de haut niveau

Information utiles. webpage : Google+ : digiusto/

L ÉDITEUR DE COMPOSANTS A PROPOS DE LA TRADUCTION.

Formats d images. 1 Introduction

Chapitre 22 Optimisation pour diffusion à l'écran, pour le web

XML, PMML, SOAP. Rapport. EPITA SCIA Promo janvier Julien Lemoine Alexandre Thibault Nicolas Wiest-Million

Les outils de dessin. Sweet Home 3D 1 EAI NEWS

Les images et les animations sur le web. Guérineau Chloé BTS2 Année 2001/2012

Utiliser le logiciel Photofiltre Sommaire

Réalisation de cartes vectorielles avec Word

4D v11 SQL BREAKING THE LIMITS * Les nouveautés

Conception des bases de données : Modèle Entité-Association

Gestion des différentes tailles d écran

Développer des Applications Internet Riches (RIA) avec les API d ArcGIS Server. Sébastien Boutard Thomas David

PROSOP : un système de gestion de bases de données prosopographiques

La visio-conférence holographique : Pourquoi? Comment?

Supports. Images numériques. notions de base [1]

DSL. Domain Specific Language. À l'aide des technologies Eclipse Modeling. Goulwen Le Fur Le 23 novembre 2012

Bien programmer. en Java ex. couleur. Avec plus de 50 études de cas et des comparaisons avec C++ et C# Emmanuel Puybaret.

Jade. Projet Intelligence Artificielle «Devine à quoi je pense»

TD : Codage des images

MapReduce. Malo Jaffré, Pablo Rauzy. 16 avril 2010 ENS. Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril / 15

modélisation solide et dessin technique

RTDS G3. Emmanuel Gaudin

Initiation au dessin Bitmap

Université de Bangui. Modélisons en UML

Gestion Électronique de Documents et XML. Master 2 TSM

Visual Paradigm Contraintes inter-associations

TP2 : Client d une BDD SqlServer

Mercredi 15 Janvier 2014

L interface Outils, palettes, règles, repères, grille Paramétrer les préférences

les techniques d'extraction, les formulaires et intégration dans un site WEB

Ateliers Bureautique et Internet

CalDav Manager : Gestionnaire d emploi du temps

Malgré son aspect spartiate, Freeplane offre de nombreuses fonctionnalités en particulier dans le domaine de la diffusion des cartes sur le Web.

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

Support de formation Notebook

Langage HTML (2 partie) <HyperText Markup Language> <tv>lt La Salle Avignon BTS IRIS</tv>

Modelio by Modeliosoft

TP1 : Initiation à Java et Eclipse

Système de Virtualisation pour une application de gestion commerciale d entreprise

Importation et exportation de contenu

Rapport de Synthèse. Création d un Générateur de modèle PADL pour le langage C++ Sébastien Colladon

Chapitre VI- La validation de la composition.

Chaîne opératoire de réalisation d une base de données. ANF «Comment concevoir une base de données» (29-30/01/2015)

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Découverte du logiciel ordinateur TI-n spire / TI-n spire CAS

Intégrer des médias. Plateforme e-tourisme. demo.minisites.encharentemaritime.com

Java Licence Professionnelle Cours 7 : Classes et méthodes abstraites

DotNet. Plan. Les outils de développement

Didier MOUNIEN Samantha MOINEAUX

PostgreSQL. Formations. Catalogue Calendrier... 8

BIRT (Business Intelligence and Reporting Tools)

ÉdIteur officiel et fournisseur de ServIceS professionnels du LogIcIeL open Source ScILab

!!! La solution bureautique collaborative 100% gratuite!!!

Web Tier : déploiement de servlets

Catégories de format d'optimisation

Devenez un véritable développeur web en 3 mois!

INTRODUCTION AU CMS MODX

OpenText Content Server v10 Cours (ex 223)

Sommaire. G. Pujolle, F. Ravat, C. Soulé-Dupuy, G. Zurfluh

XML par la pratique Bases indispensables, concepts et cas pratiques (3ième édition)

INFO 2 : Traitement des images

Intégration de l interface graphique de Ptidej dans Eclipse

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Dans l Unité 3, nous avons parlé de la

SQL SERVER 2008, BUSINESS INTELLIGENCE

Accès à l'information XML par des requêtes XQuery au travers de son XSchema

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Architecture générale des interfaces graphiques. IHM: Fondements des Interfaces Graphiques. Applications. Outils de construction d interfaces

Initiation à linfographie

Développement mobile MIDP 2.0 Mobile 3D Graphics API (M3G) JSR 184. Frédéric BERTIN

Adobe Photoshop. Bonnes pratiques pour une utilisation professionelle CHAPITRE 7

GOL502 Industries de services

Business Process Execution Language

PostgreSQL. Formations. Calendrier... 14

Par Daniel FAIVRE WebMapper ... Publication de cartes pour Internet avec ArcGis

Tutoriel QSOS. Version /02/2013

Chapitre 5 LE MODELE ENTITE - ASSOCIATION

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Générer un PDF avec polices incorporées

ProSimPlus HNO3 Résumé des nouvelles fonctionnalités, décembre 2008

Patrons de Conception (Design Patterns)

BULK SMS Envoi en masse d un message texte moyennant un téléphone mobile (GSM)

Présentation. Au programme. Fonctionnement. A l issue de ce module vous devriez...

LANDPARK ACTIVE DIRECTORY OPEN/LDAP

Comment échanger des données (fichiers) en format «STANDARD» lisibles par tous, quelque soit le programme et la version utilisés

Manuel Utilisateur Version 1.6 Décembre 2001

Comment utiliser FileMaker Pro avec Microsoft Office

Introduction à. Oracle Application Express

LANDPARK COMMENT ÉTABLIR RAPIDEMENT VOS RAPPORTS

Arbres binaires de recherche

La Gestion Électronique de Documents spécialement conçue pour les Experts Comptables

Documentation Administrateur

Rapport de Projet Béatrice Frey et Cyril Crassin Printemps Projet Fourmis. Université de Technologie de Belfort-Montbéliard

Modules Multimédia PAO (Adobe)

4. SERVICES WEB REST 46

Transcription:

Table des matières 1 Choix techniques 2 1.1 Enregistrement au format XML......................... 2 1.1.1 Introduction............................... 2 1.1.2 De Java à XML.............................. 2 1.1.3 Retour à Java............................... 2 1.2 Rendu graphique................................. 3 1.3 Exportation des diagrammes.......................... 4 1.3.1 Exportation en PNG........................... 4 1.3.2 Exportation en SVG........................... 4 1.4 Génération SQL................................. 5 1.5 Génération JACK................................ 6 1.5.1 Event................................... 6 1.5.2 Plan.................................... 6 1.5.3 Agent................................... 7 2 Uses Cases 8 3 Manuel de développement 9 4 Code 10 1

Chapitre 1 Choix techniques Le but de ce chapitre est de présenter quelques solutions et choix techniques utilisés dans DesCartes Architect. Ces solutions passent souvent par l utilisation de librairies opensource. 1.1 Enregistrement au format XML 1.1.1 Introduction L extensible Markup Language (XML) est un méta-langage permettant de décrire toutes sortes de données. Son but est de structurer l information afin d en permettre un échange aisé. XML se base sur une grammaire afin d assurer que la structure de données est cohérente. 1.1.2 De Java à XML Pour convertir une classe Java au format XML, on pourrait simplement se servir de chaînes de caractères que l on créerait à la volée. Cette manière est somme toute assez simple à mettre en place, mais dès lors que le document devient un peu complexe on risque des incohérences dans notre fichier XML. Castor Une manière plus élégante pour créer des documents XML passe par l utilisation de l outil Castor. Castor est un logiciel Open Source permettant de lier des document XML à des classes Java ou même SQL. Concrètement, Castor se sert d une grammaire XML afin de créer les classes Java correspondantes. Ensuite, il ne nous reste plus qu à instancier ces classes et de remplir ses attributs à l aide de méthodes générées par Castor. Pour terminer, on appelle une fonction spécifique de la classe racine qui crée réelement notre fichier XML. 1.1.3 Retour à Java Avoir créé un fichier XML à partir de nos données Java n a pas grand intéret si l on ne peut pas faire l inverse, à savoir ouvrir ce fichier XML afin de reconstruire nos classes Java et ainsi permettre la réédition de notre fichier. 2

Pour interpreter le fichier XML, on pourrait simplement implémenter un parseur 1 qui parcourrait le fichier et recréerait ainsi nos classes. Mais en cherchant un peu sur internet, on découvre très vite qu il existe déjà des librairies Java qui permettent aisément de parcourrir un document XML. JDom JDom est une librairie qui permet de modéliser, de parcourir et de manipuler un fichier XML. Elle se distingue par sa simplicité d utilisation. JDom fournit une représentation en mémoire du fichier XML sous la forme d un arbre d objets. Bien entendu, JDom fournit aussi les fonctions de parcours et de récupération d attributs. 1.2 Rendu graphique Graphics2D est une librairie Java qui offre la possibilité de dessiner des formes simple sur certains composants graphiques. Ellipses, rectangles, lignes... les formes ainsi dessinées sont vectorielles. Un dessin vectoriel n est pas un ensemble de pixels, mais seulement des points séparés par des distances relatives. Les dessins vectoriels sont donc recalculées à chaque rafraichissement du composant sur lequel ils sont dessinés. L intérêt premier des dessins vectoriels est qu ils peuvent être redimensionnés à volonté sans aucune déformation. Si cette méthode convient pour des formes simples, il en va tout autrement lorsque l image que l ont veut dessiner devient un peu complexe. La solution serait de pouvoir importer des dessins vectoriels. Scalable Vector Graphics Le SVG est une grammaire XML permettant de décrire un ensembles de graphiques vectoriels. Plus précisément, SVG gère quelques formes géométriques de base (ellipses, rectangles,...). Ce qui en fait ici un élément intéressant est sa gestion des chemins. En effet, ces chemins utilisent des courbes de Bézier 2, ce qui permet d obtenir n importe quelle forme. Pour dessiner des formes vectorielles complexes au format SVG, on peut se servir d un éditeur tel que inkscape. Outre l édition de dessins vectoriels, ce logiciel permet de transformer une image bitmap en image SVG. Du SVG en Java Pour pouvoir importer des images au format SVG dans notre programme Java, nous devons faire appel à une librairie tierce. La librairie la plus aboutie dans ce domaine est celle développée par Apache, elle se nomme Batik. Batik interprète le fichier SVG et dessine l image associée à l aide de Graphics2D. Mais ce n est pas tout, cette librairie permet aussi d appliquer toute sortes de transformations sur notre image vectorielle, comme par exemple de lui appliquer un zoom ou une rotation. 1 Parseur signifie ici une fonction permettant de reconnaitre des mots clés 2 Les courbes de Bézier sont des courbes polynomiales paramétriques décrites pour la première fois en 1962 par l ingénieur français Pierre Bézier qui les utilisa pour concevoir des pièces d automobiles à l aide d ordinateurs. 3

1.3 Exportation des diagrammes Afin d exporter les différents diagrammes produits dans d autres documents, tel que Open Office ou Microsoft Word par exemple, il faut trouver des formats standards pouvant afficher correctement des diagrammes. 1.3.1 Exportation en PNG La première solution trouvée a été l exportation au format PNG. Le format PNG pour Portable Network Graphics mais aussi pour l acronyme récursif PNG s Not Gif a été mis au point afin de fournir une alternative libre au format GIF, qui lui est propriétaire. En parcourant la documentation du format PNG, on découvre facilement qu il n a rien a envier à son grand frère le GIF. De Graphics2D à PNG Lorsque l on désire dessiner sur des composants Swing 3, on passe par le composant Graphics2D du dit composant Swing. Les diagrammes que nous voulons exporter sur une image PNG, suivent cette règle ; ils sont dessinés sur un composant Swing. Swing offre la possibilité de récupéré ce composant Graphics2D et d en dessiner le contenu sur d autres composants. Dès lors, il suffit de créer une image vide en mémoire, et de dessiner notre composant Swing dessus. 1.3.2 Exportation en SVG Exporter un diagramme dans un format vectoriel, offre l avantage de pouvoir redimensionner ce diagramme à l infini. De cette façon, quelque soit le support ou la taille d impression, le diagramme ne sera jamais déformé et donc toujours lisible. De Graphics2D à SVG Comme présenté dans la section Rendu Graphique, les dessins tracés sur un composant Graphics2D sont vectoriels. La librairie Batik (utilisée pour l importation de dessins vectoriels) offre un composant permettant de générer un document au format SVG. Ce composant se présente comme un composant Graphics2D sur lequel il est possible de peindre. Son utilisation est facile, il suffit de peindre sur ce composant, et celui-ci génere le code SVG correspondant. 3 Swing est une librairie Java offrant des widgets graphiques 4

1.4 Génération SQL La génération de tables SQL permet de créer une base de données sur base du design agent. Un agent pouvant être représenté comme une classe dans le formalisme UML, il suffit d appliquer la transformation UML vers SQL sur nos agents. Ainsi les agents deviennent des tables et leurs attributs deviennent les attributs de table. Un attribut identifiant est ajouté à notre table, afin que celle-ci contienne une cléf primaire qui pourra être utilisée dans les cas suivants. Multiplicité..1 d un coté de l association Lorsqu on rencontre une association présentant une multiplicité du type..1 d un coté, l identifiant de l agent qui est associé à la cardinalité..1 devient une cléf étrangère dans l autre agent. Présence de multiplicité..n de chaque coté de l association Dans ce cas, l association se transforme en une table. La table ainsi créée contient comme clef étrangère les identifiants des 2 agents associés. On peut éventuellement ajouter des attributs dans la table associative. Présence d une généralisation Ici encore, chacuns des agents est transformé en table. L identifiant de l agent dont héritent les autres agents est transformé en clef étrangère dans ceux-ci. Une autre solution consiste à créer une seule table contenant tous les attributs de chaques agents avec des exclusions de groupes d attributs. 5

1.5 Génération JACK La génération de squelettes de classes JACK se fait pour trois types d éléments ; les Agents, les Plans et les Events. Pour générer ces squelettes, on crée des chaines de caractères à l aide des différents attributs définis avec l éditeur Structural Editor. Voici les structures générées pour chacun de ces types d éléments 1.5.1 Event 1 event EVENT_NAME extends EVENT_TYPE { 2 FOCUS as METHOD_TYPE() 3 } 1.5.2 Plan 1 public plan PLAN_NAME extends Plan { 2 3 // Events 4 #EVENT_FOCUS event EVENT_NAME eventatt; 5 6 // Generic methods 7 #reasoning method methodname(parameter list){ 8 // Body of a reasoning method 9 } 10 #reasoning method pass(){ 11 // Post-processing and clean up steps when the plan has succeeded 12 } 13 #reasoning method fail(){ 14 // Post-processing and clean up steps when the plan has failed 15 } 16 static boolean relevant (EventType eventref){ 17 // Code to determine when the plan is relevant to eventref 18 } 19 context(){ 20 // Logical condition to determine which plan instances are applicable 21 } 22 body(){ 23 // The plan body - the actual steps performed when the plan is executed 24 } 25 } 6

1.5.3 Agent 1 agent AGENT_NAME extends Agent { 2 3 // Events 4 #EVENT_FOCUS event EVENT_NAME eventatt; 5 6 // Plans 7 #uses plan PLAN_NAME; 8 9 // Attributes 10 ATTRIBUTE_TYPE ATTRIBUTE_NAME; 11 12 // Constructor 13 public AGENT_NAME(String name) { 14 super(name); 15 } 16 17 // Methods 18 METHOD_VISIBILITY METHODE_RETURN_TYPE METHOD_NAME (PARAMETER_TYPE PARAMETER_NAME){ 19 } 20 } 7

Chapitre 2 Uses Cases 8

Chapitre 3 Manuel de développement Cette partie s adresse aux développeurs qui feront évoluer DesCartes Architect. Rédigé en anglais, ce chapitre présente la création d un nouvel éditeur, sur base de l éditeur de uses cases. 9

Chapitre 4 Code 10