Upload
jeromebenois
View
618
Download
0
Embed Size (px)
Citation preview
Le MDA en 2010 : Une vision pragmatique
nommée Acceleo
Le 10 Septembre 2010
Jérôme [email protected]
© 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
© 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
© 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
© C
op
yri
ght
20
10
O
beo
© C
op
yri
ght
20
10
O
beo
Un peu d'Histoire
© C
op
yri
ght
20
10
O
beo
Le MDA : Model Driven Architecture
© 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
© 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 ?
© C
op
yri
ght
20
10
O
beo
© 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
© C
op
yri
ght
20
10
O
beo
La démarche MDA
© 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
© 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
...
© 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
...
© C
op
yri
ght
20
10
O
beo
© 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, ...)
© C
op
yri
ght
20
10
O
beo DE
MO
© C
op
yri
ght
20
10
O
beo
Génération incrémentale"User-Code Pattern"
© 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é
© 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
© C
op
yri
ght
20
10
O
beo
Quelques Enseignements
© 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
© C
op
yri
ght
20
10
O
beo
Enseignement n°2
Le PSM est rendondant avec le code source...
© C
op
yri
ght
20
10
O
beo
Enseignement n°3
Garder les générateurs connectés en maintenance...
Gouvernance,
Etudes d'impacts,
...
© C
op
yri
ght
20
10
O
beo
Le modèle doit rester :
un support de communication,
et un outil de productivité
© 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, ...
© C
op
yri
ght
20
10
O
beo
© C
op
yri
ght
20
10
O
beo
2010
Du MDA à
l'Ingénierie des modèles
© 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 :
© C
op
yri
ght
20
10
O
beo
Un Eco-Système riche
© C
op
yri
ght
20
10
O
beo
Mettre en oeuvre une démarche modèle
pragmatique
© 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
© 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
© C
op
yri
ght
20
10
O
beo
1- Identifier le vocabulaire manipulé
© C
op
yri
ght
20
10
O
beo
Comment manipuler ce vocabulaire ?
© C
op
yri
ght
20
10
O
beo
En Java...
© 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 ...
© C
op
yri
ght
20
10
O
beo
Représentation textuelleAvec des mots...
© C
op
yri
ght
20
10
O
beo
Flexible
Adaptable
Mais trop compliqué
pour nos besoins !
Ecrire un langage / un parseur ?
© 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
© 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
© C
op
yri
ght
20
10
O
beo DE
MO
Un exemple :
© C
op
yri
ght
20
10
O
beo
Représentation graphiqueGraphiquement...
© 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
© 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
© C
op
yri
ght
20
10
O
beo
Une vision unifiée...
© C
op
yri
ght
20
10
O
beo
Un modèle pour Tous
© C
op
yri
ght
20
10
O
beo
Dois-je partir d'une feuille blanche ?
© C
op
yri
ght
20
10
O
beo
Autres exemples
© C
op
yri
ght
20
10
O
beo
Traçabilité
© C
op
yri
ght
20
10
O
beo
Le mot de la fin...
DSL + DSM + Acceleo = Approche modèle efficace
© C
op
yri
ght
20
10
O
beo
Des Questions ?