Approche MDA pour la transformation d’un modèle UML en un...

42
Approche MDA pour la transformation d’un modèle UML en un schéma CWM Antoine Wiedemann, Jean-Yves Lafaye, Marie-Christine Lafaye, Georges Louis

Transcript of Approche MDA pour la transformation d’un modèle UML en un...

Page 1: Approche MDA pour la transformation d’un modèle UML en un …perso.univ-lr.fr/awiedema/documents/SoutenanceAntoine.pdf · 2006. 11. 29. · Approche MDA pour la transformation

Approche MDA pour la transformation d’unmodèle UML en un

schéma CWM

Antoine Wiedemann, Jean-Yves Lafaye, Marie-Christine Lafaye,

Georges Louis

Page 2: Approche MDA pour la transformation d’un modèle UML en un …perso.univ-lr.fr/awiedema/documents/SoutenanceAntoine.pdf · 2006. 11. 29. · Approche MDA pour la transformation

Plan

• Introduction• Approche MDA (Model Driven Architecture)

• ATL (Atlas Transformation Language)

• Expérience d’implémentation• Bilan

Page 3: Approche MDA pour la transformation d’un modèle UML en un …perso.univ-lr.fr/awiedema/documents/SoutenanceAntoine.pdf · 2006. 11. 29. · Approche MDA pour la transformation

Plan

• Introduction• Approche MDA (Model Driven Architecture)

• ATL (Atlas Transformation Language)

• Expérience d’implémentation• Bilan

Page 4: Approche MDA pour la transformation d’un modèle UML en un …perso.univ-lr.fr/awiedema/documents/SoutenanceAntoine.pdf · 2006. 11. 29. · Approche MDA pour la transformation

• Conception de base de données• Les AGL existants présentent des

inconvénients:– Non respect de la forme normale – Manque d’ergonomie

• Une nouvelle méthode– Normalisation_L– Un processus complet

Introduction MDA ATL Implémentation Bilan

Page 5: Approche MDA pour la transformation d’un modèle UML en un …perso.univ-lr.fr/awiedema/documents/SoutenanceAntoine.pdf · 2006. 11. 29. · Approche MDA pour la transformation

CalculsAnnotations

Génération de code SQL

Calculs

Diagramme de classe

Schéma relationnelTransformation

BDD

Introduction MDA ATL Implémentation Bilan

Choix

Manuel

Automatique

Processus

Page 6: Approche MDA pour la transformation d’un modèle UML en un …perso.univ-lr.fr/awiedema/documents/SoutenanceAntoine.pdf · 2006. 11. 29. · Approche MDA pour la transformation

Plan

• Introduction• Approche MDA (Model Driven Architecture)

• ATL (Atlas Transformation Language)

• Expérience d’implémentation• Bilan

Page 7: Approche MDA pour la transformation d’un modèle UML en un …perso.univ-lr.fr/awiedema/documents/SoutenanceAntoine.pdf · 2006. 11. 29. · Approche MDA pour la transformation

• Model Driven Architecture (Standard OMG) - 2001

• Model Driven Engineering – 1980’s

• Ingénierie Dirigée par les Modèles (IDM)

Introduction ATL Implémentation BilanMDA

Page 8: Approche MDA pour la transformation d’un modèle UML en un …perso.univ-lr.fr/awiedema/documents/SoutenanceAntoine.pdf · 2006. 11. 29. · Approche MDA pour la transformation

• Modèle: « Abstraction, vue incomplète, simplification, description, représentation de quelque chose »

Terrain Carte

Évolution de valeurs Modèle financier

Suite d’opérations, de calculs

Programme informatique

Est représenté par

Introduction ATL Implémentation BilanMDA

Page 9: Approche MDA pour la transformation d’un modèle UML en un …perso.univ-lr.fr/awiedema/documents/SoutenanceAntoine.pdf · 2006. 11. 29. · Approche MDA pour la transformation

• Metamodèle: « Langage de définition d’un modèle »

