Enviar búsqueda
Cargar
20100629 dsl-poitou-charentes-jug
•
3 recomendaciones
•
1,055 vistas
BENOIS Jérôme
Seguir
DSL : Domain Specific Language À l'aide des technologies Eclipse Modeling
Leer menos
Leer más
Tecnología
Denunciar
Compartir
Denunciar
Compartir
1 de 39
Descargar ahora
Descargar para leer sin conexión
Recomendados
Builsing DSL using MDE
Builsing DSL using MDE
Sébastien Mosser
Syntaxe concrète des DSL en IDM [avec Xtext]
Syntaxe concrète des DSL en IDM [avec Xtext]
Olivier Le Goaër
Adaptation d'exécution de modèles : vers des iDSML adaptables
Adaptation d'exécution de modèles : vers des iDSML adaptables
Olivier Le Goaër
Visual Studio 2008 Overview
Visual Studio 2008 Overview
Gregory Renard
Introduction rapide à 'objet et à UML
Introduction rapide à 'objet et à UML
Mireille Blay-Fornarino
Introdot Netc Sharp Fr
Introdot Netc Sharp Fr
Gregory Renard
Tutoriel java
Tutoriel java
Kalilou DIABY
Cours Programmation Orientée Objet en C++
Cours Programmation Orientée Objet en C++
Amina HAMEURLAINE
Recomendados
Builsing DSL using MDE
Builsing DSL using MDE
Sébastien Mosser
Syntaxe concrète des DSL en IDM [avec Xtext]
Syntaxe concrète des DSL en IDM [avec Xtext]
Olivier Le Goaër
Adaptation d'exécution de modèles : vers des iDSML adaptables
Adaptation d'exécution de modèles : vers des iDSML adaptables
Olivier Le Goaër
Visual Studio 2008 Overview
Visual Studio 2008 Overview
Gregory Renard
Introduction rapide à 'objet et à UML
Introduction rapide à 'objet et à UML
Mireille Blay-Fornarino
Introdot Netc Sharp Fr
Introdot Netc Sharp Fr
Gregory Renard
Tutoriel java
Tutoriel java
Kalilou DIABY
Cours Programmation Orientée Objet en C++
Cours Programmation Orientée Objet en C++
Amina HAMEURLAINE
Tutoriel java
Tutoriel java
Kalilou DIABY
POO en C++: Les fonctions
POO en C++: Les fonctions
Amina HAMEURLAINE
Uml
Uml
VINOT Bernard
Chp6 - De UML vers C++
Chp6 - De UML vers C++
Lilia Sfaxi
Transformation M2M avec ATL
Transformation M2M avec ATL
Halima Bouabdelli
Modélisation et points de vue : Entre abstraction et pragmatisme
Modélisation et points de vue : Entre abstraction et pragmatisme
Chauvin Mariot
objective C
objective C
Slimen Belhaj Ali
Language java
Language java
LAMINE KACIMI
LMO02.ppt
LMO02.ppt
Ptidej Team
Cours algorithme
Cours algorithme
badr zaimi
Cours Visual Basic.NET
Cours Visual Basic.NET
Aziz Darouichi
La programmation GPU avec C++ AMP pour les performances extrêmes
La programmation GPU avec C++ AMP pour les performances extrêmes
Microsoft
presentationSirius
presentationSirius
Sébastien Dossot
Uml to code with acceleo
Uml to code with acceleo
Tarun Telang
Using ANTLR on real example - convert "string combined" queries into paramete...
Using ANTLR on real example - convert "string combined" queries into paramete...
Alexey Diyan
Building a Python IDE with Xtext
Building a Python IDE with Xtext
Sebastian Zarnekow
ANTLR4 in depth
ANTLR4 in depth
Владимир Кожаев
Combine Spring Data Neo4j and Spring Boot to quickl
Combine Spring Data Neo4j and Spring Boot to quickl
Neo4j
Acceleo Code Generation
Acceleo Code Generation
Stéphane Bégaudeau
Architectures n-tiers
Architectures n-tiers
Heithem Abbes
Diapo PFE
Diapo PFE
bhar amenallah
Les Médias Sociaux dans les entreprises françaises - Barometre Hootsuite 2015
Les Médias Sociaux dans les entreprises françaises - Barometre Hootsuite 2015
Build Green
Más contenido relacionado
La actualidad más candente
Tutoriel java
Tutoriel java
Kalilou DIABY
POO en C++: Les fonctions
POO en C++: Les fonctions
Amina HAMEURLAINE
Uml
Uml
VINOT Bernard
Chp6 - De UML vers C++
Chp6 - De UML vers C++
Lilia Sfaxi
Transformation M2M avec ATL
Transformation M2M avec ATL
Halima Bouabdelli
Modélisation et points de vue : Entre abstraction et pragmatisme
Modélisation et points de vue : Entre abstraction et pragmatisme
Chauvin Mariot
objective C
objective C
Slimen Belhaj Ali
Language java
Language java
LAMINE KACIMI
LMO02.ppt
LMO02.ppt
Ptidej Team
Cours algorithme
Cours algorithme
badr zaimi
Cours Visual Basic.NET
Cours Visual Basic.NET
Aziz Darouichi
La programmation GPU avec C++ AMP pour les performances extrêmes
La programmation GPU avec C++ AMP pour les performances extrêmes
Microsoft
La actualidad más candente
(12)
Tutoriel java
Tutoriel java
POO en C++: Les fonctions
POO en C++: Les fonctions
Uml
Uml
Chp6 - De UML vers C++
Chp6 - De UML vers C++
Transformation M2M avec ATL
Transformation M2M avec ATL
Modélisation et points de vue : Entre abstraction et pragmatisme
Modélisation et points de vue : Entre abstraction et pragmatisme
objective C
objective C
Language java
Language java
LMO02.ppt
LMO02.ppt
Cours algorithme
Cours algorithme
Cours Visual Basic.NET
Cours Visual Basic.NET
La programmation GPU avec C++ AMP pour les performances extrêmes
La programmation GPU avec C++ AMP pour les performances extrêmes
Destacado
presentationSirius
presentationSirius
Sébastien Dossot
Uml to code with acceleo
Uml to code with acceleo
Tarun Telang
Using ANTLR on real example - convert "string combined" queries into paramete...
Using ANTLR on real example - convert "string combined" queries into paramete...
Alexey Diyan
Building a Python IDE with Xtext
Building a Python IDE with Xtext
Sebastian Zarnekow
ANTLR4 in depth
ANTLR4 in depth
Владимир Кожаев
Combine Spring Data Neo4j and Spring Boot to quickl
Combine Spring Data Neo4j and Spring Boot to quickl
Neo4j
Acceleo Code Generation
Acceleo Code Generation
Stéphane Bégaudeau
Architectures n-tiers
Architectures n-tiers
Heithem Abbes
Diapo PFE
Diapo PFE
bhar amenallah
Les Médias Sociaux dans les entreprises françaises - Barometre Hootsuite 2015
Les Médias Sociaux dans les entreprises françaises - Barometre Hootsuite 2015
Build Green
GruntJS
GruntJS
Andrés Lozada Mosto
Pase 2013
Pase 2013
Zaíra Monroy
Converteo Forum E Marketing 2009 Prendre des décisions en période de crise
Converteo Forum E Marketing 2009 Prendre des décisions en période de crise
Raphaël Fétique
Trabajo de literatura
Trabajo de literatura
kevinelmejor
P resentacion generalidades unidad 3
P resentacion generalidades unidad 3
Rosa Ma Barrón
Converteo - Adobe - Mesurer et personnaliser vos offres dans un contexte mult...
Converteo - Adobe - Mesurer et personnaliser vos offres dans un contexte mult...
Raphaël Fétique
LIB-MARGES_COMM_V4-2
LIB-MARGES_COMM_V4-2
Marion Piccio
Exemples de cv_et_quelques_conseils_pole_demploi
Exemples de cv_et_quelques_conseils_pole_demploi
ali_tech
La Parte del Cuerpo mas Importante
La Parte del Cuerpo mas Importante
Guiru Xd
#JamaisSansElles Fin & Tech community - Natacha Quester-Séméon et Stanislas P...
#JamaisSansElles Fin & Tech community - Natacha Quester-Séméon et Stanislas P...
JamaisSansElles
Destacado
(20)
presentationSirius
presentationSirius
Uml to code with acceleo
Uml to code with acceleo
Using ANTLR on real example - convert "string combined" queries into paramete...
Using ANTLR on real example - convert "string combined" queries into paramete...
Building a Python IDE with Xtext
Building a Python IDE with Xtext
ANTLR4 in depth
ANTLR4 in depth
Combine Spring Data Neo4j and Spring Boot to quickl
Combine Spring Data Neo4j and Spring Boot to quickl
Acceleo Code Generation
Acceleo Code Generation
Architectures n-tiers
Architectures n-tiers
Diapo PFE
Diapo PFE
Les Médias Sociaux dans les entreprises françaises - Barometre Hootsuite 2015
Les Médias Sociaux dans les entreprises françaises - Barometre Hootsuite 2015
GruntJS
GruntJS
Pase 2013
Pase 2013
Converteo Forum E Marketing 2009 Prendre des décisions en période de crise
Converteo Forum E Marketing 2009 Prendre des décisions en période de crise
Trabajo de literatura
Trabajo de literatura
P resentacion generalidades unidad 3
P resentacion generalidades unidad 3
Converteo - Adobe - Mesurer et personnaliser vos offres dans un contexte mult...
Converteo - Adobe - Mesurer et personnaliser vos offres dans un contexte mult...
LIB-MARGES_COMM_V4-2
LIB-MARGES_COMM_V4-2
Exemples de cv_et_quelques_conseils_pole_demploi
Exemples de cv_et_quelques_conseils_pole_demploi
La Parte del Cuerpo mas Importante
La Parte del Cuerpo mas Importante
#JamaisSansElles Fin & Tech community - Natacha Quester-Séméon et Stanislas P...
#JamaisSansElles Fin & Tech community - Natacha Quester-Séméon et Stanislas P...
Similar a 20100629 dsl-poitou-charentes-jug
20100910 mda en-2010-jug_summer_camp
20100910 mda en-2010-jug_summer_camp
BENOIS Jérôme
Innover sans contrainte, intégrer sans rupture
Innover sans contrainte, intégrer sans rupture
Guillaume Laforge
test
test
guest718715
Storyboarding for the web : Methodology and Tools
Storyboarding for the web : Methodology and Tools
Eric DI POL
Domain-Specific Languages avec Groovy
Domain-Specific Languages avec Groovy
Guillaume Laforge
DDD, CQRS et Event Sourcing : quand coder propre n'est plus suffisant
DDD, CQRS et Event Sourcing : quand coder propre n'est plus suffisant
cluelessjoe
Domain_Driven_Design
Domain_Driven_Design
SpikeeLabs
ESILV Nabil Bouzerna Architecture de systèmes de traitement de l'information ...
ESILV Nabil Bouzerna Architecture de systèmes de traitement de l'information ...
Nabil Bouzerna
Dialonics soutenance de projet final (31 aout 2012)
Dialonics soutenance de projet final (31 aout 2012)
legendcasio
Retour d'expérience sur la conception et la construction d'une application ME...
Retour d'expérience sur la conception et la construction d'une application ME...
Microsoft Technet France
Séminaire LINAGORA - " Le poste de travail libre : enfin mature !", juillet 2010
Séminaire LINAGORA - " Le poste de travail libre : enfin mature !", juillet 2010
LINAGORA
Point sur le fichier IMF Mesclado
Point sur le fichier IMF Mesclado
Marc Bourhis
Webinaire IS Designer
Webinaire IS Designer
Obeo
Cohabitation Logiciels Libres et propriétaires
Cohabitation Logiciels Libres et propriétaires
Michel-Marie Maudet
Module Encodage Easytouse Light
Module Encodage Easytouse Light
fchaabane
Video Encoding Solution
Video Encoding Solution
sthiebe
Un aperçu du Petit dictionnaire du design numérique
Un aperçu du Petit dictionnaire du design numérique
designers interactifs
Codedarmor 2012 - 09/10 - Eclipse 4 & Acceleo
Codedarmor 2012 - 09/10 - Eclipse 4 & Acceleo
codedarmor
Eclipse4 et acceleo
Eclipse4 et acceleo
glefur
Projet COM02.ppt
Projet COM02.ppt
Ptidej Team
Similar a 20100629 dsl-poitou-charentes-jug
(20)
20100910 mda en-2010-jug_summer_camp
20100910 mda en-2010-jug_summer_camp
Innover sans contrainte, intégrer sans rupture
Innover sans contrainte, intégrer sans rupture
test
test
Storyboarding for the web : Methodology and Tools
Storyboarding for the web : Methodology and Tools
Domain-Specific Languages avec Groovy
Domain-Specific Languages avec Groovy
DDD, CQRS et Event Sourcing : quand coder propre n'est plus suffisant
DDD, CQRS et Event Sourcing : quand coder propre n'est plus suffisant
Domain_Driven_Design
Domain_Driven_Design
ESILV Nabil Bouzerna Architecture de systèmes de traitement de l'information ...
ESILV Nabil Bouzerna Architecture de systèmes de traitement de l'information ...
Dialonics soutenance de projet final (31 aout 2012)
Dialonics soutenance de projet final (31 aout 2012)
Retour d'expérience sur la conception et la construction d'une application ME...
Retour d'expérience sur la conception et la construction d'une application ME...
Séminaire LINAGORA - " Le poste de travail libre : enfin mature !", juillet 2010
Séminaire LINAGORA - " Le poste de travail libre : enfin mature !", juillet 2010
Point sur le fichier IMF Mesclado
Point sur le fichier IMF Mesclado
Webinaire IS Designer
Webinaire IS Designer
Cohabitation Logiciels Libres et propriétaires
Cohabitation Logiciels Libres et propriétaires
Module Encodage Easytouse Light
Module Encodage Easytouse Light
Video Encoding Solution
Video Encoding Solution
Un aperçu du Petit dictionnaire du design numérique
Un aperçu du Petit dictionnaire du design numérique
Codedarmor 2012 - 09/10 - Eclipse 4 & Acceleo
Codedarmor 2012 - 09/10 - Eclipse 4 & Acceleo
Eclipse4 et acceleo
Eclipse4 et acceleo
Projet COM02.ppt
Projet COM02.ppt
20100629 dsl-poitou-charentes-jug
1.
DSL
Domain Specific Language À l'aide des technologies Eclipse Modeling Le 29 juin 2010 Jérôme BENOIS jerome.benois@obeo.fr
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.
Agenda
Qui suis-je où suis-je ? Les DSL en général Les DSL textuels Les DSL graphiques Conclusion © Copyright 2010 Obeo
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.
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.
© Copyright 2010
Obeo Les DSL en général
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.
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.
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 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.
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.
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.
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.
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.
Comment Eclipse Modeling
peut-il m'aider ? © Copyright 2010 Obeo
16.
Un Eco-Système riche ©
Copyright 2010 Obeo
17.
© Copyright 2010
Obeo Les DSL textuels
18.
Un framework de
développement de DSL textuel basé : La plateforme Eclipse EMF Eclipse Modeling Framework ANTLR © Copyright 2010 Obeo
19.
Chercher l'intention ? ©
Copyright 2010 Obeo
20.
© Copyright 2010
Obeo Une piste...
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.
Comment exprimer cette
intention à l'aide d'un DSL textuel ? © Copyright 2010 Obeo
23.
Définition de la
syntaxe textuelle de notre DSL avec TMF - Xtext O EM © Copyright 2010 D Obeo
24.
© Copyright 2010
Obeo Les DSL graphiques
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.
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.
Quelques exemples... © Copyright
2010 Obeo
28.
© Copyright 2010
Obeo Un modèle pour Tous
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.
Autres exemples d'utilisation ©
Copyright 2010 Obeo
31.
© Copyright 2010
Obeo
32.
Comment utilisez ces
modèles ? © Copyright 2010 Obeo
33.
© Copyright 2010
Obeo En Java ?
34.
© Copyright 2010
Obeo
35.
© Copyright 2010
Obeo
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.
© Copyright 2010
Obeo Des Questions ?
38.
Merci
jerome.benois@obeo.fr © Copyright 2010 Obeo
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
Descargar ahora