Le MDA en 2010 :
Une vision pragmatique
   nommée Acceleo


     Le 10 Septembre 2010


        Jérôme BENOIS
    jerome.benois@obeo.fr
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
© Copyright 2010
     Obeo
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
© Copyright 2010
     Obeo
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
© Copyright 2010
     Obeo
© Copyright 2010
     Obeo
© Copyright 2010
     Obeo




                   Un peu d'Histoire
Le MDA :
                   Model Driven Architecture
© Copyright 2010
     Obeo
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
© Copyright 2010
     Obeo
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 ?




                   Les questions que se pose la DSI
© Copyright 2010
     Obeo
© Copyright 2010
     Obeo
La solution imaginée en 2000 par l'OMG
                    Utiliser 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
© Copyright 2010
     Obeo
© Copyright 2010
     Obeo




                   La démarche MDA
CIM : Computation Independent Model

                                     Il se concentre sur les
                                     exigences du système :
                                       Use Case Diagram
                                       Sequence Diagram
© Copyright 2010
     Obeo
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
                                      ...
© Copyright 2010
     Obeo
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
                                    ...
© Copyright 2010
     Obeo
© Copyright 2010
     Obeo
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, ...)
© Copyright 2010




                      Outillage Eclipse (complétion, coloration syntaxique, ...)
     Obeo
© Copyright 2010
     Obeo




      DEM
              O
Génération incrémentale
                     "User-Code Pattern"
© Copyright 2010
     Obeo
Génération incrémentale
                   "Generation Gap Pattern"




                    Séparer code généré et non géré
© Copyright 2010
     Obeo
Le bilan
                   Avantages :
                     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
© Copyright 2010
     Obeo
Quelques Enseignements
© Copyright 2010
     Obeo
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
© Copyright 2010
     Obeo
Enseignement n°2
© Copyright 2010
     Obeo




 Le PSM est rendondant avec le code source...
Garder les générateurs connectés en maintenance...
                                    Enseignement n°3




                     Gouvernance,
                     Etudes d'impacts,
© Copyright 2010




                     ...
     Obeo
Le modèle doit rester :
                     un support de communication,
                     et un outil de productivité
© Copyright 2010
     Obeo
N'oubliez pas vos bonnes pratiques d'ingénierie :
                     Svn/Git,
                     Build automatique et reproductible,
                     Intégration continue,
                     Tests automatisés,
                     Qualimétrie, ...
© Copyright 2010
     Obeo
© Copyright 2010
     Obeo
2010


                           Du MDA
                               à
                   l'Ingénierie des modèles
© Copyright 2010
     Obeo
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 :
© Copyright 2010
     Obeo
Un Eco-Système riche
© Copyright 2010
     Obeo
Mettre en oeuvre une
                    démarche modèle
                       pragmatique
© Copyright 2010
     Obeo
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
© Copyright 2010
     Obeo
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
© Copyright 2010
     Obeo
1- Identifier le vocabulaire manipulé
© Copyright 2010
     Obeo
Comment manipuler
                     ce vocabulaire ?
© Copyright 2010
     Obeo
© Copyright 2010
     Obeo




               En Java...
API EMF Java




                   Utile pour :
© Copyright 2010




                      Construire des outils
     Obeo




                      Faire des imports depuis des sources d'information existantes ...
Représentation textuelle
                      Avec des mots...
© Copyright 2010
     Obeo
Ecrire un langage / un parseur ?
                   Flexible


                   Adaptable




                   Mais trop compliqué
                   pour nos besoins !
© Copyright 2010
     Obeo
Un framework de développement de DSL textuel basé :
                     La plateforme Eclipse
                     EMF Eclipse Modeling Framework
                     ANTLR
© Copyright 2010
     Obeo
Fonctionnalités
                   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
© Copyright 2010
     Obeo
© Copyright 2010
     Obeo




                   Un exemple :




      DEM
              O
Représentation graphique
                      Graphiquement...
© Copyright 2010
     Obeo
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
© Copyright 2010




                                                                                O
                                                                              EM
     Obeo




                                                                             D
Du DSM au point de vue !

                                                  Le système à modéliser




          Le point de vue
                   ●   Analyse de performance
                   ●   Analyse d'exigences
                   ●   Fonction / Sous Fonction                                Les vues du
                   ●   Hardware / Software                                      Système
                   ●   DBA                                                 ●    Diagramme de blocs
                   ●   Urbaniste des services                              ●    Diagramme de composants
                   ●   Orienté données                                     ●    Diagramme de séquences
                   ●   Orienté traitements
© Copyright 2010




                                                                           ●    Tableur, Matrice
                   ●   Orienté sécurité
                       ...
     Obeo




                   ●

                                                                     Les vues du système
                                                                       (les diagrammes)
Une vision unifiée...
© Copyright 2010
     Obeo
© Copyright 2010
     Obeo




                   Un modèle pour Tous
Dois-je partir d'une feuille
                            blanche ?
© Copyright 2010
     Obeo
http://www.obeonetwork.org
© Copyright 2010
     Obeo
http://www.obeonetwork.org
© Copyright 2010
     Obeo
http://www.obeonetwork.org
© Copyright 2010
     Obeo
© Copyright 2010
     Obeo




                   Autres exemples
© Copyright 2010
     Obeo




                   Traçabilité
Le mot de la fin...




                   DSL + DSM + Acceleo = Approche modèle efficace
© Copyright 2010
     Obeo
© Copyright 2010
     Obeo




                   Des Questions ?
Merci



                   jerome.benois@obeo.fr
