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

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

Notes de l'éditeur

  • #4 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
  • #5 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.
  • #10 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.
  • #11 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.
  • #13 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.
  • #14 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.
  • #15 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.
  • #16 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é.
  • #18 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.
  • #29 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.
  • #37 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.
  • #38 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.