20100910 mda en-2010-jug_summer_camp
TRANSCRIPT
![Page 1: 20100910 mda en-2010-jug_summer_camp](https://reader033.vdocuments.net/reader033/viewer/2022060204/559f6da81a28ab3f778b4605/html5/thumbnails/1.jpg)
Le MDA en 2010 : Une vision pragmatique
nommée Acceleo
Le 10 Septembre 2010
Jérôme [email protected]
![Page 2: 20100910 mda en-2010-jug_summer_camp](https://reader033.vdocuments.net/reader033/viewer/2022060204/559f6da81a28ab3f778b4605/html5/thumbnails/2.jpg)
© C
op
yri
ght
20
10
O
beo
Le but de cette session
Montrer :
Les apports de la démarche MDA
Comment mettre en oeuvre cette démarche en utilisant le projet Eclipse Modeling
![Page 3: 20100910 mda en-2010-jug_summer_camp](https://reader033.vdocuments.net/reader033/viewer/2022060204/559f6da81a28ab3f778b4605/html5/thumbnails/3.jpg)
© C
op
yri
ght
20
10
O
beo
Agenda
Qui suis-je où suis-je ?
Le MDA en 2000
2010 : du MDA à l'ingénierie des modèles
Mettre en oeuvre une démarche modèle pragmatique
![Page 4: 20100910 mda en-2010-jug_summer_camp](https://reader033.vdocuments.net/reader033/viewer/2022060204/559f6da81a28ab3f778b4605/html5/thumbnails/4.jpg)
© C
op
yri
ght
20
10
O
beo
Jérôme BENOIS
10 ans de Java...
Architecte – "Model Driven Expert" à
Obeo Network Community Manager
Committer , , EasyAnt
Implications / Contributions Open-Source :
Eclipse CDO, Eclipse MoDisco, Bushel, C-JDBC, UML2SVG, ...
Membre de l'OSS-GTP
http://blog.benois.fr & http://twitter.com/jeromebenois
![Page 5: 20100910 mda en-2010-jug_summer_camp](https://reader033.vdocuments.net/reader033/viewer/2022060204/559f6da81a28ab3f778b4605/html5/thumbnails/5.jpg)
© C
op
yri
ght
20
10
O
beo
![Page 6: 20100910 mda en-2010-jug_summer_camp](https://reader033.vdocuments.net/reader033/viewer/2022060204/559f6da81a28ab3f778b4605/html5/thumbnails/6.jpg)
© C
op
yri
ght
20
10
O
beo
Un peu d'Histoire
![Page 7: 20100910 mda en-2010-jug_summer_camp](https://reader033.vdocuments.net/reader033/viewer/2022060204/559f6da81a28ab3f778b4605/html5/thumbnails/7.jpg)
© C
op
yri
ght
20
10
O
beo
Le MDA : Model Driven Architecture
![Page 8: 20100910 mda en-2010-jug_summer_camp](https://reader033.vdocuments.net/reader033/viewer/2022060204/559f6da81a28ab3f778b4605/html5/thumbnails/8.jpg)
© C
op
yri
ght
20
10
O
beo
Le constat de l'échec !
« The CHAOS Summary Report » :
24% des développements applicatifs sont des échecs
84% des projets critiques n'atteignent pas leurs objectifs
54% ont rencontré des dépassements de coûts
79% ont des dépassements d'échéanciers
Le coût moyen d'une mise à jour technologique est de 18% du coût original du projet, CIO Magazine
![Page 9: 20100910 mda en-2010-jug_summer_camp](https://reader033.vdocuments.net/reader033/viewer/2022060204/559f6da81a28ab3f778b4605/html5/thumbnails/9.jpg)
© C
op
yri
ght
20
10
O
beo Les questions que se pose la DSI
Comment diminuer les délais et les coûts de mes projets ?
Où sont mes spécifications à jour ?
Comment capitaliser le savoir faire de mes équipes ?
Comment être plus agile avec les évolutions ?
![Page 10: 20100910 mda en-2010-jug_summer_camp](https://reader033.vdocuments.net/reader033/viewer/2022060204/559f6da81a28ab3f778b4605/html5/thumbnails/10.jpg)
© C
op
yri
ght
20
10
O
beo
![Page 11: 20100910 mda en-2010-jug_summer_camp](https://reader033.vdocuments.net/reader033/viewer/2022060204/559f6da81a28ab3f778b4605/html5/thumbnails/11.jpg)
© C
op
yri
ght
20
10
O
beo
La solution imaginée en 2000 par l'OMGUtiliser des modèles pour monter en abstraction et faciliter la communication métiers / IT
Séparation des aspects techniques et fonctionnels
Démarche basée sur les standards UML
![Page 12: 20100910 mda en-2010-jug_summer_camp](https://reader033.vdocuments.net/reader033/viewer/2022060204/559f6da81a28ab3f778b4605/html5/thumbnails/12.jpg)
© C
op
yri
ght
20
10
O
beo
La démarche MDA
![Page 13: 20100910 mda en-2010-jug_summer_camp](https://reader033.vdocuments.net/reader033/viewer/2022060204/559f6da81a28ab3f778b4605/html5/thumbnails/13.jpg)
© C
op
yri
ght
20
10
O
beo
CIM : Computation Independent Model
Il se concentre sur les exigences du système :
Use Case Diagram
Sequence Diagram
![Page 14: 20100910 mda en-2010-jug_summer_camp](https://reader033.vdocuments.net/reader033/viewer/2022060204/559f6da81a28ab3f778b4605/html5/thumbnails/14.jpg)
© C
op
yri
ght
20
10
O
beo
PIM : Platform Independent Model
Il se concentre sur le fonctionnement du système indépendant de toute plate-forme et donc ne change pas d'une plateforme à une autre.
Class Diagram
Activity Diagram
State Chart Diagram
Sequence Diagram
...
![Page 15: 20100910 mda en-2010-jug_summer_camp](https://reader033.vdocuments.net/reader033/viewer/2022060204/559f6da81a28ab3f778b4605/html5/thumbnails/15.jpg)
© C
op
yri
ght
20
10
O
beo
PSM : Platform Specific Model
Il se concentre sur le fonctionnement du système basé sur une plate-forme spécifique : JavaEE, .Net, ...
Il est à l'image du code.
Class Diagram
Component Diagram
Deployment Diagram
...
![Page 16: 20100910 mda en-2010-jug_summer_camp](https://reader033.vdocuments.net/reader033/viewer/2022060204/559f6da81a28ab3f778b4605/html5/thumbnails/16.jpg)
© C
op
yri
ght
20
10
O
beo
![Page 17: 20100910 mda en-2010-jug_summer_camp](https://reader033.vdocuments.net/reader033/viewer/2022060204/559f6da81a28ab3f778b4605/html5/thumbnails/17.jpg)
© C
op
yri
ght
20
10
O
beo
Acceleo
Implémentation du standard
OMG MOF Model To Text Language
Un outil fait par des développeurs pour les développeurs !
Pragmatisme (génération incrémentale, ...)
Outillage Eclipse (complétion, coloration syntaxique, ...)
![Page 18: 20100910 mda en-2010-jug_summer_camp](https://reader033.vdocuments.net/reader033/viewer/2022060204/559f6da81a28ab3f778b4605/html5/thumbnails/18.jpg)
© C
op
yri
ght
20
10
O
beo DE
MO
![Page 19: 20100910 mda en-2010-jug_summer_camp](https://reader033.vdocuments.net/reader033/viewer/2022060204/559f6da81a28ab3f778b4605/html5/thumbnails/19.jpg)
© C
op
yri
ght
20
10
O
beo
Génération incrémentale"User-Code Pattern"
![Page 20: 20100910 mda en-2010-jug_summer_camp](https://reader033.vdocuments.net/reader033/viewer/2022060204/559f6da81a28ab3f778b4605/html5/thumbnails/20.jpg)
© C
op
yri
ght
20
10
O
beo
Génération incrémentale"Generation Gap Pattern"
Séparer code généré et non géré
![Page 21: 20100910 mda en-2010-jug_summer_camp](https://reader033.vdocuments.net/reader033/viewer/2022060204/559f6da81a28ab3f778b4605/html5/thumbnails/21.jpg)
© C
op
yri
ght
20
10
O
beo
Le bilanAvantages :
Amélioration de la productivité
Meilleure agilité technique et fonctionnelle
Inconvénients :
Difficulté à maintenir en cohérence les différents modèles
Risque de désynchronisation entre modèle et code
Intégrisme du "Tout modèle"
Lourdeurs des outils et standards UML
Déconnexion des générateurs en maintenance
![Page 22: 20100910 mda en-2010-jug_summer_camp](https://reader033.vdocuments.net/reader033/viewer/2022060204/559f6da81a28ab3f778b4605/html5/thumbnails/22.jpg)
© C
op
yri
ght
20
10
O
beo
Quelques Enseignements
![Page 23: 20100910 mda en-2010-jug_summer_camp](https://reader033.vdocuments.net/reader033/viewer/2022060204/559f6da81a28ab3f778b4605/html5/thumbnails/23.jpg)
© C
op
yri
ght
20
10
O
beo
UML : un vocabulaire générique et vaste pour représenter le monde : trop vaste, trop générique !
DSL : un vocabulaire précis et concis pour représenter une problèmatique (Domain Specific Language)
Plus simple à adopter
Plus paramétrable au métier
Plus simple à personnaliser
![Page 24: 20100910 mda en-2010-jug_summer_camp](https://reader033.vdocuments.net/reader033/viewer/2022060204/559f6da81a28ab3f778b4605/html5/thumbnails/24.jpg)
© C
op
yri
ght
20
10
O
beo
Enseignement n°2
Le PSM est rendondant avec le code source...
![Page 25: 20100910 mda en-2010-jug_summer_camp](https://reader033.vdocuments.net/reader033/viewer/2022060204/559f6da81a28ab3f778b4605/html5/thumbnails/25.jpg)
© C
op
yri
ght
20
10
O
beo
Enseignement n°3
Garder les générateurs connectés en maintenance...
Gouvernance,
Etudes d'impacts,
...
![Page 26: 20100910 mda en-2010-jug_summer_camp](https://reader033.vdocuments.net/reader033/viewer/2022060204/559f6da81a28ab3f778b4605/html5/thumbnails/26.jpg)
© C
op
yri
ght
20
10
O
beo
Le modèle doit rester :
un support de communication,
et un outil de productivité
![Page 27: 20100910 mda en-2010-jug_summer_camp](https://reader033.vdocuments.net/reader033/viewer/2022060204/559f6da81a28ab3f778b4605/html5/thumbnails/27.jpg)
© C
op
yri
ght
20
10
O
beo
N'oubliez pas vos bonnes pratiques d'ingénierie :
Svn/Git,
Build automatique et reproductible,
Intégration continue,
Tests automatisés,
Qualimétrie, ...
![Page 28: 20100910 mda en-2010-jug_summer_camp](https://reader033.vdocuments.net/reader033/viewer/2022060204/559f6da81a28ab3f778b4605/html5/thumbnails/28.jpg)
© C
op
yri
ght
20
10
O
beo
![Page 29: 20100910 mda en-2010-jug_summer_camp](https://reader033.vdocuments.net/reader033/viewer/2022060204/559f6da81a28ab3f778b4605/html5/thumbnails/29.jpg)
© C
op
yri
ght
20
10
O
beo
2010
Du MDA à
l'Ingénierie des modèles
![Page 30: 20100910 mda en-2010-jug_summer_camp](https://reader033.vdocuments.net/reader033/viewer/2022060204/559f6da81a28ab3f778b4605/html5/thumbnails/30.jpg)
© C
op
yri
ght
20
10
O
beo
Du MDA à l'ingénierie des Modèles
Une seconde génération de l'approche : on parle d'Ingénierie Dirigée par les Modèles (IDM/MDE) : MDD, MDSD, ...
Et des outils basés sur la plateforme Eclipse :
![Page 31: 20100910 mda en-2010-jug_summer_camp](https://reader033.vdocuments.net/reader033/viewer/2022060204/559f6da81a28ab3f778b4605/html5/thumbnails/31.jpg)
© C
op
yri
ght
20
10
O
beo
Un Eco-Système riche
![Page 32: 20100910 mda en-2010-jug_summer_camp](https://reader033.vdocuments.net/reader033/viewer/2022060204/559f6da81a28ab3f778b4605/html5/thumbnails/32.jpg)
© C
op
yri
ght
20
10
O
beo
Mettre en oeuvre une démarche modèle
pragmatique
![Page 33: 20100910 mda en-2010-jug_summer_camp](https://reader033.vdocuments.net/reader033/viewer/2022060204/559f6da81a28ab3f778b4605/html5/thumbnails/33.jpg)
© C
op
yri
ght
20
10
O
beo
Le process
Le CIM et le PIM deviennent des DSL
L'architecture cible est décrit par les générateurs de code
Le PSM est remplacé par le code lui-même
![Page 34: 20100910 mda en-2010-jug_summer_camp](https://reader033.vdocuments.net/reader033/viewer/2022060204/559f6da81a28ab3f778b4605/html5/thumbnails/34.jpg)
© C
op
yri
ght
20
10
O
beo
La démarche
1 – Identifier le vocabulaire manipulé (le DSL)
2 – Définir comment manipuler ce vocabulaire
3 – Définir les générateurs de code
![Page 35: 20100910 mda en-2010-jug_summer_camp](https://reader033.vdocuments.net/reader033/viewer/2022060204/559f6da81a28ab3f778b4605/html5/thumbnails/35.jpg)
© C
op
yri
ght
20
10
O
beo
1- Identifier le vocabulaire manipulé
![Page 36: 20100910 mda en-2010-jug_summer_camp](https://reader033.vdocuments.net/reader033/viewer/2022060204/559f6da81a28ab3f778b4605/html5/thumbnails/36.jpg)
© C
op
yri
ght
20
10
O
beo
Comment manipuler ce vocabulaire ?
![Page 37: 20100910 mda en-2010-jug_summer_camp](https://reader033.vdocuments.net/reader033/viewer/2022060204/559f6da81a28ab3f778b4605/html5/thumbnails/37.jpg)
© C
op
yri
ght
20
10
O
beo
En Java...
![Page 38: 20100910 mda en-2010-jug_summer_camp](https://reader033.vdocuments.net/reader033/viewer/2022060204/559f6da81a28ab3f778b4605/html5/thumbnails/38.jpg)
© C
op
yri
ght
20
10
O
beo
API EMF Java
Utile pour :
Construire des outils
Faire des imports depuis des sources d'information existantes ...
![Page 39: 20100910 mda en-2010-jug_summer_camp](https://reader033.vdocuments.net/reader033/viewer/2022060204/559f6da81a28ab3f778b4605/html5/thumbnails/39.jpg)
© C
op
yri
ght
20
10
O
beo
Représentation textuelleAvec des mots...
![Page 40: 20100910 mda en-2010-jug_summer_camp](https://reader033.vdocuments.net/reader033/viewer/2022060204/559f6da81a28ab3f778b4605/html5/thumbnails/40.jpg)
© C
op
yri
ght
20
10
O
beo
Flexible
Adaptable
Mais trop compliqué
pour nos besoins !
Ecrire un langage / un parseur ?
![Page 41: 20100910 mda en-2010-jug_summer_camp](https://reader033.vdocuments.net/reader033/viewer/2022060204/559f6da81a28ab3f778b4605/html5/thumbnails/41.jpg)
© C
op
yri
ght
20
10
O
beo
Un framework de développement de DSL textuel basé :
La plateforme Eclipse
EMF Eclipse Modeling Framework
ANTLR
![Page 42: 20100910 mda en-2010-jug_summer_camp](https://reader033.vdocuments.net/reader033/viewer/2022060204/559f6da81a28ab3f778b4605/html5/thumbnails/42.jpg)
© C
op
yri
ght
20
10
O
beo
Label Provider (outline, hyper links, content proposals, find, ...)
Content Assist
Quick Fixes
Template Proposals
Outline View
Hyperlinking
Syntax Coloring
Project Wizard
Classpath resolver : import mypackage.myEntity
Fonctionnalités
![Page 43: 20100910 mda en-2010-jug_summer_camp](https://reader033.vdocuments.net/reader033/viewer/2022060204/559f6da81a28ab3f778b4605/html5/thumbnails/43.jpg)
© C
op
yri
ght
20
10
O
beo DE
MO
Un exemple :
![Page 44: 20100910 mda en-2010-jug_summer_camp](https://reader033.vdocuments.net/reader033/viewer/2022060204/559f6da81a28ab3f778b4605/html5/thumbnails/44.jpg)
© C
op
yri
ght
20
10
O
beo
Représentation graphiqueGraphiquement...
![Page 45: 20100910 mda en-2010-jug_summer_camp](https://reader033.vdocuments.net/reader033/viewer/2022060204/559f6da81a28ab3f778b4605/html5/thumbnails/45.jpg)
© C
op
yri
ght
20
10
O
beo
Créer un DSL graphique : un DSM
Un environnement dédié
Paramétrage simples
Diagrammes hyper-ergonomiques
« Points de vue » pour l'analyse, l'architecte, …
Adaptable sur différents domaines
Basé sur Eclipse GMF
DEMO
![Page 46: 20100910 mda en-2010-jug_summer_camp](https://reader033.vdocuments.net/reader033/viewer/2022060204/559f6da81a28ab3f778b4605/html5/thumbnails/46.jpg)
© C
op
yri
ght
20
10
O
beo
Le système à modéliser
Les vues du système (les diagrammes)
(
Le point de vue
Du DSM au point de vue !Du DSM au point de vue !
Les vues du Système
● Analyse de performance● Analyse d'exigences● Fonction / Sous Fonction● Hardware / Software● DBA● Urbaniste des services● Orienté données● Orienté traitements● Orienté sécurité● ...
● Diagramme de blocs● Diagramme de composants● Diagramme de séquences● Tableur, Matrice
![Page 47: 20100910 mda en-2010-jug_summer_camp](https://reader033.vdocuments.net/reader033/viewer/2022060204/559f6da81a28ab3f778b4605/html5/thumbnails/47.jpg)
© C
op
yri
ght
20
10
O
beo
Une vision unifiée...
![Page 48: 20100910 mda en-2010-jug_summer_camp](https://reader033.vdocuments.net/reader033/viewer/2022060204/559f6da81a28ab3f778b4605/html5/thumbnails/48.jpg)
© C
op
yri
ght
20
10
O
beo
Un modèle pour Tous
![Page 49: 20100910 mda en-2010-jug_summer_camp](https://reader033.vdocuments.net/reader033/viewer/2022060204/559f6da81a28ab3f778b4605/html5/thumbnails/49.jpg)
© C
op
yri
ght
20
10
O
beo
Dois-je partir d'une feuille blanche ?
![Page 53: 20100910 mda en-2010-jug_summer_camp](https://reader033.vdocuments.net/reader033/viewer/2022060204/559f6da81a28ab3f778b4605/html5/thumbnails/53.jpg)
© C
op
yri
ght
20
10
O
beo
Autres exemples
![Page 54: 20100910 mda en-2010-jug_summer_camp](https://reader033.vdocuments.net/reader033/viewer/2022060204/559f6da81a28ab3f778b4605/html5/thumbnails/54.jpg)
© C
op
yri
ght
20
10
O
beo
Traçabilité
![Page 55: 20100910 mda en-2010-jug_summer_camp](https://reader033.vdocuments.net/reader033/viewer/2022060204/559f6da81a28ab3f778b4605/html5/thumbnails/55.jpg)
© C
op
yri
ght
20
10
O
beo
Le mot de la fin...
DSL + DSM + Acceleo = Approche modèle efficace
![Page 56: 20100910 mda en-2010-jug_summer_camp](https://reader033.vdocuments.net/reader033/viewer/2022060204/559f6da81a28ab3f778b4605/html5/thumbnails/56.jpg)
© C
op
yri
ght
20
10
O
beo
Des Questions ?