MDA en action Ing - PowerPoint PPT Presentation

About This Presentation
Title:

MDA en action Ing

Description:

MDA en action Ing nierie logicielle guid e par les mod les Xavier Blanc Universit Pierre et Marie Curie Xavier.Blanc_at_lip6.fr Plan MDA: Model Driven Architecture ... – PowerPoint PPT presentation

Number of Views:75
Avg rating:3.0/5.0
Slides: 43
Provided by: Xavier74
Category:
Tags: mda | action | corba | ing | j2ee

less

Transcript and Presenter's Notes

Title: MDA en action Ing


1
MDA en action Ingénierie logicielle guidée par
les modèles
  • Xavier Blanc
  • Université Pierre et Marie Curie
  • Xavier.Blanc_at_lip6.fr

2
Plan
  • MDA Model Driven Architecture
  • Pérennité des savoir-faire
  • Architecture de métamodélisation
  • UML, OCL, AS
  • XMI
  • Gains de productivité
  • JMI EMF
  • Transformation de modèles
  • Outils
  • Prise en compte des plates-formes dexécution
  • Profils de plate-forme
  • Métamodèle de plate-forme
  • Etude de Cas PetStore

3
MDA Model Driven Architecture
  • Vue macroscopique

4
Modèles
Architecture MDA
  •  Modéliser est le futur, et je pense que les
    sociétés qui travaillent dans ce domaine ont
    raison   B. Gates
  •  Obtenir du code à partir dun modèle stable est
    une capacité qui sinscrit dans la durée  R.
    Soley
  •  A quoi bon modéliser puisque in fine il faudra
    toujours écrire du code? 
  •  Un bon schéma vaut mieux quun long discours
    sauf quà un schéma (UML) correspond plus dun
    long discours ! 
  • Besoin de bonnes pratiques et dobjectifs précis

5
Pratiques Objectifs
Architecture MDA
  • Pratiques
  • Décomposer en niveaux dabstraction
  • Automatiser les relations inter/intra niveaux
  • Formaliser les informations contenues dans les
    niveaux
  • Objectifs
  • Élaboration de nouvelles applications
  • Évolution dapplications existantes
  • Maîtriser limpact des nouvelles technologies

6
Lapproche
Architecture MDA
7
Architecture
Architecture MDA
MOF
M2
QVT
M2
Application Informatique
8
Les moyens
Architecture MDA
  • Définition de tous les métamodèles de manière
    uniforme
  • Le standard MOF définit le langage de définition
    des métamodèles
  • Format standard dimport et dexport des modèles
  • Le standard XMI définit les moyens dimport et
    dexport de tous les modèles selon le format XML
  • Langage de manipulation des modèles
  • Les frameworks JMI/EMF définissent les moyens de
    représentation des modèles à laide de langages
    de programmation objet.
  • Langage dédié au transformation de modèles
  • Le standard QVT définit le langage dexpression
    de transformations de modèles

9
Les résultats
Architecture MDA
  • Pérennité des savoir-faire
  • Lambition du MDA est de faire en sorte que les
    modèles (CIM, PIM) aient une durée de vie
    supérieure au code.
  • Lobjectif est donc de fournir des langages de
    modélisation supportant différents niveaux
    dabstraction.
  • Gains de productivité
  • MDA vise à apporter des gains de productivité en
    automatisant les opérations sur les modèles.
  • Lobjectif est donc de faciliter la création
    dopérations de production sur les modèles (du
    contemplatif au productif)
  • Prise en compte des plates-formes dexécution
  • MDA veut rendre explicite la prise en compte des
    plates-formes dexécution dans le cycle de vie
    des applications.
  • Lobjectif est donc de construire des langages
    permettant de modéliser les plates-formes et de
    lier ces modèles aux modèles des applications.

10
Les 3 axes du MDA
Architecture MDA
pérennité
  • Pour mettre en Å“uvre le MDA il faut fixer ses
    priorités selon ces trois axes
  • Il est actuellement trop tôt pour utiliser
    UML2.0 et être productif.
  • Il est actuellement trop tôt pour pouvoir dire
    que EMF est pérenne.
  • Il est actuellement trop tôt pour pouvoir
    expliciter la plate-forme sous forme de modèle.