Carte Légende

Modèle financier Langage mathématique

Programme informatique

Grammaire Java, C#, Smalltalk…(documentation)

Est conforme à

Introduction ATL Implémentation BilanMDA

Page 10: Approche MDA pour la transformation d’un modèle UML en un …perso.univ-lr.fr/awiedema/documents/SoutenanceAntoine.pdf · 2006. 11. 29. · Approche MDA pour la transformation

• Meta-metamodèle : « description du langage utilisé pour l’expression d’un metamodèle »

Légende, échelle

Langage mathématique

Grammaire Java, C#, Smalltalk… (documentation)

Langage naturel ouLangage spécifique àla définition de méta-modèles.

Est conforme à

Introduction ATL Implémentation BilanMDA

Page 11: Approche MDA pour la transformation d’un modèle UML en un …perso.univ-lr.fr/awiedema/documents/SoutenanceAntoine.pdf · 2006. 11. 29. · Approche MDA pour la transformation

… …

Meta-meta-metamodèle M4

Meta-metamodèle M3

Metamodèle M2

modèle M1

réalité M0

Est conforme à

Est conforme à

Est représenté par

Est conforme à

Est conforme à

Introduction ATL Implémentation BilanMDA

Page 12: Approche MDA pour la transformation d’un modèle UML en un …perso.univ-lr.fr/awiedema/documents/SoutenanceAntoine.pdf · 2006. 11. 29. · Approche MDA pour la transformation

Meta-metamodèle M3 MOF

Metamodèle M2 UML 2.0

Diagramme de classes

Système

modèle M1

réalité M0

Est conforme à

Est conforme à

Est représenté par

Est conforme à

Introduction ATL Implémentation BilanMDA

Page 13: Approche MDA pour la transformation d’un modèle UML en un …perso.univ-lr.fr/awiedema/documents/SoutenanceAntoine.pdf · 2006. 11. 29. · Approche MDA pour la transformation

Transfo PIM

• Séparer les réflexions de conception des tâches d’implantation.

• Avec des modèles:

CIM: Computation Independant Model

CIM

PIM: Platform Independant Model

Introduction ATL Implémentation BilanMDA

Page 14: Approche MDA pour la transformation d’un modèle UML en un …perso.univ-lr.fr/awiedema/documents/SoutenanceAntoine.pdf · 2006. 11. 29. · Approche MDA pour la transformation

TransfoTransfo 1 PSMPSM 1

• Séparer les réflexions de conception des tâches d’implantation.

• Avec des modèles:

PIM: Platform Independant Model

PIM

PSM: Platform Specific Model

PSM 2Transfo 2

PSM 3Transfo 3

Introduction ATL Implémentation BilanMDA

Page 15: Approche MDA pour la transformation d’un modèle UML en un …perso.univ-lr.fr/awiedema/documents/SoutenanceAntoine.pdf · 2006. 11. 29. · Approche MDA pour la transformation

Introduction ATL Implémentation BilanMDA

Page 16: Approche MDA pour la transformation d’un modèle UML en un …perso.univ-lr.fr/awiedema/documents/SoutenanceAntoine.pdf · 2006. 11. 29. · Approche MDA pour la transformation

Manuel

CalculsAnnotations

Calculs

Génération de code SQL BDD

Choix

Introduction ATL Implémentation BilanMDA

Diagramme de classe

Schéma relationnelTransformation

Automatique

Processus

Page 17: Approche MDA pour la transformation d’un modèle UML en un …perso.univ-lr.fr/awiedema/documents/SoutenanceAntoine.pdf · 2006. 11. 29. · Approche MDA pour la transformation

:Table :Column

:Column:Column

:Column

:Column

:Column

:Column

:Column

:PrimaryKey

:UniqueConstraint :UniqueConstraint

:UniqueConstraint

/ownedElement

/uniqueKey/uniqueKey

isNullable=columnNullable

isNullable=columnNullable

Name=SOUT.ID_STGisNullable=columnNullable

