20100629 dsl-poitou-charentes-jug

Download 20100629 dsl-poitou-charentes-jug

Post on 28-May-2015

1.746 views

Category:

Technology

1 download

Embed Size (px)

DESCRIPTION

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

TRANSCRIPT

  • 1. DSLDomain Specific Language l'aide des technologies Eclipse Modeling Le 29 juin 2010Jrme BENOISjerome.benois@obeo.fr

2. Le but de cette sessionMontrer : Ce qu'est-un DSL/DSM A quoi a sert Comment implmenter des Domain-Specific Languages en utilisant le projet Eclipse Modeling Copyright 2010Obeo 3. AgendaQui suis-je o suis-je ?Les DSL en gnral Les DSL textuels Les DSL graphiquesConclusion Copyright 2010Obeo 4. Jrme BENOIS10 ans de Java...Architecte "Model Driven Expert" Responsable Obeo NetworkCommitter , , EasyAnt, BushelForte 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 2010http://blog.benois.fr & http://twitter.com/jeromebenoisObeo 5. Obeoditeur spcialiste des approches modlesNantes en 2005, Paris depuis 200740 spcialistes MDEActivit 2009 : 2,5 M en croissance de 50%Socit Franaise indpendanteInvestissement R&D hauteur de 30% des revenus Copyright 2010Obeo 6. Copyright 2010ObeoLes DSL en gnral 7. DSL ? : "In software development and domainengineering, a domain-specific language (DSL) is aprogramming language or specification languagededicated to a particular problem domain, a particularproblem representation technique, and/or a particularsolution technique.": "The concept isn't newspecial-purposeprogramming languages and all kinds ofmodeling/specificationlanguages havealwaysexisted, but the term has become more popular due Copyright 2010to the rise of domain-specific modeling (DSM)"Obeo 8. DSM ? "Domain-specific modeling (DSM) is a softwareengineering methodologyfordesigning anddeveloping systems, such as computer software. Itinvolves systematic use of a graphical domain-specific language (DSL) to represent the variousfacets of a system." Copyright 2010Obeo 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. En rsum Un Domain-Specific LanguageEst un language Interne ou ExternePeut-tre Textuel ou GraphiqueDfinit le vocabulaire d'un domaine de connaissanceparticulier : Par des mots Par des reprsentations graphiques Caractristiques : simplicit, expressivit, explicite, cibl, Copyright 2010non ambiguObeo 11. A quoi cela ressemble ?Notation :Musicale :Rubik's cubeMtier :Calcul de polices d'assurancesDfinition de rgles mtiers bancairesTechniques :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 2010Obeo 12. Pourquoi crer un DSL ?Pour :Partager une mtaphore commune entre un expert du domaineet un informaticien ex: spcifications fonctionnelles, ...Permettre un expert du domaine de participer laconstruction de la logique mtier d'une application ex: BPM,BRMS, ...Exposer une API en tant que DSL et interprter ce DSL. Plusexpressif que du XML. Ex: API de configuration, ...Gnrer du code Java ou autres pour gagner en productivit Copyright 2010Obeo 13. Quel type de DSL crer ?DSL Interne :Facile crerExcutable via la langage htePas vraiment de smantique (uniquement du sucre syntaxique)Adhrent au langage hte et limit par son expressivitUniquement textuelOutillage IDE limit Copyright 2010Obeo 14. Quel type de DSL crer ?DSL Externe : Graphique (DSM) et/ou textuel Facile crer condition d'utiliser les bons outils :Xtext => textuelObeo Designer => graphique Smantique formelle Outillage IDE industriel Copyright 2010Obeo 15. Comment Eclipse Modelingpeut-il m'aider ? Copyright 2010Obeo 16. Un Eco-Systme riche Copyright 2010Obeo 17. Copyright 2010ObeoLes DSL textuels 18. Un framework de dveloppement de DSL textuel bas :La plateforme EclipseEMF Eclipse Modeling FrameworkANTLR Copyright 2010Obeo 19. Chercher l'intention ? Copyright 2010Obeo 20. Copyright 2010ObeoUne piste... 21. L'intention :Dcrire l'entit mtier JUGUn JUG possde un nomUn JUG est anim par un ou n JUG LeaderCette entit est persistante en base de donnesConventions :Une entit persistante est identifie par un ID techniqueLes identifiants techniques sont valus par une Squence Copyright 2010Obeo 22. Comment exprimer cette intention l'aide d'un DSL textuel ? Copyright 2010Obeo 23. Dfinition de la syntaxe textuelle denotre DSL avec TMF - XtextO EM Copyright 2010DObeo 24. Copyright 2010ObeoLes DSL graphiques 25. Crer un DSL graphique : un DSMUn environnement ddiParamtrage simplesDiagrammes hyper-ergonomiques Points de vue pour l'analyse, l'architecte, Adaptable sur diffrents domainesBas sur Eclipse GMF Copyright 2010O EMObeoD 26. Du DSM au point de vue !Le systme modliser Le point de vue Analyse de performance Analyse d'exigences Fonction / Sous FonctionLes vues du Hardware / SoftwareSystme DBA Diagramme de blocs Urbaniste des servicesDiagramme de composantsDiagramme de squences Copyright 2010Tableur, MatriceObeoLes vues du systme(les diagrammes) 27. Quelques exemples... Copyright 2010Obeo 28. Copyright 2010ObeoUn modle pour Tous 29. Exemples d'utilisation :http://obeonetwork.org Communaut/Rseau de partenaires proposant des modules sur tagre : DSL/ DSM/Gnrateurs JavaEE, Spring, ... Copyright 2010Obeo 30. Autres exemples d'utilisation Copyright 2010Obeo 31. Copyright 2010Obeo 32. Comment utilisez ces modles ? Copyright 2010Obeo 33. Copyright 2010ObeoEn Java ? 34. Copyright 2010Obeo 35. Copyright 2010Obeo 36. AcceleoGnration de code : implmentation du standard OMG MOF to Text LanguageLicence EPLMaintenu par ObeoUn outil fait par des dveloppeurs pour les dveloppeurs !Pragmatisme (gnration incrmentale, )Outillage Eclipse (compltion, coloration syntaxique, ...)OEM Copyright 2010 DObeo 37. Copyright 2010ObeoDes Questions ? 38. Merci jerome.benois@obeo.fr Copyright 2010Obeo 39. Sources / Liens Wikipediahttp://en.wikipedia.org/wiki/Domain-specific_languagehttp://en.wikipedia.org/wiki/Domain-specific_modelinghttp://www.martinfowler.com/bliki/DomainSpecificLanguage.htmlhttp://www.obeo.fr/pages/obeo-designer/frhttp://www.obeonetwork.orghttp://www.eclipse.org/modelinghttp://www.eclipse.org/Xtexthttp://www.eclipse.org/acceleohttp://www.slideshare.net/glaforge/domainspecific-languages-avec-groovyhttp://blog.benois.fr/ Copyright 2010Obeo