Cours de Gnie Logiciel Avanc chapitre 6 MDA
- Slides: 38
Cours de Génie Logiciel Avancé chapitre 6 : MDA : Model-Driven Architecture Système de Transformation de modèles
La sérialisation de modèles : XMI
Le format d’échange normalisé : XMI • XMI (XML Metadata Interchange) permet l’échange de modèles sérialisés en XML. XMI si focalise sur les échanges de métadonnées conformes au MOF. • L’objectif de XMI est de permettre de sérialiser et d’échanger des métamodèles MOF et des modèles basés sur ces métamodèles sous forme de fichiers en utilisant des dialectes XML. Il permet aussi de sérialiser des métamodèles qui sont créés avec Ecore. Ceci est possible parce que XMI ne définit pas un dialecte XML unique, mais un ensemble de règles qui permettent de créer une DTD ou schéma XML pour différents métamodèles. • Ainsi, les métamodèles conformes à MOF ou à Ecore et leurs modèles respectifs peuvent être portables en utilisant XMI.
Le format d’échange normalisé : XMI • XMI (XML Metadata Interchange) permet de spécifier des règles de correspondances entre méta-modèle et DTD. • Tout ce qui est défini à partir du MOF (MM, MMM) est associé à un type de document XML • Les différents MM et MMM sont donc sérialisés avec la même DTD : celle du MOF • Les modèles sont sérialisés avec la DTD générée à partir de leur métamodèle. • XMI est basé sur le standard XML du W 3 C et possède deux composants de base: ▫ Les règles de production de DTD permettant de produire des DTDs pour des méta-données encodées en XMI. Ces DTD XMI serviront de spécification syntaxiques pour les documents XMI et permettront d'utiliser des outils XML génériques pour composer et valider les documents XMI. ▫ Les règles de production de documents XML pour encoder les méta-données dans un format XML. Ces règles de production pourront aussi être appliquées au décodage inverse de documents XMI pour obtenir les méta-données.
Le format d’échange normalisé : XMI Règles de génération de la DTD à partir du métamodèle : 1. Métaclasse -> balise de même nom + attribut id 2. Méta-attribut-> balise de même nom dans balise de la métaclasse 3. Méta-référence-> balise de même nom dans la balise de la métaclasse + id de la métaclasse référence 4. Méta-association -> balise de même nom avec id des métaclasses participant aux associations. Si l’association est navigable la balise doit être contenue dans la balise de la métaclasse source
Le format d’échange normalisé : XMI • XMI permet de spécifier un mapping précis du MOF sur XML ▫ Permettant l'échange de tout méta-modèle basé sur le MOF et des modèles correspondants ▫ Permettant la génération automatique de DTDs pour tout méta-modèle basé sur le MOF • Intérêt ▫ ▫ ▫ Echange (importation / exportation) de modèles Aucune compatibilité n'existait entre les divers formats Associé aux standards de l'OMG : XML et MOF Conçu pour pouvoir être transmis sous forme de flux de données Indépendant de toute plate-forme • Historique ▫ proposé en réponse à un RFP pour un format d'échange de modèles (SMIF : Serial Model Interchange Format) ▫ première proposition en juin 1998 ▫ révision en novembre 1998 ▫ soumis à standardisation en janvier 1999 ▫ adopté en février 2000 (version 1. 0)
Le format d’échange normalisé : XMI L'organisation générale XML UML Models Syntax and Encoding MOF Metadata Definitions & Management UML Metamodel Analysis & Design X M I CWM UML Models MOF UML Meta. Models Documents XML (Modèles) Validation UML 1. 1 DTD CWM DTD MOF 1. 1 DTD XML (Méta-Modèles) (une par méta-modèle)
Le format d’échange normalisé : XMI Compatibilité par conversion ou universelle
Le format d’échange normalisé : XMI Le format XMI • Basé sur XML • Un ensemble de tags prédéfini ▫ XMI. header, XMI. content, XMI. reference, XMI. extension ▫ … • Types standard • Utilise les espaces de noms XML • Extensible • Référence par identité • Spécification par les différences
Le format d’échange normalisé : XMI Utilisations de XMI : passerelles Outils de modélisation Outils de développement Base de données Code source XMI Repository Rapports
Le format d’échange normalisé : XMI
Le format d’échange normalisé : XMI <!-- Document Prologue, etc. --> <UML: Model xmi. id="a 1"> <name> Business </name> <owned. Element> <Class xmi. Id = "a 7"> <name> Customer </name> <feature> <Attribute> <name> id </name> <multiplicity> <XMI. field> 1 </ XMI. field> </multiplicity> <type> < Data. Type href = ”|a 247"/> </type> <!-- Custid --> </Attribute> <Operation><name> update </name> Business <scope xmi. value = "instance"/> </Operation> Customer </feature> </Class> id : Cust. Id </owned. Element> </UML: Model > update()
Le format d’échange normalisé : XMI
XMI, Etat actuel • XMI 1. 0 : DTD à partir de MOF 1. 3 (version de base) • XMI 1. 1 : DTD à partir de MOF 1. 4 : utilisation des namespace, sous partie de modèle • Subissent les lacunes des DTD (typage) • XMI 1. 2 : corrigent les erreurs, stable en cours de normalisation ISO • Extension de XMI 1. 2 pour intégrer des schéma XML • XMi 2. 0 : XML schema à partir de MOF 1. 4 • XMi 2. 1 : XML schema à partir de MOF 2. 0
Le format d’échange normalisé : XMI Bénéfices • Liberté de choix et d'utilisation des outils de modélisation • La différence de plate-formes n'est plus un obstacle à la collaboration • Description des modèles (UML, MOF), classes (Java, C++), bases de données et de tout type d'information de structure hiérarchique • L'automatisation de la génération de code est facilitée
Système de transformation de modèles : MDA et la transformation de modèles Les transformations de modèles préconisées par MDA sont : – CIM vers PIM – PIM vers PSM. • La génération de code n’est pas considérée comme une transformation de modèle. • MDA envisage aussi les transformations inverses : code vers PSM, PSM vers PIM et PIM vers CIM.
Système de transformation de modèles : Manipulation des modèles • Les modèles sont abstraits (représentation graphique) • Pour les manipuler : représentation concrète • MDA propose deux formes : ▫ Document textuel ▫ Objet d’un programme • Document textuel ▫ XMI : Standard XMI (XML Metadata Interchange) • Objet d’un programme ▫ JMI (Java Metadata Interface) : api défini par Sun ▫ EMF (Eclispe Modeling Framework) : utilise le modèle Ecore
Système de transformation de modèles : Manipulation des modèles Principe de fonctionnement : Générer automatiquement la structure de représentation des modèles (document XMI, objets java) à partir des métamodèles
Système de transformation de modèles
Système de transformation de modèles MOF MMa MMt MMb Mt Ma Mb Mb f (MMa, MMb, Mt, Ma)
Système de transformation de modèles Exemple : Modèle UML -> modèle Java
Système de transformation de modèles
Différentes formes de transformations Une transformation est une opération qui – Prend un modèle source en entrée – Fournit un modèle cible en sortie MMab sem Ma Tab Mb Transformation endogène MMa sem Ma Tab Mb Transformation exogène
Transformation Endogène Transformation endogène – Dans le même espace technologique – Les modèles source et cible sont conformes au même méta-modèle ● Transformation d'un modèle UML en un autre modèle UML MMab T sem source Ma sem cible Mb
Transformation Exogène Transformation exogène – Entre 2 espaces technologique différents – Les modèles source et cible sont conformes a des méta-modèles différents ● Transformation d'un modèle UML en programme Java ● Transformation d'un fichier XML en schéma de BDD MMa T sem source Ma MMb sem cible Mb
Modélisation d’une transformation, exemple Forme déclarative simplifiée
ATL : Atlas Transformation Language • • • Une réponse au MOF QVT INRIA, équipe ATLAS et LINA de Nantes Métamodèle et une syntaxe Approche hybride : déclarative et impérative Programme ATL : ▫ Notion de module, query, rules ▫ Module : ensemble de règles de parcours et de transformations utilisant OCL • Utilisable sous la forme d’un plugin Eclipse
Exemple de transformation Langage ATL Règles de transformation Transformation
UML 2 Java Méta-modèle UML
Exemple d'un méta-modèle Java élémentaire
Exemple d'un méta-modèle Java élémentaire Le nom du constructeur est celui de la classe qui le définit : Constructor self. name = self. Class. Or. Interface. name
Exemple d'un méta-modèle Java élémentaire Une méthode ne peut prendre deux paramètres de même nom : Method self. method. Signature. parameter->for. All(P 1, P 2) P 1. name <> P 2. name
Fragment d'un méta-modèle UML
Fragment d'un méta-modèle UML Un constructeur ne renvoie pas de résultat (pas de valeur retournée) : Context Constructor self. method. Signature. result. size() = 0
Un exemple : méta-modèle du langage Pascal
Un exemple : méta-modèle du langage C# MMs: - infra-syntaxique - "full syntaxique" - sémantique (heuristiques)
ATL, Exercice 1 Règles de correspondance : 1. A tout auteur correspond une personne 2. Le nom de la personne correspond au nom de l’auteur 3. Le prénom de la personne correspond au prénom de l’auteur
ATL, Exercice 2 Migration de modèle objet à un modèle relationnel
- Résumé chapitre par chapitre tirez pas sur le scarabée
- Le petit prince résumé simple
- Le petit prince chapitre 24 analyse
- Petit pays chapitre 1
- Mda analysis games
- Discipulado mda
- Visão do mda
- Mda uml
- Tanner scale
- Uml 2
- Disking of primary teeth
- Usahc montauban
- Omg mda
- Mechanics-dynamics-aesthetics
- Logiciel cartographie applicative
- Logiciel adeprio mémoire orthophonie
- Logiciel cdm
- Modèle en cascade génie logiciel
- Comparatif logiciel gestion de parc informatique
- Logiciel
- Modélisation parcours client
- Sacoche logiciel
- Angle de calage avion
- Larmarange
- Logiciel ebios
- Le protocole arp
- Passerelle logiciel
- Logiciel schéma cinématique
- Calibre logiciel
- Logiciel
- Anael paie
- Logiciel soon rexel
- Logiciel evrp
- Logiciel gabi
- Gingoles
- Arcadis logiciel de soins
- Comparatif hyperviseur
- Conception détaillé
- Pluralis.demat-flux.fr