Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

20100629 dsl-poitou-charentes-jug

2,283 views

Published on

DSL : Domain Specific Language
À l'aide des technologies Eclipse Modeling

Published in: Technology
  • Be the first to comment

20100629 dsl-poitou-charentes-jug

  1. 1. DSL Domain Specific Language À l'aide des technologies Eclipse Modeling Le 29 juin 2010 Jérôme BENOIS jerome.benois@obeo.fr
  2. 2. Le but de cette session Montrer : Ce qu'est-un DSL/DSM A quoi ça sert Comment implémenter des Domain-Specific Languages en utilisant le projet Eclipse Modeling © Copyright 2010 Obeo
  3. 3. Agenda Qui suis-je où suis-je ? Les DSL en général Les DSL textuels Les DSL graphiques Conclusion © Copyright 2010 Obeo
  4. 4. Jérôme BENOIS 10 ans de Java... Architecte – "Model Driven Expert" à Responsable Obeo Network Committer , , EasyAnt, Bushel Forte implication dans le monde Open-Source (contributions à Eclipse GMT/MoDisco, C-JDBC, UML2SVG, membre de l'OSS-GTP, ...) Niortais et Poitou-Charentes JUG addict :) © Copyright 2010 http://blog.benois.fr & http://twitter.com/jeromebenois Obeo
  5. 5. Obeo Éditeur spécialiste des approches modèles Nantes en 2005, Paris depuis 2007 40 spécialistes MDE Activité 2009 : 2,5 M€ en croissance de 50% Société Française indépendante Investissement R&D à hauteur de 30% des revenus © Copyright 2010 Obeo
  6. 6. © Copyright 2010 Obeo Les DSL en général
  7. 7. DSL ? : "In software development and domain engineering, a domain-specific language (DSL) is a programming language or specification language dedicated to a particular problem domain, a particular problem representation technique, and/or a particular solution technique." : "The concept isn't new—special-purpose programming languages and all kinds of modeling/specification languages have always existed, but the term has become more popular due © Copyright 2010 to the rise of domain-specific modeling (DSM)" Obeo
  8. 8. DSM ? "Domain-specific modeling (DSM) is a software engineering methodology for designing and developing systems, such as computer software. It involves systematic use of a graphical domain- specific language (DSL) to represent the various facets of a system." © Copyright 2010 Obeo
  9. 9. Et Martin, il en pense quoi ? An important and useful distinction I make is between: Internal DSLs are particular ways of using a host language to give the host language the feel of a particular language. (Ruby, Groovy, Scala ...) And External DSLs have their own custom syntax and you write a full parser to process them. There is a very strong tradition of doing this in the Unix community. Many XML configurations have ended up as © Copyright 2010 external DSLs, although XML's syntax is badly suited to this purpose. Obeo
  10. 10. En résumé Un Domain-Specific Language Est un language Interne ou Externe Peut-être Textuel ou Graphique Définit le vocabulaire d'un domaine de connaissance particulier : Par des mots Par des représentations graphiques Caractéristiques : simplicité, expressivité, explicite, ciblé, © Copyright 2010 non ambigu Obeo
  11. 11. A quoi cela ressemble ? Notation : Musicale : Rubik's cube Métier : Calcul de polices d'assurances Définition de règles métiers bancaires Techniques : SQL : SELECT * FROM GEEK WHERE JUG_MEMBER=1; CSS : body { background-color: #CCCCCC; } Regex : b[A-Z0-9._%+-]+@[A-Z0-9.-]+.[A-Z]{2,4}b ... © Copyright 2010 Obeo
  12. 12. Pourquoi créer un DSL ? Pour : Partager une métaphore commune entre un expert du domaine et un informaticien ex: spécifications fonctionnelles, ... Permettre à un expert du domaine de participer à la construction de la logique métier d'une application ex: BPM, BRMS, ... Exposer une API en tant que DSL et interpréter ce DSL. Plus expressif que du XML. Ex: API de configuration, ... Générer du code Java ou autres pour gagner en productivité © Copyright 2010 Obeo
  13. 13. Quel type de DSL créer ? DSL Interne : Facile à créer Exécutable via la langage hôte Pas vraiment de sémantique (uniquement du sucre syntaxique) Adhérent au langage hôte et limité par son expressivité Uniquement textuel Outillage IDE limité © Copyright 2010 Obeo
  14. 14. Quel type de DSL créer ? DSL Externe : Graphique (DSM) et/ou textuel Facile à créer à condition d'utiliser les bons outils : Xtext => textuel Obeo Designer => graphique Sémantique formelle Outillage IDE industriel © Copyright 2010 Obeo
  15. 15. Comment Eclipse Modeling peut-il m'aider ? © Copyright 2010 Obeo
  16. 16. Un Eco-Système riche © Copyright 2010 Obeo
  17. 17. © Copyright 2010 Obeo Les DSL textuels
  18. 18. Un framework de développement de DSL textuel basé : La plateforme Eclipse EMF Eclipse Modeling Framework ANTLR © Copyright 2010 Obeo
  19. 19. Chercher l'intention ? © Copyright 2010 Obeo
  20. 20. © Copyright 2010 Obeo Une piste...
  21. 21. L'intention : Décrire l'entité métier JUG Un JUG possède un nom Un JUG est animé par un ou n JUG Leader Cette entité est persistante en base de données Conventions : Une entité persistante est identifiée par un ID technique Les identifiants techniques sont valués par une Séquence © Copyright 2010 Obeo
  22. 22. Comment exprimer cette intention à l'aide d'un DSL textuel ? © Copyright 2010 Obeo
  23. 23. Définition de la syntaxe textuelle de notre DSL avec TMF - Xtext O EM © Copyright 2010 D Obeo
  24. 24. © Copyright 2010 Obeo Les DSL graphiques
  25. 25. 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
  26. 26. 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 ● Diagramme de séquences © Copyright 2010 ● Tableur, Matrice Obeo Les vues du système (les diagrammes)
  27. 27. Quelques exemples... © Copyright 2010 Obeo
  28. 28. © Copyright 2010 Obeo Un modèle pour Tous
  29. 29. Exemples d'utilisation : http://obeonetwork.org Communauté/Réseau de partenaires proposant des modules sur étagère : DSL/ DSM/Générateurs JavaEE, Spring, ... © Copyright 2010 Obeo
  30. 30. Autres exemples d'utilisation © Copyright 2010 Obeo
  31. 31. © Copyright 2010 Obeo
  32. 32. Comment utilisez ces modèles ? © Copyright 2010 Obeo
  33. 33. © Copyright 2010 Obeo En Java ?
  34. 34. © Copyright 2010 Obeo
  35. 35. © Copyright 2010 Obeo
  36. 36. Acceleo Génération de code : implémentation du standard OMG MOF to Text Language Licence EPL Maintenu par Obeo Un outil fait par des développeurs pour les développeurs ! Pragmatisme (génération incrémentale, …) Outillage Eclipse (complétion, coloration syntaxique, ...) O EM © Copyright 2010 D Obeo
  37. 37. © Copyright 2010 Obeo Des Questions ?
  38. 38. Merci jerome.benois@obeo.fr © Copyright 2010 Obeo
  39. 39. Sources / Liens Wikipedia http://en.wikipedia.org/wiki/Domain-specific_language http://en.wikipedia.org/wiki/Domain-specific_modeling http://www.martinfowler.com/bliki/DomainSpecificLanguage.html http://www.obeo.fr/pages/obeo-designer/fr http://www.obeonetwork.org http://www.eclipse.org/modeling http://www.eclipse.org/Xtext http://www.eclipse.org/acceleo http://www.slideshare.net/glaforge/domainspecific-languages-avec-groovy http://blog.benois.fr/ © Copyright 2010 Obeo

×