UML2.0
QVT
MOF2.0
XMI2.1
GenDoc
Profil QoS
UML1.4
EMF
MOF1.4
Profil EJB
JMI
Profil Corba
productivité
UML-gtJava
UML/EJB-gtJ2EE
Plate-forme
11
Pérennité des savoir-faire
  • Architecture et Standard

12
Métamodèle
Pérennité
Un métamodèle est essentiellement la définition
dun ensemble de concepts et de leurs relations à
laide dun diagramme de classes. Un métamodèle
ne définit que la structure et pas la
sémantique. Un modèle est une instance dun
métamodèle sil respecte la structuration définie
par le métamodèle. Le métamodèle UML définit les
concepts UML et leurs relations. Un modèle UML
doit respecter la définition du métamodèle.
13
Métamétamodèle
Pérennité
  • Le MOF définit le langage permettant de définir
    des métamodèles
  • Les concepts du MOF sont les concepts de
    métaclasse, méta-attribut, méta-association, etc.
  • MOF peut être défini à laide dun diagramme de
    classe. Ce diagramme est le métamétamodèle
  • Le métamétamodèle sauto-définit.

14
Niveaux Méta
Pérennité
  • Les relations entre les niveaux méta sont des
    relations de définition de structure
  • Les relations entre les niveaux méta ne sont pas
    des relations dabstraction.
  • Les relations entre les niveaux méta sont
    semblables aux relations entre les grammaires
    (BNF, ou XML Schema)

Métamétamodèle
Métamodèle
Modèle
15
Infrastructure 2.0
Pérennité
  • UML définit les concepts nécessaires à
    lexpression des diagrammes de classe
  • MOF définit les concepts nécessaires à
    lexpression des diagrammes de classe
  • gt Capitaliser sur les concepts nécessaires à
    lexpression des diagrammes de classe
    Infrastructure

Linfrastructure na pas de niveau fixe. Cela
dépend de qui lutilise.
16
UML2.0
Pérennité
  • UML2.0 fait rentrer UML dans MDA, il est bien
    plus quune évolution de UML1.4.
  • UML est actuellement le métamodèle le plus
    important de lapproche MDA. Sa conception est le
    fruit de plus de 3 ans de travail collaboratif
    des meilleurs experts du domaine.
  • Cest le métamodèle qui définit la structuration
    des modèles des applications informatiques
  • UML2.0 est un métamodèle instance de MOF2.0.
  • La sémantique de UML2.0 est définie à laide de
    langage naturel
  • Les diagrammes UML2.0 sont définis à partir du
    métamodèle
  • UML2.0 supporte différents niveaux dabstractions
    et différents points de vue
  • Cas dutilisation, Séquences, Structuration
    Interne, Etats, Déploiement, etc.

17
Composant UML2.0
Pérennité
UML2.0 permet la modélisation intégrale
dapplications à base de composants. De
lanalyse/conception au déploiement
18
UML dans MDA
Pérennité
  • UML permet principalement de construire des
    modèles dapplications informatiques indépendants
    des plates-formes dexécution (phase danalyse et
    de conception abstraite)
  • UML est donc le métamodèle naturel pour les PIM
    (Platform Independant Model)
  • UML permet aussi de représenter une application
    dans son environnement afin den faire ressortir
    les exigences (cas dutilisation)
  • UML peut être utilisé pour les CIM (Computational
    Independant Model)
  • UML peut être profilé afin de cibler des
    plates-formes dexécution (ex profil pour CORBA,
    profil pour EJB)
  • UML peut être utilisé pour les PSM (Platform
    Specific Model)
  • Il serait donc possible dappliquer MDA en
    utilisant uniquement UML

19
Object Constraint Language
Pérennité
  • OCL définit la structuration des modèles
    représentant des contraintes sur les applications
    informatiques
  • Invariant, Pré-post conditions
  • OCL est un métamodèle instance de MOF
  • OCL est fortement couplé au métamodèle UML
  • OCL définit sa sémantique à laide dun
    métamodèle (opération sans effet de bord)
  • OCL définit une syntaxe concrète permettant de
    facilement saisir les contraintes

20
Action Semantics
Pérennité
  • AS définit la structuration des modèles
    représentant des séquences dinstructions
  • AS est un métamodèle qui a été totalement intégré
    à UML2.0
  • AS na pas de syntaxe concrète propre
    (utilisation des diagrammes dynamiques UML)
  • La sémantique dAS nest pas formellement définie
    (RFP en cours)

