Your SlideShare is downloading. ×
  • Like
Modélisation et points de vue : Entre abstraction et pragmatisme
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

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

  • 1,223 views
Published

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
1,223
On SlideShare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
17
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide
  • 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''un commercial/manager - en bas point de vue d'un développeur java
  • Tour de Babel pour illustrer le fait qu'il n'y a pas de langage universel. Chaque langage correspond à une perception du système/de la réalité qu'il décrit. Se limiter à un langage pour décrire l'ensemble des choses / du monde c'est effacer toutes les subtilités. => UML ne suffit pas et n'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'appuyer et les utilisateurs mutualiser une partie des côuts de developpement.
  • La montée en abstraction permet de revenir au besoin de l'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'il n'y a pas de langage universel. Chaque langage correspond à une perception du système/de la réalité qu'il décrit. Se limiter à un langage pour décrire l'ensemble des choses / du monde c'est effacer toutes les subtilités. => UML ne suffit pas et n'est pas assez ciblé. Bergson « la pensée n’existe que dans les mots » Hegel.
  • Tour de Babel pour illustrer le fait qu'il n'y a pas de langage universel. Chaque langage correspond à une perception du système/de la réalité qu'il décrit. Se limiter à un langage pour décrire l'ensemble des choses / du monde c'est effacer toutes les subtilités. => UML ne suffit pas et n'est pas assez ciblé. Bergson « la pensée n’existe que dans les mots » Hegel.
  • Tour de Babel pour illustrer le fait qu'il n'y a pas de langage universel. Chaque langage correspond à une perception du système/de la réalité qu'il décrit. Se limiter à un langage pour décrire l'ensemble des choses / du monde c'est effacer toutes les subtilités. => UML ne suffit pas et n'est pas assez ciblé. Bergson « la pensée n’existe que dans les mots » Hegel.
  • Code affreux -> je suis responsable du code que je génère, car c'est moi qui est écrit les templates Modélisation contraignante -> elle est orthogonale aux processus, les outils doivents pouvoir s'adapter à ma manière de travailler Diagrammes par défaut ne conviennent pas -> spécifier moi même mes diagrammes, utiliser des outils qui supporte la montée en charge, en n'affichant que l'information utile. Utiliser d'autres types de représentation si un diagramme n'est pas le plus adapté.
  • Tour de Babel pour illustrer le fait qu'il n'y a pas de langage universel. Chaque langage correspond à une perception du système/de la réalité qu'il décrit. Se limiter à un langage pour décrire l'ensemble des choses / du monde c'est effacer toutes les subtilités. => UML ne suffit pas et n'est pas assez ciblé. Bergson « la pensée n’existe que dans les mots » Hegel.
  • Tour de Babel pour illustrer le fait qu'il n'y a pas de langage universel. Chaque langage correspond à une perception du système/de la réalité qu'il décrit. Se limiter à un langage pour décrire l'ensemble des choses / du monde c'est effacer toutes les subtilités. => UML ne suffit pas et n'est pas assez ciblé. Bergson « la pensée n’existe que dans les mots » Hegel.
  • Faire remarquer qu'on a une décorrélation entre la partie aspect graphique et le comportement. Noter que l'utilisation d'un langage de requêtage (Acceleo ou OCL ) pour la specification des candidats permet d'avoir un couplage faible avec l'architecture du métamodèle.
  • Faire remarquer qu'on a une décorrélation entre la partie aspect graphique et le comportement. Noter que l'utilisation d'un langage de requêtage (Acceleo ou OCL ) pour la specification des candidats permet d'avoir un couplage faible avec l'architecture du métamodèle.

Transcript

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