Ces modèles et métamodèles qui nous entourent !

publicité
Ces modèles et métamodèles
qui nous entourent !
Cédric Dumoulin - DaRT
Qu’est ce qu’un modèle

Définitions (Wikipedia by Google)




« Un modèle mathématique est une traduction de
la réalité pour pouvoir lui appliquer les outils, les
techniques et les théories mathématiques »
« [En économie] Un modèle est une
représentation de la réalité. »
« En informatique, un modèle a pour objectif de
structurer les données, les traitements, et les flux
d'informations entre entités. »
C’est une abstraction de la réalité
Qu’est-ce qu’un modèle

One and Three Chairs" by Joseph Kosuth

« This artwork is about different ways to show ideas. It presents one chair and three different ways
of picturing this same chair. »
Qu’est-ce qu’un modèle

Une carte routière
Qu’est-ce qu’un modèle

autre plan
plan d’évacuation
Qu’est-ce qu’un modèle
One and Three Chairs" by Joseph Kosuth
« This artwork is about different ways to show ideas. It presents one chair
and three different ways of picturing this same chair. »
Qu’est-ce qu’un modèle

Un plan d’architecte
Pourquoi modéliser ?

Que font les ingénieurs ?

Avant de construire de vraies choses …
…ils construisent d’abord des modèles


… les étudient, et tirent des conclusions

Pourquoi modéliser ?

Modèle de l’ingénieur

Représentation réduite d’un système
Système modélisé

Modèle
Objectifs


Aider à comprendre un problème complexe ou une solution
Communiquer à propos d’un problème complexe ou d’une solution
Avantages d’un modèle

Abstrait


Compréhensible


Il représente fidèlement le système modélisé
Prédictif


Il permet d’exprimer une chose complexe dans une forme plus
facilement compréhensible par l’observateur
Précis


Il fait ressortir les points importants tout en enlevant les détails
non nécessaires
Il permet de faire des prévisions correcte sur le système modélisé
Peu coûteux

Il est bien moins coûteux à construire et étudier que le système lui
même
Les modèles
et l’informatique

pour faire un
programme complexe, on a
besoin de le modéliser.
Article
*
-prix
-reference
-stock
0..1
Catalogue
1
Titre

pour explorer les solutions,
pour les valider, pour montrer
au client ce que sera
l’application.
Video
Description
1
Album
UML : Unified Modeling Langage
*
Support
-descriptionSupport
Pourquoi
comprend t-on un modèle ?

Parce qu’il est simple ?
Parce qu’il représente la réalité ?

Parce qu’il existe une légende !

Pourquoi
comprend t-on un modèle ?

La légende c’est



La légende est elle même un modèle !


l’explication des concepts /dessins du modèle
la grammaire du modèle
On l’appelle
un métamodèle
Existe-t-il un métamodèle décrivant
le modèle-légende ?

nom, nom, … = dessin, dessin, …

c’est le méta-métamodèle

Existe-t-il un métamodèle décrivant
le modèle décrivant le modèle-légende ?

Et si oui, Existe-t-il …
Mettre image
legende carte
Récapitulons !
Modèle et Métamodèle

Standardisé par l’OMG

méta-métamodèle



métamodèle


langage pour décrire des modèles
modèle


langage pour décrire des langages
ce décrit lui-même !
abstraction de la réalité 
Le monde réel
Qu’est ce que l’IDM






Ingénierie Dirigée par les Modèles
Tr
Met le modèle au cœur des processus
Part d’un ou plusieurs modèles …
… transforme vers un autre modèle …
… jusqu’à avoir du code
Tr
Ce n’est pas nouveau : une compilation
est aussi une transformation !
Compilation/Tr
A quoi sert l’IDM??

avantages

abstraction,
réutilisation,
pérennité,
automatisation,
contrôles et tests à différents niveaux

unification des processus






compiler = transformer des modèles
 on peut réutiliser les travaux fait sur la compilation
Conception puis développement
== changement de niveau d’abstraction (de modèle)
IDM vs MDA

Model Driven Architecture


Architecture Dirigé par les Modèles
Modèle proposé par l’OMG (le nom est déposé !)

Part d’un CIM (Computation Independent Model)
Transforme en PIM (Platform Independent Model)
Puis en PSM (Platform Specific Model)
Et génère le code …

Variante particulière de l’IDM




Plus restrictive
Quelques outils actuels

Papyrus UML


Éclipse - EMF


framework pour manipuler
modèle et métamodèle
QVT (QVTO)


modeleur UML 2
open source
standard pour transformer des
modèles
M2T (Acceleo)

