Title: MDA en action Ing
1MDA en action Ingénierie logicielle guidée par
les modèles
- Xavier Blanc
- Université Pierre et Marie Curie
- Xavier.Blanc_at_lip6.fr
2Plan
- 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
3MDA Model Driven Architecture
4Modè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
5Pratiques 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
6Lapproche
Architecture MDA
7Architecture
Architecture MDA
MOF
M2
QVT
M2
Application Informatique
8Les 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
9Les 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.
10Les 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
11Pérennité des savoir-faire
12Mé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.
13Mé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.
14Niveaux 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
15Infrastructure 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.
16UML2.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.
17Composant UML2.0
Pérennité
UML2.0 permet la modélisation intégrale
dapplications à base de composants. De
lanalyse/conception au déploiement
18UML 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
19Object 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
20Action 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)
21XMI
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.
22Synthè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
23Gains de productivité
24API 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
25Eclipse 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
26Transformation 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
27Programmation
Production
- La transformation est un programme qui utilise
les API de manipulation des modèles
APIUML
APIPHP
écrire
lire
ProgrammeJava
28Template
Production
- La transformation est un template écrit dans un
langage dédié
Template pour UML vers PHP
Interpréteurde template
29Modélisation
Production
- La transformation est un modèle instance du
métamodèle QVT
Modèle Transfo
Programme
30Outils 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.
31Synthè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
32Prise en compte des plates-formes dexécution
33Cycle 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
34Profil 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?
35Mé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
37PetStore 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
38Pé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
39Productivité
É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
40Plate-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
41Conclusion
42MDA 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