20100629 dsl-poitou-charentes-jug

2,065 views
1,970 views

Published on

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

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,065
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
60
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

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

×