21
XMI
Pérennité
  • Fonctionnement
  • Le standard XMI (XML Metadata Interchange) permet
    le passage des modèles aux documents XML
  • Il définit des règles permettant de construire
    des schéma XML à partir de métamodèle
  • Ainsi il est possible dencoder un modèle dans un
    document XML
  • XMI et UML
  • XMI se décline en 6 versions et UML se décline en
    4 versions
  • Cela explique pourquoi léchange de modèle UML en
    XMI pose quelques problèmes
  • XMI et diagrammes
  • DI (Diagram Interchange) est une extension à XMI
    et UML qui permet la représentation des
    diagrammes UML sous forme de document XML.

22
Synthèse sur la pérennité
Pérennité
  • MOF permet de décrire les métamodèles
    uniformément
  • Permet la définitions de structuration et leur
    standardisation (ex réseaux de Petri)
  • Le métamodèle UML est le métamodèle le plus
    abouti pour élaborer des modèles dapplications
    informatiques
  • Les modèles UML sont de très bons PIM (complets
    et indépendants des plates-formes).
  • OCL et AS sont les métamodèles permettant la
    définition précise de comportements
  • Ils permettent la construction de modèles UML
    très précis.
  • XMI permet léchange de nimporte quel modèle
    sous forme de document XML
  • Les modèles MDA ont tous une représentation
    concrète standard

23
Gains de productivité
  • Framework et outils

24
API de manipulation
Production
  • MDA définit les principes de génération dAPI de
    manipulation de modèles
  • A chaque métamodèle correspond une API de
    manipulation des modèles instances
  • Les frameworks définissent aussi des API
    réflectives pour tout métamodèle

Métamodèle
Interface Java
Objets Java
modèles
25
Eclipse Modeling Framework
Production
  • Élaboration dun métamodèle (instance de Ecore)
  • Génération de lAPI
  • Interface de manipulation
  • Classes dans lenvironnement Eclipse
  • Classes déditeur graphique
  • Utilisation directe dans un nouveau environnement
    Eclipse

26
Transformation de modèles
Production
  • Les transformations de modèles sont le cÅ“ur des
    aspects de production de MDA
  • CIM vers PIM, PIM vers PSM, PSM vers code (sens
    inverse).
  • Les transformations de modèles sont basées sur
    les métamodèles
  • Tout composant UML se transforme en une classe
    PHP.
  • Les constructeurs de plate-forme devraient
    produire les transformateurs permettant
    dexploiter les plates-formes
  • UML vers EJB
  • Les sociétés devraient pouvoir adapter les
    transformateurs selon leurs propres expériences
    et leurs propres besoins
  • Ex ne pas utiliser de composant EJB Entity!
  • Actuellement les transformations de modèles
    peuvent sécrire selon trois approches
  • Programmation, Template, Modélisation

27
Programmation
Production
  • La transformation est un programme qui utilise
    les API de manipulation des modèles

APIUML
APIPHP
écrire
lire
ProgrammeJava
28
Template
Production
  • La transformation est un template écrit dans un
    langage dédié

Template pour UML vers PHP
Interpréteurde template
29
Modélisation
Production
  • La transformation est un modèle instance du
    métamodèle QVT

Modèle Transfo
Programme
30
Outils industriels
Production
  • Actuellement plusieurs outils clament leur
    adhérence à MDA.
  • Au déla de savoir ce quest un outil MDA, il est
    intéressant de voir que les fournisseurs doutils
    sont très actifs sur ce domaine.
  • Nous avons particulièrement pu apprécier deux
    outils
  • RSA (Rational Software Architecte) qui supporte
    MDA en offrant un modeleur UML2.0 et en
    permettant la définition de transformations de
    modèles (approche par programmation).
  • Objecteering/MDA Modeler qui supporte MDA en
    offrant des avantages considérables pour le
    développement et le packaging dopérations de
    production sur les modèles.

31
Synthèse sur la productivité
Production
  • MDA fait passer les modèles du contemplatif au
    productif
  • Les API de manipulation de modèles sont
    totalement utilisables en contexte industriel
  • Les transformations de modèles sont réalisables
    même si actuellement seule lapproche par
    programmation est pleinement exploitable.
  • Il est important de souligner lengagement des
    éditeurs doutils