/uniqueKey

Name=Stage

/namespace

Name=Début

col

/feature

/uniqueKey /ownedElement

/namespace

/feature

Name=Tuteur

Name=Fin

col

colName=Numéro

col

/feature

Name=ID_PROP

col

/ownedElement/uniqueKey

/feature

Name=ID_STG col

/namespace

Name=Sujet

col

col/namespace

/ownedElement

/feature

Stage:Classe_persistante

Sujet:Attribut

Debut:Attribut

Fin:Attribut

Un:Expression

Zéro:Expression

Id_STG:Attribut

Alias=STG

name=Id_STG

propriétaire

attribut

name=Stage

name=Sujet

name=Debut

attribut

propriétaire

attribut

propriétaire

name=Fin

propriétaireattribut

symbol=1

upperValue

symbol=0

lowerValue

Introduction MDA ATL Implémentation Bilan

Stage

Id_STG : integerSujet : stringDébut : charFin [0..1] : char

Stage

Id_STG : integerSujet : stringDebut : charNuméro : integerID_PROP : integerSOUT.ID_STG : integerTuteur : stringFin : char

{Unique}

{Unique}

{Unique}

Id_STG : integerSujet : stringDebut : charNuméro : integerID_PROP : integerSOUT.ID_STG : integerTuteur : stringFin : char

+ Clé étrangères

Page 18: Approche MDA pour la transformation d’un modèle UML en un …perso.univ-lr.fr/awiedema/documents/SoutenanceAntoine.pdf · 2006. 11. 29. · Approche MDA pour la transformation

Diagramme de classe

UML

Schéma relationnel

CWM

Conforme à

Conforme à

Spécificationtransformation

M1

M2

MOF

Conforme à

Conforme à

M3

Transformation

Introduction ATL Implémentation BilanMDA

Page 19: Approche MDA pour la transformation d’un modèle UML en un …perso.univ-lr.fr/awiedema/documents/SoutenanceAntoine.pdf · 2006. 11. 29. · Approche MDA pour la transformation

Plan

• Contexte• Approche MDA (Model Driven Architecture)

• ATL (Atlas Transformation Language)

• Expérience d’implémentation• Bilan

Page 20: Approche MDA pour la transformation d’un modèle UML en un …perso.univ-lr.fr/awiedema/documents/SoutenanceAntoine.pdf · 2006. 11. 29. · Approche MDA pour la transformation

• Langage de programmation de transformation de modèle

• Développé à l’INRIA de Nantes sur la plateforme eclipse

• Réponse à la proposition RFP QVT (Query ViewTransformation)

• De gros effort de promotion, une foule d’exemples disponibles

• En exploitation dans l’industrie (France Telecom, Thales…)

Introduction MDA Implémentation BilanATL

Page 21: Approche MDA pour la transformation d’un modèle UML en un …perso.univ-lr.fr/awiedema/documents/SoutenanceAntoine.pdf · 2006. 11. 29. · Approche MDA pour la transformation

Diagramme de classe

UML

Schéma relationnel

CWM

Conforme à

Conforme à

Spécificationtransformation

M1

M2

MOF

Conforme à

Conforme à

M3

Transformation

Introduction MDA Implémentation BilanATL

Page 22: Approche MDA pour la transformation d’un modèle UML en un …perso.univ-lr.fr/awiedema/documents/SoutenanceAntoine.pdf · 2006. 11. 29. · Approche MDA pour la transformation

Diagramme de classe

UML

Schéma relationnel

CWM

Conforme à

Conforme à

Spécificationtransformation

M1

M2

MOF

Conforme à

Conforme à

M3

Transformation

fichier xmi .ecore

fichier xmi .ecoreFichier .atl

Ecore (intégré à eclipse à travers EMF)

Exécution

Introduction MDA Implémentation BilanATL

fichier xmi .ecore

fichier xmi .ecore