© Copyright 2010
     Obeo

20100910 mda en-2010-jug_summer_camp

  • 1.
    Le MDA en2010 : Une vision pragmatique nommée Acceleo Le 10 Septembre 2010 Jérôme BENOIS jerome.benois@obeo.fr
  • 2.
    Le but decette session Montrer : Les apports de la démarche MDA Comment mettre en oeuvre cette démarche en utilisant le projet Eclipse Modeling © Copyright 2010 Obeo
  • 3.
    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 © Copyright 2010 Obeo
  • 4.
    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 © Copyright 2010 Obeo
  • 5.
  • 6.
    © Copyright 2010 Obeo Un peu d'Histoire
  • 7.
    Le MDA : Model Driven Architecture © Copyright 2010 Obeo
  • 8.
    Le constat del'é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 © Copyright 2010 Obeo
  • 9.
    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 ? Les questions que se pose la DSI © Copyright 2010 Obeo
  • 10.
  • 11.
    La solution imaginéeen 2000 par l'OMG Utiliser 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 © Copyright 2010 Obeo
  • 12.
    © Copyright 2010 Obeo La démarche MDA
  • 13.
    CIM : ComputationIndependent Model Il se concentre sur les exigences du système : Use Case Diagram Sequence Diagram © Copyright 2010 Obeo
  • 14.
    PIM : PlatformIndependent 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 ... © Copyright 2010 Obeo
  • 15.
    PSM : PlatformSpecific 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 ... © Copyright 2010 Obeo
  • 16.
  • 17.
    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, ...) © Copyright 2010 Outillage Eclipse (complétion, coloration syntaxique, ...) Obeo
  • 18.
  • 19.
    Génération incrémentale "User-Code Pattern" © Copyright 2010 Obeo
  • 20.
    Génération incrémentale "Generation Gap Pattern" Séparer code généré et non géré © Copyright 2010 Obeo
  • 21.
    Le bilan Avantages : 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 © Copyright 2010 Obeo
  • 22.
  • 23.
    UML : unvocabulaire 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 © Copyright 2010 Obeo
  • 24.
    Enseignement n°2 © Copyright2010 Obeo Le PSM est rendondant avec le code source...
  • 25.
    Garder les générateursconnectés en maintenance... Enseignement n°3 Gouvernance, Etudes d'impacts, © Copyright 2010 ... Obeo
  • 26.
    Le modèle doitrester : un support de communication, et un outil de productivité © Copyright 2010 Obeo
  • 27.
    N'oubliez pas vosbonnes pratiques d'ingénierie : Svn/Git, Build automatique et reproductible, Intégration continue, Tests automatisés, Qualimétrie, ... © Copyright 2010 Obeo
  • 28.
  • 29.
    2010 Du MDA à l'Ingénierie des modèles © Copyright 2010 Obeo
  • 30.
    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 : © Copyright 2010 Obeo
  • 31.
    Un Eco-Système riche ©Copyright 2010 Obeo
  • 32.
    Mettre en oeuvreune démarche modèle pragmatique © Copyright 2010 Obeo
  • 33.
    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 © Copyright 2010 Obeo
  • 34.
    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 © Copyright 2010 Obeo
  • 35.
    1- Identifier levocabulaire manipulé © Copyright 2010 Obeo
  • 36.
    Comment manipuler ce vocabulaire ? © Copyright 2010 Obeo
  • 37.
    © Copyright 2010 Obeo En Java...
  • 38.
    API EMF Java Utile pour : © Copyright 2010 Construire des outils Obeo Faire des imports depuis des sources d'information existantes ...
  • 39.
    Représentation textuelle Avec des mots... © Copyright 2010 Obeo
  • 40.
    Ecrire un langage/ un parseur ? Flexible Adaptable Mais trop compliqué pour nos besoins ! © Copyright 2010 Obeo
  • 41.
    Un framework dedéveloppement de DSL textuel basé : La plateforme Eclipse EMF Eclipse Modeling Framework ANTLR © Copyright 2010 Obeo
  • 42.
    Fonctionnalités 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 © Copyright 2010 Obeo
  • 43.
    © Copyright 2010 Obeo Un exemple : DEM O
  • 44.
    Représentation graphique Graphiquement... © Copyright 2010 Obeo
  • 45.
    Créer un DSLgraphique : 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 © Copyright 2010 O EM Obeo D
  • 46.
    Du DSM aupoint de vue ! Le système à modéliser Le point de vue ● Analyse de performance ● Analyse d'exigences ● Fonction / Sous Fonction Les vues du ● Hardware / Software Système ● DBA ● Diagramme de blocs ● Urbaniste des services ● Diagramme de composants ● Orienté données ● Diagramme de séquences ● Orienté traitements © Copyright 2010 ● Tableur, Matrice ● Orienté sécurité ... Obeo ● Les vues du système (les diagrammes)
  • 47.
    Une vision unifiée... ©Copyright 2010 Obeo
  • 48.
    © Copyright 2010 Obeo Un modèle pour Tous
  • 49.
    Dois-je partir d'unefeuille blanche ? © Copyright 2010 Obeo
  • 50.
  • 51.
  • 52.
  • 53.
    © Copyright 2010 Obeo Autres exemples
  • 54.
    © Copyright 2010 Obeo Traçabilité
  • 55.
    Le mot dela fin... DSL + DSM + Acceleo = Approche modèle efficace © Copyright 2010 Obeo
  • 56.
    © Copyright 2010 Obeo Des Questions ?
  • 57.
    Merci jerome.benois@obeo.fr © Copyright 2010 Obeo