32
Prise en compte des plates-formes dexécution
  • Framework et outils

33
Cycle en Y et plate-forme
Plate-forme
Besoins Techniques
Exigence
Analyse
Architecture Technique
Conception (Abstraite)
Explicitation de la plate-forme
Conception (concrète)
Prise en compte de la plate-forme
Conception (fine)
Code
34
Profil ou métamodèle
Plate-forme
  • Il nexiste pas de métamodèle permettant de
    modéliser les plates-formes
  • Un métamodèle de plate-forme définit plutôt la
    structure de modèles dapplications utilisant les
    fonctionnalités de la plate-forme
  • On appelle donc ces métamodèles des métamodèles
    de PSM
  • par exemple le métamodèle EJB définit la
    structure de modèles dapplications utilisant les
    fonctionnalités de la plate-forme EJB
  • La transformation cÅ“ur de lapproche en Y est
    donc une transformation entre deux métamodèles
    (métamodèle du PIM vers métamodèle du PSM)
  • Doù la nécessité de paramétrer le modèle PIM
    afin de préciser la façon dont utiliser la
    plate-forme (notion de modèle intermédiaire).
  • Comment savoir si un composant UML doit se
    transformer en un bean Entity ou Session?

35
Métamodèle de PSM
Plate-forme
  • Approche par profil
  • Le métamodèle de PSM est un profil UML
  • La plate-forme doit donc être proche de UML
    (orientée objet)
  • Les transformations PIM vers PSM sont facilitées
    car il existe une sémantique commune (UML)
  • Approche par métamodèle
  • Le métamodèle de PSM est un métamodèle MOF
  • La plate-forme peut donc être très éloignée de
    UML
  • Les transformations PIM vers PSM sont moins
    facilitées car les sémantiques PIM et PSM ne sont
    pas communes
  • Cette approche rend possible les transformations
    PSM vers PSM (migration de plates-formes)

36
Étude de Cas
  • PetStore

37
PetStore selon MDA
Étude de Cas
CIM PIM en UML
Intervention Humaine
Modèle de transformation PIM vers PSM
PSM JavaProfil UML
PSM PHP Méta-modèle
PIM vers PSM Java avec MDA Modeler PIM vers PSM
PHP avec RSA
public class
php
38
Pérennité
Étude de Cas
  • Lapplication PetStore a pu être modélisée
    entièrement en UML2.0
  • Use Case de lapplication
  • Composants de lapplication
  • Contrainte OCL sur les opérations (notamment les
    opérations de recherche)
  • AS pour le comportement (notamment grâce aux
    nouveaux diagrammes de séquences)
  • Modèle entièrement indépendant des plates-formes
    dexécution
  • Modèle échangeable(?) grâce à XMI

39
Productivité
Étude de Cas
  • Le modèle UML de lapplication PetStore a pu être
    manipulé automatiquement pour générer du code et
    de la documentation
  • RSA Manipulation Java avec assistants
  • MDA Modeler Manipulation J avec assistants
  • Malheureusement, il nest pas encore possible de
    pouvoir capitaliser les opérations de production

40
Plate-forme
Étude de Cas
  • Réalisation de PetStore sur J2EE/EJB
  • Définition du profil EJB
  • Construction des transformations avec MDA Modeler
  • Définition dun profil de modèles intermédiaires
    permettant de préciser les choix de
    transformation
  • Réalisation de PetStore sur PHP
  • Définition dun métamodèle PHP
  • Construction de générateur de code et de
    transformation de modèles avec RSA
  • Définition dun profil de modèles intermédiaires
    permettant de préciser les choix de transformation

41
Conclusion
42
MDA en action
  • MDA entre dans une phase dindustrialisation
  • La pérennité est aujourdhui totalement atteinte
    grâce aux standards MOF, UML, OCL, AS et XMI
  • La productivité des modèles est une réalité. Les
    progrès annoncés laissent entrevoir un essor
    considérable (MOF2.0 QVT)
  • La prise en compte des plates-formes reste encore
    trop à la charge de celui qui met en place
    lapproche MDA
Write a Comment
User Comments (0)
About PowerShow.com