Page 23: Approche MDA pour la transformation d’un modèle UML en un …perso.univ-lr.fr/awiedema/documents/SoutenanceAntoine.pdf · 2006. 11. 29. · Approche MDA pour la transformation

Diagramme de classe

UML

Schéma relationnel

CWM

Conforme à

Conforme à

Spécificationtransformation

M1

M2

MOF

Conforme à

Conforme à

M3

Transformation

fichier xmi .ecore

fichier xmi .ecoreFichier .atl

Ecore (intégré à eclipse à travers EMF)

Exécution

Introduction MDA Implémentation BilanATL

fichier xmi .ecore

fichier xmi .ecore

Page 24: Approche MDA pour la transformation d’un modèle UML en un …perso.univ-lr.fr/awiedema/documents/SoutenanceAntoine.pdf · 2006. 11. 29. · Approche MDA pour la transformation

Fichier xmi .ecore

Fichier texte .km3

Interprété par l’éditeur eclipse

« Injecté » dans eclipse

Introduction MDA ATL Implémentation BilanSpécification des métamodèles (niveau M2)

Page 25: Approche MDA pour la transformation d’un modèle UML en un …perso.univ-lr.fr/awiedema/documents/SoutenanceAntoine.pdf · 2006. 11. 29. · Approche MDA pour la transformation

Fichier xmi .ecore

Introduction MDA Implémentation BilanATLSpécification des modèles (niveau M1)

Page 26: Approche MDA pour la transformation d’un modèle UML en un …perso.univ-lr.fr/awiedema/documents/SoutenanceAntoine.pdf · 2006. 11. 29. · Approche MDA pour la transformation

Interprété et éditable dans

eclipse

Introduction MDA Implémentation BilanATLSpécification des modèles (niveau M1)

Page 27: Approche MDA pour la transformation d’un modèle UML en un …perso.univ-lr.fr/awiedema/documents/SoutenanceAntoine.pdf · 2006. 11. 29. · Approche MDA pour la transformation

--Crée une table pour chaque classe persistante.rule Classe_Table {

from classe : MDC!ClassePersistanteto t : MLRnL!Table (

name <- classe.name,isTemporary <- false

)} Ce que je cherche

Ce que je crée en correspondance

Formulation déclarative

Introduction MDA Implémentation BilanATL

Page 28: Approche MDA pour la transformation d’un modèle UML en un …perso.univ-lr.fr/awiedema/documents/SoutenanceAntoine.pdf · 2006. 11. 29. · Approche MDA pour la transformation

--Crée une table pour chaque classe persistante.rule Classe_Table {

from classe : MDC!ClassePersistanteto t : MLRnL!Table (

name <- classe.name,isTemporary <- false

)}

Noms de variableType des variables

Introduction MDA Implémentation BilanATL

Page 29: Approche MDA pour la transformation d’un modèle UML en un …perso.univ-lr.fr/awiedema/documents/SoutenanceAntoine.pdf · 2006. 11. 29. · Approche MDA pour la transformation

--Crée une table pour chaque classe persistante.rule Classe_Table {

from classe : MDC!ClassePersistanteto t : MLRnL!Table (

name <- classe.name,isTemporary <- false

)}

Metamodèle source

Metamodèle cible

Element du metamodèle source

Element du metamodèlecible

Introduction MDA Implémentation BilanATL

Page 30: Approche MDA pour la transformation d’un modèle UML en un …perso.univ-lr.fr/awiedema/documents/SoutenanceAntoine.pdf · 2006. 11. 29. · Approche MDA pour la transformation

--Crée une table pour chaque classe persistante.rule Classe_Table {

from classe : MDC!ClassePersistanteto t : MLRnL!Table (

name <- classe.name,isTemporary <- false

)}

Attributs de tAffectation d’une valeur

Introduction MDA Implémentation BilanATL

Page 31: Approche MDA pour la transformation d’un modèle UML en un …perso.univ-lr.fr/awiedema/documents/SoutenanceAntoine.pdf · 2006. 11. 29. · Approche MDA pour la transformation

