57
Le MDA en 2010 : Une vision pragmatique nommée Acceleo Le 10 Septembre 2010 Jérôme BENOIS [email protected]

20100910 mda en-2010-jug_summer_camp

Embed Size (px)

Citation preview

Page 1: 20100910 mda en-2010-jug_summer_camp

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

© 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

© 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

© 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

© C

op

yri

ght

20

10

O

beo

Page 6: 20100910 mda en-2010-jug_summer_camp

© C

op

yri

ght

20

10

O

beo

Un peu d'Histoire

Page 7: 20100910 mda en-2010-jug_summer_camp

© C

op

yri

ght

20

10

O

beo

Le MDA : Model Driven Architecture

Page 8: 20100910 mda en-2010-jug_summer_camp

© 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

© 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

© C

op

yri

ght

20

10

O

beo

Page 11: 20100910 mda en-2010-jug_summer_camp

© 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

© C

op

yri

ght

20

10

O

beo

La démarche MDA

Page 13: 20100910 mda en-2010-jug_summer_camp

© 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

© 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

© 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

© C

op

yri

ght

20

10

O

beo

Page 17: 20100910 mda en-2010-jug_summer_camp

© 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

© C

op

yri

ght

20

10

O

beo DE

MO

Page 19: 20100910 mda en-2010-jug_summer_camp

© 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

© 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

© 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

© C

op

yri

ght

20

10

O

beo

Quelques Enseignements

Page 23: 20100910 mda en-2010-jug_summer_camp

© 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

© 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

© 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

© 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

© 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

© C

op

yri

ght

20

10

O

beo

Page 29: 20100910 mda en-2010-jug_summer_camp

© 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

© 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

© C

op

yri

ght

20

10

O

beo

Un Eco-Système riche

Page 32: 20100910 mda en-2010-jug_summer_camp

© 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

© 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

© 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

© C

op

yri

ght

20

10

O

beo

1- Identifier le vocabulaire manipulé

Page 36: 20100910 mda en-2010-jug_summer_camp

© C

op

yri

ght

20

10

O

beo

Comment manipuler ce vocabulaire ?

Page 37: 20100910 mda en-2010-jug_summer_camp

© C

op

yri

ght

20

10

O

beo

En Java...

Page 38: 20100910 mda en-2010-jug_summer_camp

© 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

© C

op

yri

ght

20

10

O

beo

Représentation textuelleAvec des mots...

Page 40: 20100910 mda en-2010-jug_summer_camp

© 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

© 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

© 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

© C

op

yri

ght

20

10

O

beo DE

MO

Un exemple :

Page 44: 20100910 mda en-2010-jug_summer_camp

© C

op

yri

ght

20

10

O

beo

Représentation graphiqueGraphiquement...

Page 45: 20100910 mda en-2010-jug_summer_camp

© 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

© 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

© C

op

yri

ght

20

10

O

beo

Une vision unifiée...

Page 48: 20100910 mda en-2010-jug_summer_camp

© C

op

yri

ght

20

10

O

beo

Un modèle pour Tous

Page 49: 20100910 mda en-2010-jug_summer_camp

© C

op

yri

ght

20

10

O

beo

Dois-je partir d'une feuille blanche ?

Page 50: 20100910 mda en-2010-jug_summer_camp

© C

op

yri

ght

20

10

O

beo

http://www.obeonetwork.org

Page 51: 20100910 mda en-2010-jug_summer_camp

© C

op

yri

ght

20

10

O

beo

http://www.obeonetwork.org

Page 52: 20100910 mda en-2010-jug_summer_camp

© C

op

yri

ght

20

10

O

beo

http://www.obeonetwork.org

Page 53: 20100910 mda en-2010-jug_summer_camp

© C

op

yri

ght

20

10

O

beo

Autres exemples

Page 54: 20100910 mda en-2010-jug_summer_camp

© C

op

yri

ght

20

10

O

beo

Traçabilité

Page 55: 20100910 mda en-2010-jug_summer_camp

© 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

© C

op

yri

ght

20

10

O

beo

Des Questions ?

Page 57: 20100910 mda en-2010-jug_summer_camp

© C

op

yri

ght

20

10

O

beo

Merci

[email protected]