Modélisation et points de vue Entre abstraction et pragmatisme Journée de l'IDM 2010 Mariot CHAUVIN [email_address]
Mariot CHAUVIN <ul><li>Ingénieur – &quot;Model Driven Expert&quot;
Responsable de l'atelier de modélisation Obeo Designer
Committer Eclipse sur GMF, SWTBot, Sketch
http://mariot-thoughts.blogspot.com  &  http://twitter.com/mchv   </li></ul>
Universalisme  Work Work Break Break
Break Il n'y a pas de langage universel
DSL <ul><li>Un langage spécifique à un domaine  </li><ul><li>Peut-être  Textuel  ou  Graphique
Définit le  vocabulaire d'un domaine  de connaissance particulier : </li><ul><li>Par des mots
Par des représentations graphiques </li></ul><li>A ces caractéristiques : simplicité, expressivité, explicite, ciblé, non ...
Des exemples de DSL <ul><li>Notation :  </li><ul><li>Musicale :
Rubik's cube </li></ul><li>Métier :  </li><ul><li>Calcul de polices d'assurances
Définition de règles métiers bancaires </li></ul><li>Techniques : </li><ul><li>SQL :  SELECT * FROM RESEARCHERS WHERE LIFL...
CSS :  body { background-color: #CCCCCC; }
Regex :  b[A-Z0-9._%+-]+@[A-Z0-9.-]+.[A-Z]{2,4}b  </li></ul><li>... </li></ul>
Modélisation et points de vue <ul><li>Un modèle n'est qu'une representation possible </li><ul><li>Plusieurs modèles peuven...
Chaque modèle peut correspondre à une vue </li></ul><li>Les DSL permettent la séparation des préoccupations </li><ul><li>C...
L'outillage doit permettre de les séparer  </li></ul></ul>
Obeo <ul><li>Éditeur spécialiste des approches  modèles </li><ul><li>Nantes en 2005, Paris depuis 2007
50  spécialistes  MDE
Activité 2009 : 2,5 M€ en  croissance  de 40%
Société Française indépendante
Investissement R&D à hauteur de 30% des revenus </li></ul></ul>
Implication dans Eclipse <ul><li>Membre stratégique
Leader de 5 projets
14 Committers
1 400 000 lignes de code contribuées </li></ul>
Intérêts de la modélisation <ul><li>Montée en abstraction </li><ul><li>Passage des concepts devant la technologie
Séparation des préocuppations fonctionelles et techniques </li></ul><li>Capitalisation </li><ul><li>Des connaissances sur ...
Des bonnes pratiques sur le domaine technique </li></ul><li>Automatisation </li><ul><li>Génération possible sans perte de ...
Réutilisation  </li></ul></ul>
Problèmes en pratique <ul><li>Le code généré est affreux </li><ul><li>Difficile à comprendre
Non maintenable
Pas performant </li></ul><li>La modélisation contraint nos processus </li><ul><li>Difficulté de modification du code génér...
Sur un vrai projet le diagramme de classe est illllisible </li></ul></ul>
Break adaptabilité
Break souplesse
Break outillage
Quel est le besoin ? <ul><li>Adaptabilité </li><ul><li>Utiliser des DSL à la place de UML
Écrire/Surcharger les templates de génération </li></ul><li>Souplesse </li><ul><li>CIM, PIM, PSM ne sont pas forcément uti...
La génération n'est pas obligatoire
Les diagrammes ne sont pas le seul type de représentation </li></ul><li>Outillage </li><ul><li>La traçabilité permet de gé...
Les éditeurs doivent améliorer la productivité </li></ul></ul>
Approche et Vision <ul><li>Pragmatisme </li><ul><li>Disposer d'un outillage complet autour d'une technologie
Prochain SlideShare
Chargement dans…5
×

Modélisation et points de vue : Entre abstraction et pragmatisme

1 669 vues

Publié le

0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
1 669
Sur SlideShare
0
Issues des intégrations
0
Intégrations
5
Actions
Partages
0
Téléchargements
21
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive
  • Iconographie inspiré de la publicité HSBC, qui montre que la perception varie en fonction du point de vue. Sur les images : - en haut point de vue d&apos;&apos;un commercial/manager - en bas point de vue d&apos;un développeur java
  • Tour de Babel pour illustrer le fait qu&apos;il n&apos;y a pas de langage universel. Chaque langage correspond à une perception du système/de la réalité qu&apos;il décrit. Se limiter à un langage pour décrire l&apos;ensemble des choses / du monde c&apos;est effacer toutes les subtilités. =&gt; UML ne suffit pas et n&apos;est pas assez ciblé. Bergson « la pensée n’existe que dans les mots » Hegel.
  • Très forte implication dans la fondation Eclipse et particulièrement dans le groupe modeling. Rappeller que Eclipse est une fondation dont le but est de créer des ecosystèmes sur lesquels les éditeurs de logiciels peuvent s&apos;appuyer et les utilisateurs mutualiser une partie des côuts de developpement.
  • La montée en abstraction permet de revenir au besoin de l&apos;utilisateur avant de se pencher sur la solution technique. La capitalisation est aussi vrai sur les générateurs que pour la rétro-modélisation. La perte de synchronisation entre code et documentation est un bon exemple.
  • Tour de Babel pour illustrer le fait qu&apos;il n&apos;y a pas de langage universel. Chaque langage correspond à une perception du système/de la réalité qu&apos;il décrit. Se limiter à un langage pour décrire l&apos;ensemble des choses / du monde c&apos;est effacer toutes les subtilités. =&gt; UML ne suffit pas et n&apos;est pas assez ciblé. Bergson « la pensée n’existe que dans les mots » Hegel.
  • Tour de Babel pour illustrer le fait qu&apos;il n&apos;y a pas de langage universel. Chaque langage correspond à une perception du système/de la réalité qu&apos;il décrit. Se limiter à un langage pour décrire l&apos;ensemble des choses / du monde c&apos;est effacer toutes les subtilités. =&gt; UML ne suffit pas et n&apos;est pas assez ciblé. Bergson « la pensée n’existe que dans les mots » Hegel.
  • Tour de Babel pour illustrer le fait qu&apos;il n&apos;y a pas de langage universel. Chaque langage correspond à une perception du système/de la réalité qu&apos;il décrit. Se limiter à un langage pour décrire l&apos;ensemble des choses / du monde c&apos;est effacer toutes les subtilités. =&gt; UML ne suffit pas et n&apos;est pas assez ciblé. Bergson « la pensée n’existe que dans les mots » Hegel.
  • Code affreux -&gt; je suis responsable du code que je génère, car c&apos;est moi qui est écrit les templates Modélisation contraignante -&gt; elle est orthogonale aux processus, les outils doivents pouvoir s&apos;adapter à ma manière de travailler Diagrammes par défaut ne conviennent pas -&gt; spécifier moi même mes diagrammes, utiliser des outils qui supporte la montée en charge, en n&apos;affichant que l&apos;information utile. Utiliser d&apos;autres types de représentation si un diagramme n&apos;est pas le plus adapté.
  • Tour de Babel pour illustrer le fait qu&apos;il n&apos;y a pas de langage universel. Chaque langage correspond à une perception du système/de la réalité qu&apos;il décrit. Se limiter à un langage pour décrire l&apos;ensemble des choses / du monde c&apos;est effacer toutes les subtilités. =&gt; UML ne suffit pas et n&apos;est pas assez ciblé. Bergson « la pensée n’existe que dans les mots » Hegel.
  • Tour de Babel pour illustrer le fait qu&apos;il n&apos;y a pas de langage universel. Chaque langage correspond à une perception du système/de la réalité qu&apos;il décrit. Se limiter à un langage pour décrire l&apos;ensemble des choses / du monde c&apos;est effacer toutes les subtilités. =&gt; UML ne suffit pas et n&apos;est pas assez ciblé. Bergson « la pensée n’existe que dans les mots » Hegel.
  • Faire remarquer qu&apos;on a une décorrélation entre la partie aspect graphique et le comportement. Noter que l&apos;utilisation d&apos;un langage de requêtage (Acceleo ou OCL ) pour la specification des candidats permet d&apos;avoir un couplage faible avec l&apos;architecture du métamodèle.
  • Faire remarquer qu&apos;on a une décorrélation entre la partie aspect graphique et le comportement. Noter que l&apos;utilisation d&apos;un langage de requêtage (Acceleo ou OCL ) pour la specification des candidats permet d&apos;avoir un couplage faible avec l&apos;architecture du métamodèle.
  • Modélisation et points de vue : Entre abstraction et pragmatisme

    1. 1. Modélisation et points de vue Entre abstraction et pragmatisme Journée de l'IDM 2010 Mariot CHAUVIN [email_address]
    2. 2. Mariot CHAUVIN <ul><li>Ingénieur – &quot;Model Driven Expert&quot;
    3. 3. Responsable de l'atelier de modélisation Obeo Designer
    4. 4. Committer Eclipse sur GMF, SWTBot, Sketch
    5. 5. http://mariot-thoughts.blogspot.com & http://twitter.com/mchv </li></ul>
    6. 6. Universalisme Work Work Break Break
    7. 7. Break Il n'y a pas de langage universel
    8. 8. DSL <ul><li>Un langage spécifique à un domaine </li><ul><li>Peut-être Textuel ou Graphique
    9. 9. Définit le vocabulaire d'un domaine de connaissance particulier : </li><ul><li>Par des mots
    10. 10. Par des représentations graphiques </li></ul><li>A ces caractéristiques : simplicité, expressivité, explicite, ciblé, non ambigu </li></ul></ul>
    11. 11. Des exemples de DSL <ul><li>Notation : </li><ul><li>Musicale :
    12. 12. Rubik's cube </li></ul><li>Métier : </li><ul><li>Calcul de polices d'assurances
    13. 13. Définition de règles métiers bancaires </li></ul><li>Techniques : </li><ul><li>SQL : SELECT * FROM RESEARCHERS WHERE LIFL_MEMBER=1;
    14. 14. CSS : body { background-color: #CCCCCC; }
    15. 15. Regex : b[A-Z0-9._%+-]+@[A-Z0-9.-]+.[A-Z]{2,4}b </li></ul><li>... </li></ul>
    16. 16. Modélisation et points de vue <ul><li>Un modèle n'est qu'une representation possible </li><ul><li>Plusieurs modèles peuvent décrire la même chose
    17. 17. Chaque modèle peut correspondre à une vue </li></ul><li>Les DSL permettent la séparation des préoccupations </li><ul><li>Chaque DSL peut cibler une préoccupation </li></ul><li>La notion de point de vue est plus vaste que le DSL </li><ul><li>Un DSL peut couvrir plusieurs préoccupations
    18. 18. L'outillage doit permettre de les séparer </li></ul></ul>
    19. 19. Obeo <ul><li>Éditeur spécialiste des approches modèles </li><ul><li>Nantes en 2005, Paris depuis 2007
    20. 20. 50 spécialistes MDE
    21. 21. Activité 2009 : 2,5 M€ en croissance de 40%
    22. 22. Société Française indépendante
    23. 23. Investissement R&D à hauteur de 30% des revenus </li></ul></ul>
    24. 24. Implication dans Eclipse <ul><li>Membre stratégique
    25. 25. Leader de 5 projets
    26. 26. 14 Committers
    27. 27. 1 400 000 lignes de code contribuées </li></ul>
    28. 28. Intérêts de la modélisation <ul><li>Montée en abstraction </li><ul><li>Passage des concepts devant la technologie
    29. 29. Séparation des préocuppations fonctionelles et techniques </li></ul><li>Capitalisation </li><ul><li>Des connaissances sur le domaine métier
    30. 30. Des bonnes pratiques sur le domaine technique </li></ul><li>Automatisation </li><ul><li>Génération possible sans perte de synchronisation
    31. 31. Réutilisation </li></ul></ul>
    32. 32. Problèmes en pratique <ul><li>Le code généré est affreux </li><ul><li>Difficile à comprendre
    33. 33. Non maintenable
    34. 34. Pas performant </li></ul><li>La modélisation contraint nos processus </li><ul><li>Difficulté de modification du code généré sans désynchronisation du modèle </li></ul><li>Les diagrammes ne conviennent pas </li><ul><li>Les différents types de diagramme UML2 sont trop complexes
    35. 35. Sur un vrai projet le diagramme de classe est illllisible </li></ul></ul>
    36. 36. Break adaptabilité
    37. 37. Break souplesse
    38. 38. Break outillage
    39. 39. Quel est le besoin ? <ul><li>Adaptabilité </li><ul><li>Utiliser des DSL à la place de UML
    40. 40. Écrire/Surcharger les templates de génération </li></ul><li>Souplesse </li><ul><li>CIM, PIM, PSM ne sont pas forcément utiles
    41. 41. La génération n'est pas obligatoire
    42. 42. Les diagrammes ne sont pas le seul type de représentation </li></ul><li>Outillage </li><ul><li>La traçabilité permet de gérer la synchronisation
    43. 43. Les éditeurs doivent améliorer la productivité </li></ul></ul>
    44. 44. Approche et Vision <ul><li>Pragmatisme </li><ul><li>Disposer d'un outillage complet autour d'une technologie
    45. 45. Adapter les outils à ses besoins </li></ul><li>Le modèle est le nouveau middleware </li><ul><li>Pas besoin de créer des &quot;ponts&quot; entre les applications
    46. 46. Concentration sur les données
    47. 47. Chaque application définit ses DSL et ses points de vue </li></ul></ul>
    48. 48. Break Des modèles pour tous
    49. 49. Génération de texte : Acceleo
    50. 50. Génération de texte : Acceleo <ul><li>I mplémentation du standard OMG MOF to Text Language
    51. 51. Licence EPL
    52. 52. Outillage avancé </li><ul><li>Complétion
    53. 53. Coloration syntaxique
    54. 54. Corrections rapides
    55. 55. Actions de refactoring
    56. 56. Debugger
    57. 57. Profiler
    58. 58. Compilation à la volée avant sauvegarde </li></ul><li>Modules de générations prêt à l'emploi </li></ul>
    59. 59. Génération de texte : Acceleo
    60. 60. Transformation de modèle : ATL <ul><li>Langage de transformation basé sur des règles
    61. 61. Licence EPL
    62. 62. Outillage avancé </li><ul><li>Complétion
    63. 63. Coloration syntaxique
    64. 64. Navigation
    65. 65. Debugger
    66. 66. Profiler
    67. 67. Wizards </li></ul><li>Nombreux exemples de transformations </li></ul>
    68. 68. Transformation de modèle : ATL
    69. 69. Transformation de modèle : ATL
    70. 70. Migration et cartographie : Agility
    71. 71. Migration et cartographie : Agility <ul><li>Parseur paramétrable </li><ul><li>Retromodélisation aisée de 80% du code </li></ul><li>Traçabilité et synchronisation </li><ul><li>Granularité fine pour tous les éléments de la migration
    72. 72. Connaissance du code ignoré par le parseur grâce à la regénération. </li></ul><li>Modules d'extraction </li><ul><li>JavaEE
    73. 73. VB6, C++, ADA
    74. 74. Forte, Progress, Cobol </li></ul><li>Modules de traduction </li><ul><li>VB6 -> VB.Net, VB6 -> Java
    75. 75. OracleForms -> JavaEE
    76. 76. ADA -> C++ </li></ul></ul>
    77. 77. Traçabilité : Traceability
    78. 78. Traçabilité : Traceability
    79. 79. Break Comparaison
    80. 80. Comparaison : EMF Compare <ul><li>Générique
    81. 81. Extensible
    82. 82. Fonctionnalités avancées </li><ul><li>Comparaison 3 voies
    83. 83. Liens inter-modèle
    84. 84. Export </li></ul></ul>
    85. 85. Modélisation graphique : Viewpoint <ul><li>Outil dirigé par les points de vue </li><ul><li>Spécification des points de vue
    86. 86. Conforme à la définition de l'IEEE 1471 (2000) </li></ul><li>Outil de modélisation graphique paramétrable </li><ul><li>Modèle de paramétrage interprété à l'exécution
    87. 87. Modifications prises en compte à la volée </li></ul><li>Plusieurs types de représentations </li><ul><li>Diagrammes
    88. 88. Tableaux
    89. 89. Éditeurs arborescents </li></ul></ul>
    90. 90. Exemples de modeleurs
    91. 91. Exemples de modeleurs
    92. 92. Exemples de modeleurs
    93. 93. Points de vue <ul><li>Paramétrage </li><ul><li>Définition des points de vues
    94. 94. Définition des types de représentations associés à chaque point de vue
    95. 95. Un point de vue peut contribuer des extensions à une représentation </li></ul><li>Exécution </li><ul><li>L'utilisateur sélectionne les points de vue activés
    96. 96. Les représentations disponibles varient en fonction des point de vue activés
    97. 97. Les fonctionnalités varient en fonction des point de vue activés </li></ul></ul>
    98. 98. Points de vue Paramétrage Exécution
    99. 99. Représentations <ul><li>Mappings </li><ul><li>Liens entre les éléments du modèle et leur représentation visuelle
    100. 100. Langage de requêtage pour spécifier les candidats et des conditions </li></ul><li>Outils </li><ul><li>Définition complète du comportement (création, suppression, édition, etc...)
    101. 101. Utilisation d'un DSL pour modifier le modèle sémantique en réaction à une requête </li></ul></ul>
    102. 102. Diagrammes <ul><li>Mappings </li><ul><li>Conteneurs, nœuds, nœuds en bordure et connexions
    103. 103. Styles graphiques : rectangle, losange, point, image, etc... </li></ul><li>Outils </li><ul><li>Reconnexion, édition instantanée, navigation entre représentations, etc.. </li></ul></ul>
    104. 104. Diagrammes Paramétrage Exécution
    105. 105. Diagrammes <ul><li>Fonctionnalités avancées d'affichage conditionnel </li><ul><li>Calques : outils et éléments de diagramme
    106. 106. Filtres : éléments de diagramme
    107. 107. Pliage/Dépliage de branches sur les connexions </li></ul><li>Gestion fine du layout </li><ul><li>Spécification par diagramme
    108. 108. Possibilité de fixer la position pour un élément </li></ul><li>Ergonomie prise en compte </li><ul><li>Support natif du zoom
    109. 109. Fenêtre popup pour la création d'élément </li></ul></ul>
    110. 110. Tableaux Paramétrage Exécution
    111. 111. <ul><li>Atelier de modélisation </li><ul><li>Génération de texte
    112. 112. Transformation de modèle
    113. 113. Comparaison de modèle
    114. 114. Modélisation graphique
    115. 115. Traçabilité </li></ul><li>Intégré à Eclipse </li><ul><li>Basé sur la plateforme eclipse modeling
    116. 116. Extensible </li></ul></ul>
    117. 117. Des Questions ?
    118. 118. <ul>Merci <li>[email_address] </li></ul>
    119. 119. La caverne : http://www.flickr.com/photos/evank/405469335/sizes/l/in/photostream/ Platon : http://www.flickr.com/photos/mansionwb/3585897576/sizes/m/in/photostream/ Le café : http://www.flickr.com/photos/aurelijus/2284894895/sizes/z/in/photostream/ La discussion : http://www.flickr.com/photos/clairity/154640125/sizes/z/in/photostream/ La tour de babel : http://www.flickr.com/photos/fdecomite/3872685816/ Adaptabilité : http://www.flickr.com/photos/curnen/1041618126/sizes/l/in/photostream/ Outillage : http://www.flickr.com/photos/batega/1596898776/sizes/l/in/photostream/ Souplesse : http://www.flickr.com/photos/notsogoodphotography/2187498747/sizes/o/in/photostream/ Comparaison : http://www.flickr.com/photos/thebusybrain/2492945625/sizes/o/in/photostream/ La foule : http://www.flickr.com/photos/jamescridland/613445810/

    ×