--Crée une table pour chaque classe persistante.rule Classe_Table {

from classe : MDC!ClassePersistanteto t : MLRnL!Table (

name <- classe.name,isTemporary <- false

)}

Navigation vers l’attribut name de la variable classe (OCL)

Introduction MDA Implémentation BilanATL

Page 32: Approche MDA pour la transformation d’un modèle UML en un …perso.univ-lr.fr/awiedema/documents/SoutenanceAntoine.pdf · 2006. 11. 29. · Approche MDA pour la transformation

Plan

• Contexte• Approche MDA• ATL• Expérience d’implémentation• Bilan

Page 33: Approche MDA pour la transformation d’un modèle UML en un …perso.univ-lr.fr/awiedema/documents/SoutenanceAntoine.pdf · 2006. 11. 29. · Approche MDA pour la transformation

<<persistent_class>>

{Alias(SOUT)}Soutenance

<<persistent_class>>

{Alias(ENT)}Entreprise

<<persistent_class>>

{Alias(ENS)}Enseignant

<<persistent_class>>

{Alias(PROP)}Proposition

<<persistent_class>>

{Alias(ETUD)}Etudiant

<<persistent_class>>

{Alias(STG)}Stage

K1_ENT <<ID>>{Siret}

K1_SOUT <<ID>>{K_STG}

K1_PROP <<ID>>{ID_PROP}

K1_STG <<ID>>{Id_STG}

K2_STG <<ID>>{K_ETUD, Début}

<<persistent_class>>

{Alias(PERS)}Personne

K1_PERS {Id_PERS}

Raison_sociale : undefined Date : undefined

0..1

Id_PERS : undefinedNom : undefinedAdresse : undefined

tuteur

0..1Numéro : undefined1

**

Siret : undefined

Sujet : undefinedLieu : undefinedDate : undefined

entreprise1

*

1Id_STG : undefinedSujet : undefinedDébut : undefinedFin [0..1] : undefined

0..1

1

Adresse : undefined Salle : undefined

K1_ETUD <<ID>>{Numéro}

Un modèle du domaine de départ

Niveau M1

Introduction MDA ATL BilanImplémentation

Page 34: Approche MDA pour la transformation d’un modèle UML en un …perso.univ-lr.fr/awiedema/documents/SoutenanceAntoine.pdf · 2006. 11. 29. · Approche MDA pour la transformation

Le métamodèle source

Niveau M2

<<metaclass>>AssociationClass

<<metaclass>>Class

<<metaclass>>Association

<<metaclass>>Classifier

<<metaclass>>Property

<<metaclass>>Constraint

<<metaclass>>Generalization

<<metaclass>>NamedElement

<<metaclass>>StructuralFeature

<<metaclass>>TypedElement

MultiplicityElement

<<metaclass>>ValueSpecification

<<metaclass>>PackageableElement

<<metaclass>>Expression

<<metaclass>>Namespace

<<metaclass>>Type

<<metaclass>>Element

<<metaclass>>DirectedRelationship

<<metaclass>>Relationship

isOrdered : booleanisUnique : boolean

general1

generalization*

1 specific

name : string

0..1

type

constrainedElement

*

0..1 2..*

memberEnd

association

symbol : string

* operand

0..1 expression

0..1

class

*ownedAttribute

1upperValue

lowerValue1

specification

0..1

UML

Introduction MDA ATL BilanImplémentation

Page 35: Approche MDA pour la transformation d’un modèle UML en un …perso.univ-lr.fr/awiedema/documents/SoutenanceAntoine.pdf · 2006. 11. 29. · Approche MDA pour la transformation

Le métamodèle source

Niveau M2

ID

Symb_ID_exportableClasse_persistante

Arc_de_composition Espace_de_recherche

Composant_identifiant

Attribut

<<metaclass>>Constraint

<<metaclass>>Class

<<metaclass>>Property

<<metaclass>>Generalization

<<metaclass>>Association

