Course MF
Course MF
Course MF
www.lisyc.univ-brest.fr/pages_perso/babau/
Modlisation EMF
(Eclipse Modeling Tools)
Jean-Philippe Babau
Dpartement Informatique, UFR Sciences, UBO
Laboratoire LISyC
UBO
11/03/2009
UBO
Modles et mta-modles
Modlisation UML
Diagrammes
cas dutilisation, classe, squence, comportement, dploiement
UBO
Les mta-mta-modles
Plusieurs solutions
MOF
Standardis par lOMG
ECore
Outill sous Eclipse-EMT (EMF, GMF, OCL, ATL, Kermeta, )
XMI
Notions de balises,
Adapt aux fichiers textuels
11/03/2009
UBO
Vrifications
GEF et GMF
UBO
Ecore
Ecore mta-modle
Dfinition des outils de modlisation pour construire des mta-modles
Modlisation structure
Elments de structuration avec les EPackage
Elements de commentaires avec les EAnnotation
11/03/2009
UBO
ECore meta-model
Racine : tout est EObject
La structure
Les caractristiques des concepts
Les commentaires
Les concepts
UBO
Modlisation en EMF
11/03/2009
UBO
Vrifications
<?xml version="1.0" encoding="ASCII"?>
Raffinement
<robot:Robot xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"
Gnration de code xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
// generated program
xmlns:robot="http://robot/1.0" xsi:schemaLocation="http://robot/1.0
robot.ecore">
<sensesThrew Position="1" Role="touch"/>
<sensesThrew Position="2" Role="light"/>
</robot:Robot>
// model analysis
2 sensors
// verification status
No more 1 light sensor : ok
UBO
EMF tool
Crer un projet
Nommage
Pas despace, de lettre accentue dans les noms de fichier et de rpertoire
Problme lors de lexport
[email protected]
10
11/03/2009
UBO
EMF tool
Fichier filename.ecore
Slectionner model puis : New/Other/Eclipse Modeling Framework/Ecore Model
Cration du nom de fichier : modelName.ecore
Cration dun EPackage par dfaut
EPackage root
Pour chaque EPackage
Name modelName
Ns Prefix fr.ubo.mde.babau.modelName
Ns URI http://fr.ubo.mde.babau.modelName
Cration du mtamodle
Ajout dentits
Slection de lentit racine puis New Child
Champ properties
Window / Show View / other -> General / Properties
11
UBO
EMF tool
12
11/03/2009
UBO
EMF tool
13
UBO
EClass
14
11/03/2009
UBO
EClass
EClass
Une EClass par concept manipul
Caractris par Name et des EAttribute, des EReference et des EOperations
Peut hriter
Dun concept ECore
Dun autre concept dfini au niveau du mta-modle
ESuper Types
Concepts abstraits
Non manipuls ldition
EClass avec lattribut Abstract true
[email protected]
15
UBO
EReference
16
11/03/2009
UBO
EReference
EReference pour une association contient
Concept abstraits
A
A
OK
OK
N
N
B
NOK
C
A
C
B
OK
EClass abstraite
17
UBO
EReference
contientDesB
suprieur ou gal 0
0..*
UpperBound
EstLieaB
Suprieur ou gal 0
-1 pour n
Reprsent graphiquement par *
0..1
Reprsentation la UML
estDansA
A
estDansA
contientDesB 0..*
B
EstLieaB
EstLieaC
0..1
1
18
11/03/2009
UBO
EAttribute
Caractristiques du concept
Initialisation de lattribut
Default Value Literal de type String
Arit de 0 n (-1)
LowerBound
UpperBound
UBO
19
Proprits
20
10
11/03/2009
UBO
EDataType
Types primitifs
Types structurs
EByteArray
EMAp<K,V>
EEList<E>
ETreeIterator<E>
21
UBO
EEnum
Sorte de EDataType
Attention la premire valeur de la liste (valeur par dfaut) nest pas dite
dans le fichier xml li au modle
La srialisation dun modle (le fichier xml) est une vue du modle
Le fichier ne peut tre interprt quavec le mta-modle
[email protected]
22
11
11/03/2009
UBO
EEnum
OK
NOK
23
UBO
Caractristiques drives
24
12
11/03/2009
UBO
EOperation
Utilisation
Modlisation oriente services
Smantique oprationnelle du modle
25
UBO
EPackage
Entit de structuration
26
13
11/03/2009
UBO
EPackage
Utile la structuration du mta-modle
Visibilit complte entre EClass au sein du projet
Respect dun pattern EPackage/Eclass pour lditeur gnr
Structure : arbre de EPackage
Dans chaque EPackage nud de larbre: placer une EClass root qui contient des
EClass des EPackage fils
Et donc une EClass root dans le EPackage root
UBO
27
Commentaires du mta-modle
28
14
11/03/2009
UBO
EMOF
UBO
29
EMOF
30
15
11/03/2009
UBO
Validation
faire toujours avant la gnration de lditeur
Slection dans lditeur du EPackage root
Sample Ecore Editor/Validate
31
UBO
Principes
Outils de manipulation de modles via des classes Java
Constructeurs, setter et getter pour les lments
Rpertoire /src
Gnration de code
/src
projet modelName.edit
projet modelName.editor
projet modelName.tests
[email protected]
32
16
11/03/2009
UBO
Editeur
Crer un projet vide
File/New/Project ->General->Project
33
UBO
34
17
11/03/2009
UBO
Export de Plugin
Procdure dexport
File / Export
Plug-In Development / Deployable plug-ins and fragments
Slection des plugins dployer
Le projet EMF et les projets gnrs
modelName, modelName.edit, modelName.editor, modelName.tests
Directory
Rpertoire dinstallation dEclipse (celui qui contient le rpertoire plugins)
Avoir les droits en criture dans le rpertoire plugins
Relancer Eclipse
Pour charger les plug-in
35
UBO
36
18
11/03/2009
UBO
Modifications
Ce qui marche souvent
Lajout de classes, de mthodes ou d'attributs
UBO
Project Data
Project Data
Save
file
37
Delete
Eclipse
Meta-data
file
Eclipse
Meta-data
Project Data
Delete
file
Suppression de EPackage
- conservation des liens
Eclipse
Meta-data
[email protected]
38
19
11/03/2009
UBO
Project Data
Project Data
Save
file
Modify
Eclipse
Meta-data
file
Eclipse
Meta-data
39
UBO
Autres points
Problme despace disque insuffisant : pas de message dalerte
Faites le mnage
40
20
11/03/2009
UBO
UBO
41
UML 2
Mta-modle dUML2 : UML.ecore
diteur UML2 Papyrus bas sur EMF (et aussi GEF/GMF)
Exemple : les commentaires UML2 sont dfinis par le concept Comment
42
21
11/03/2009
UBO
Hritage dElement
EAttribute
EClass
EAnnotation
EReference
Properties de lentit slectionne, ici Comment
UBO
43
Type de lEAttribute
Arit minimale
Nom de lEAttribute
Arit maximale
[email protected]
44
22
11/03/2009
UBO
Type de rfrence
Arit maximale
[email protected]
45
UBO
EMF exemple
Dmo
46
23
11/03/2009
UBO
OMG
http://www.omg.org/
Eclipse
http://www.eclipse.org/
Cours de Cdric Dumoulin
http://www2.lifl.fr/~dumoulin/enseign/
47
24