20100910 mda en-2010-jug_summer_camp

Preview:

Citation preview

Le MDA en 2010 : Une vision pragmatique

nommée Acceleo

Le 10 Septembre 2010

Jérôme BENOISjerome.benois@obeo.fr

© 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

http://www.obeonetwork.org

© C

op

yri

ght

20

10

O

beo

http://www.obeonetwork.org

© C

op

yri

ght

20

10

O

beo

http://www.obeonetwork.org

© 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 ?

© C

op

yri

ght

20

10

O

beo

Merci

jerome.benois@obeo.fr

Recommended