Modèles et Métamodèles Plan

publicité
16/09/2010
Modèles et Métamodèles
Cedric Dumoulin
Plan


Définition
Comment faire un métamodèles





Papyrus
les éléments de base
Comment générer les classes Java
Tester le métamodèle
Créer un modèle de façon
programmatique
1
16/09/2010
Définitions

Modèlisation



Modèles




activité qui permet d’appréhender un système complexe en
vue d’en déduire ses caractéristiques en tenant compte de
différents points de vue.
conduit à un ensemble de modèles
c’ est une simplification de la réalité
c’ est une abstraction de la réalité
Peut prendre différentes formes: schéma, texte, ...
Métamodèles


Définit les concepts utilisables dans le modèle
Définit le vocabulaire ou la grammaire
Exemples de modèles et
métamodèles




fichier XML – DTD ou schema
carte routière – légende
modèle UML – métamodèle UML
modèle Java – métamodèle Java
2
16/09/2010
Model and Metamodel
OMG view

Meta-metamodel




Available modeling elements
Construction rules
(Ecore, MOF)
metamodel
M2
(UML description)
model
M1
Model
(UML example)

application
M0


meta metamodel
M3
Metamodel

Can be seen as a “language” definition:


Language to describe languages
Ex : ECore, MOF
Follow the rules expressed in the language
Describe an application
Application


(a program)
Concrete realization of a model
Example : generated code
Metametamodel
Concevoir un métamodèle

Les éléments structurants

Les classes


Les éléments de regroupement


pour définir les concepts du MM
Coordonnee
telephone : undefined
eM ail : undefined
fax : undefined
les paquetages
PckFournisseur1
Les éléments de documentation

Les notes
<<comment>>
Ceci est une note
3
16/09/2010
Concevoir un métamodèle

Les relations


d’association

par référence

par composition
rôle1
nomAssociation
1..*
rôle2
0..1
de généralisation
Langages
pour la conception de MM

MOF



ECore




Meta Object Facilities
Définit par l’OMG
similaire a MOF
définit par Eclipse
permet de générer des classes Java
UML + profile

Pour concevoir un MM avec UML
4
16/09/2010
Exemple de MM
En pratique : Générer les
classes à partir du MM



Dessiner le MM dans un éditeur UML (comme
Papyrus)
Importer le modèle UML dans un projet EMF
Générer les classes à partir du .genmodel
Editeur
UML
EMF -Eclipse
importe
édite
.genmodel
.uml
.ecore
generate
src/*.java
editor
…
5
16/09/2010
Regénérer

Si on modifie le MM



il faut régénérer le .genmodel et les classes
la génération détruit partiellement ce qui à
déjà été généré
si modification importante, il faut détruire
au préalable à la main les src générées
Tester l’éditeur arborescent



Vous développez dans un Eclipse de
développement
Vous testez dans un Eclipse de test (un
autre Eclipse)
Pour créer des fichiers, il faut d’abord
avoir un projet

bonne pratique: avoir une projet « test »
6
16/09/2010
Exercices

MM Library



Une library contient des Book
Un Book a un titre et un ou plusieurs auteurs
MM Java

Identifier les concepts nécessaire



Package, classe, …
Pour chaque concept, identifier les attributs
Construire le MM
7
Téléchargement