Cours de Gnie Logiciel Avanc chapitre 6 MDA

  • Slides: 38
Download presentation
Cours de Génie Logiciel Avancé chapitre 6 : MDA : Model-Driven Architecture Système de

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

La sérialisation de modèles : XMI

Le format d’échange normalisé : XMI • XMI (XML Metadata Interchange) permet l’échange de

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

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

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

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

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 Compatibilité par conversion ou universelle

Le format d’échange normalisé : XMI Le format XMI • Basé sur XML •

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

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

Le format d’échange normalisé : XMI <!-- Document Prologue, etc. --> <UML: Model 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

Le format d’échange normalisé : XMI

XMI, Etat actuel • XMI 1. 0 : DTD à partir de MOF 1.

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

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

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

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

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

Système de transformation de modèles MOF MMa MMt MMb Mt Ma Mb Mb f

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 Exemple : Modèle UML -> modèle Java

Système de transformation de modèles

Système de transformation de modèles

Différentes formes de transformations Une transformation est une opération qui – Prend un modèle

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

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

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

Modélisation d’une transformation, exemple Forme déclarative simplifiée

ATL : Atlas Transformation Language • • • Une réponse au MOF QVT INRIA,

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

Exemple de transformation Langage ATL Règles de transformation Transformation

UML 2 Java Méta-modèle UML

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

Exemple d'un méta-modèle Java élémentaire Le nom du constructeur est celui de la classe

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

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

Fragment d'un méta-modèle UML Un constructeur ne renvoie pas de résultat (pas de valeur

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 Pascal

Un exemple : méta-modèle du langage C# MMs: - infra-syntaxique - "full syntaxique" -

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

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

ATL, Exercice 2 Migration de modèle objet à un modèle relationnel