standard pour la génération de
texte (code)
D’autres
Modèles et Métamodèles
méta-métamodèle
métamodèle
modèle
monde réel
Texte,
Livre
…
eBNF
Langage
Informatique
syntaxe
eBNF
XML
schema
schema
PARTIE 2
IDM en pratique





Comment structurer un projet IDM ?
Comment utiliser le projet ?
Comment modéliser un métamodèle, un
modèle ?
J’ai fait un métamodèle, que puis-je faire
avec ?
Comment fonctionnent les


transformations,
la génération de texte/code ?
IDM en pratique
Structure typique d’un projet
MM1.1
MM1.2
haut niveau d’abstraction
MM2
MM2
MM
C++
MM
Java
MM
.net
code
C++
code
Java
code
.net
code
IDM en pratique
Structure typique d’un projet
MM1.1
MM1.2
transfo
transfo
MM2
vérification
simulations, …
transfo


transfo

MM2
transfo

transfo
MM
C++
MM
Java
MM
.net
génération
génération
génération
code
C++
code
Java
code
.net
Métamodèles
transformations
génération de code/texte
optionnel : vérifications,
simulations, tests, …
Utilisation du projet
Point de vue utilisateur
Modèle 1.1
transfo
Modèle 1.2
transfo
Modèle 2

vérification
simulations, …
transfo
Modèle 2
transfo

exécuter
transfo transfo
Modèle
C++
Modèle
Java
Modèle
.net
génération
génération
génération
code
C++
code
Java
code
.net
L’utilisateur appuie
sur le bouton
L’application produit
le texte/code
Utilisation du projet
Derrière la scène
Modèle 1.1
transfo
Modèle 1.2
transfo
Modèle 2

vérification
simulations, …
transfo
L’application

Modèle 2

transfo
transfo transfo
Modèle
C++
Modèle
Java
Modèle
.net
génération
génération
génération
code
C++
code
Java
code
.net
produit les modèles
intermédiaire
Effectue les testes,
les vérifications, les
simulations, …
Construire un métamodèle




1 concept  1 (méta)classe
1 relation entre concepts  1 association entre classes
Peut se faire en UML
Exemple : bibliothèque de livres
Du métamodèle
aux outils pour manipuler les modèles
manipulation
édition
arborescente
sauvegarde
édition
graphique
Le tout en quelques minutes !!!
D’un modèle à l’autre
La transformation de modèles
métamodèle
métamodèle
d’entrée
d’entrée
typé par
typé par
lit
conforme à
modèle
modèle
d’entrée
d’entrée
règles
lit
métamodèle
métamodèle
de
desortie
sortie
conforme à
produit
modele
modèle
de
desortie
sortie
Du modèle au code
La génération de code
métamodèle
métamodèle
d’entrée
d’entrée
typé par templates
templates
lit
conforme à
modèle
modèle
d’entrée
d’entrée
lit
produit
code
code
code
Saisir un modèle,
Quel éditeur utiliser ?
Editeur
arborescent
directement avec le
code java
Editeur
graphique
GMF
Editeur
graphique
home made
Ergonomie du
modeleur
plus près du domaine
très bien adapté au
domaine
adapté au
prototypage rapide
modèle graphique
complexe à faire
problème
d’ergonomie,
customisation limité
Le même éditeur pour
différent modéles
Adaptation au
domaine grâce au
profil associé
pas toujours intuitif
demande une bonne
compréhension du
modèle
Modeleur
UML + profil
- temps de réalisation
Profile à définir
- une transformation
à prévoir (UMLMM
domaine)
Demo !

Modéliser une ville




les rues
les bâtiments
les habitants
Générer les programmes Java

pour manipuler des modèles de villes

Construire des modèles !!

Mieux que les syms  !!
Métamodèle d’une ville
En savoir plus

Wikipedia


OMG – www.omg.org


http://www.eclipse.org/downloads/
Eclipse EMF



UML, QVT, M2T, …
Eclipse Modeling


http://fr.wikipedia.org/wiki/Ingénierie_dirigée_par_les_modèles
http://www.eclipse.org/modeling/emf/
Tutorial : Help > Help Contents > EMF Developer Guide > Tutorials > Generating an EMF Model
Papyrus – modeleur UML Open Source

Papyrus I – www.papyrusuml.org


Papyrus II (Juin 2010) –


QVTo


CEA - LIFL
projet Eclipse – CEA – LIFL – Airbus – Atos
http://www.eclipse.org/m2m/
Acceleo

http://www.eclipse.org/modeling/m2t/?project=acceleo
Téléchargement