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 744 vues

Publié le

  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

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/

×