Generalisation_persistante

Association_persistante

{xor}

{disjoin}

ID_exportable

1

1..*

attribut

1

composant

1

1..*expression impliciteid_ci*

* *

*

1..**

1

Alias : string

CalculerEspace()

origine 1

1

1

extrémité

*

1

1

propriétaire1

*

/Nom : string

1..*

1..*

UML

Extension

Introduction MDA ATL BilanImplémentation

Page 36: Approche MDA pour la transformation d’un modèle UML en un …perso.univ-lr.fr/awiedema/documents/SoutenanceAntoine.pdf · 2006. 11. 29. · Approche MDA pour la transformation

Le métamodèle cible (CWM)

Niveau M2

UniqueKey

KeyRelationship

ColumnSet

NamedColumnSet

Table

ColumnForeignKey

PrimaryKey

UniqueConstraint

StructuralFeature Class

Feature Classifier

Attribute

type1

ownerfeature 0..1*

/ownedElement

/ownedElement1..* /feature

feature

*

1..* feature 1..*

* typedFeature

*

*/ownedElement

keyRelationship

*

uniqueKey 1

keyRelationship

*

*/uniqueKeycol *

*

0..1

/ownedElement /namespace

1..* 1

/ownedElement

1

0..1

/namespace

/namespace

0..1

/namespace0..1

1

/namespace

Introduction MDA ATL BilanImplémentation

Page 37: Approche MDA pour la transformation d’un modèle UML en un …perso.univ-lr.fr/awiedema/documents/SoutenanceAntoine.pdf · 2006. 11. 29. · Approche MDA pour la transformation

TableClasse ColonneAttribut

Généralisation

Colonne

Clé étrangère

Contrainte d’unicité

Symbole ID exportable

Colonne

Clé étrangère

ColonneColonneColonne

Contrainte d’unicitéÉlément du métamodèle source

Élément du métamodèle cible

Introduction MDA ATL BilanImplémentation

Page 38: Approche MDA pour la transformation d’un modèle UML en un …perso.univ-lr.fr/awiedema/documents/SoutenanceAntoine.pdf · 2006. 11. 29. · Approche MDA pour la transformation

Association

En fonction des multiplicités des extrémités de l’association

ColonneClé étrangère

cas 1

Contrainte d’unicité

ColonneClé étrangère

Contrainte d’unicitécas 2

Colonne

Clé étrangèreContrainte d’unicité

Introduction MDA ATL BilanImplémentation

Élément du métamodèle source

Élément du métamodèle cible

Page 39: Approche MDA pour la transformation d’un modèle UML en un …perso.univ-lr.fr/awiedema/documents/SoutenanceAntoine.pdf · 2006. 11. 29. · Approche MDA pour la transformation

Introduction MDA ATL BilanImplémentation

Page 40: Approche MDA pour la transformation d’un modèle UML en un …perso.univ-lr.fr/awiedema/documents/SoutenanceAntoine.pdf · 2006. 11. 29. · Approche MDA pour la transformation

Plan

• Contexte• Approche MDA• ATL• Expérience d’implémentation• Bilan

Page 41: Approche MDA pour la transformation d’un modèle UML en un …perso.univ-lr.fr/awiedema/documents/SoutenanceAntoine.pdf · 2006. 11. 29. · Approche MDA pour la transformation

• Avantages d’ATL– Formulation déclarative– Expression « from to » intuitive– Adéquation pour notre application

• Inconvénients d’ATL– Mise en œuvre technique– Pour notre application, ergonomie faible– Limitation de la forme déclarative

Introduction MDA ATL Implémentation Bilan

Page 42: Approche MDA pour la transformation d’un modèle UML en un …perso.univ-lr.fr/awiedema/documents/SoutenanceAntoine.pdf · 2006. 11. 29. · Approche MDA pour la transformation

• Sur l’approche MDA– Grande richesse et complexité de la

métamodélisation– Chaînage de transformations

Introduction MDA ATL Implémentation Bilan