![Page 1: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)](https://reader036.vdocuments.site/reader036/viewer/2022062419/5571f9d149795991699081dd/html5/thumbnails/1.jpg)
Graphical Modeling Framework 2.0
Creación de lenguajes gráficos de dominio específico
Vicente García Díaz ([email protected])
Juan Manuel Cueva LovelleMDE-OOTLAB Research GroupNoviembre de 2010
![Page 2: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)](https://reader036.vdocuments.site/reader036/viewer/2022062419/5571f9d149795991699081dd/html5/thumbnails/2.jpg)
¿Dónde se ubica GMF?
Herramienta UML
Instanceof
Ecore
Metamodelo I
Metamodelo II
Modelo I Modelo II
Instanceof
Especific. De un editor
GMF
Editor personalizado
XMI
Especific. De la
sintáxis textual
Xtext
Editor personalizado
Builds
Builds
Check
Xtend
Xpand
Artefactos generados
Recipe (FW)
Código manual
EMF
![Page 3: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)](https://reader036.vdocuments.site/reader036/viewer/2022062419/5571f9d149795991699081dd/html5/thumbnails/3.jpg)
Esquema general
Herramienta para construir DSLs
Proyecto GMF
Modelo del
dominio
Modelo de la
definición gráfica
Modelo de la
definición de
herramientas
Modelo de mapeo
Modelo del
generador del
lenguaje
Diagrama (Plug-in)
*.gmfgraph
*.gmftool
*.ecore
*.gmfmap
*.gmfgen
Modelo del
generador
*.genmodel
![Page 4: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)](https://reader036.vdocuments.site/reader036/viewer/2022062419/5571f9d149795991699081dd/html5/thumbnails/4.jpg)
Instalación
Lo más fácil es descargar un Eclipse con todo
http://www.eclipse.org/downloads/packages/release/galileo/sr2 (Eclipse Modeling Tools)
![Page 5: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)](https://reader036.vdocuments.site/reader036/viewer/2022062419/5571f9d149795991699081dd/html5/thumbnails/5.jpg)
Wizard para crear un nuevo lenguaje
![Page 6: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)](https://reader036.vdocuments.site/reader036/viewer/2022062419/5571f9d149795991699081dd/html5/thumbnails/6.jpg)
Mindmaps
Herramientas para crear mapas mentales Cmap Tools FreeMind XMind
![Page 7: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)](https://reader036.vdocuments.site/reader036/viewer/2022062419/5571f9d149795991699081dd/html5/thumbnails/7.jpg)
Sintaxis abstracta (1/2)Metamodelo (1/2)
![Page 8: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)](https://reader036.vdocuments.site/reader036/viewer/2022062419/5571f9d149795991699081dd/html5/thumbnails/8.jpg)
Sintaxis abstracta (1/2)Metamodelo (2/2)
![Page 9: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)](https://reader036.vdocuments.site/reader036/viewer/2022062419/5571f9d149795991699081dd/html5/thumbnails/9.jpg)
Sintaxis abstracta (2/2)Genmodel (1/3)
![Page 10: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)](https://reader036.vdocuments.site/reader036/viewer/2022062419/5571f9d149795991699081dd/html5/thumbnails/10.jpg)
Sintaxis abstracta (2/2)Genmodel (2/3)
![Page 11: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)](https://reader036.vdocuments.site/reader036/viewer/2022062419/5571f9d149795991699081dd/html5/thumbnails/11.jpg)
Sintaxis abstracta (2/2)Genmodel (3/3)
![Page 12: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)](https://reader036.vdocuments.site/reader036/viewer/2022062419/5571f9d149795991699081dd/html5/thumbnails/12.jpg)
Sintaxis concreta (1/3)
![Page 13: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)](https://reader036.vdocuments.site/reader036/viewer/2022062419/5571f9d149795991699081dd/html5/thumbnails/13.jpg)
Sintaxis concreta (2/3)
Nodo
Conector
Etiqueta
![Page 14: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)](https://reader036.vdocuments.site/reader036/viewer/2022062419/5571f9d149795991699081dd/html5/thumbnails/14.jpg)
Sintaxis concreta (3/3)
![Page 15: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)](https://reader036.vdocuments.site/reader036/viewer/2022062419/5571f9d149795991699081dd/html5/thumbnails/15.jpg)
Herramientas (1/3)
![Page 16: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)](https://reader036.vdocuments.site/reader036/viewer/2022062419/5571f9d149795991699081dd/html5/thumbnails/16.jpg)
Herramientas (2/3)
![Page 17: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)](https://reader036.vdocuments.site/reader036/viewer/2022062419/5571f9d149795991699081dd/html5/thumbnails/17.jpg)
Herramientas (3/3)
Diferentes tipos de herramientas
Diferentes grupos con herramientas
Iconos
![Page 18: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)](https://reader036.vdocuments.site/reader036/viewer/2022062419/5571f9d149795991699081dd/html5/thumbnails/18.jpg)
Mapeos (1/3)
![Page 19: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)](https://reader036.vdocuments.site/reader036/viewer/2022062419/5571f9d149795991699081dd/html5/thumbnails/19.jpg)
Mapeos (2/3)
![Page 20: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)](https://reader036.vdocuments.site/reader036/viewer/2022062419/5571f9d149795991699081dd/html5/thumbnails/20.jpg)
Mapeos (3/3)
![Page 21: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)](https://reader036.vdocuments.site/reader036/viewer/2022062419/5571f9d149795991699081dd/html5/thumbnails/21.jpg)
Generación del código del DSL (1/2)
![Page 22: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)](https://reader036.vdocuments.site/reader036/viewer/2022062419/5571f9d149795991699081dd/html5/thumbnails/22.jpg)
Generación del código del DSL (2/2)
![Page 23: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)](https://reader036.vdocuments.site/reader036/viewer/2022062419/5571f9d149795991699081dd/html5/thumbnails/23.jpg)
Resumen de modelos
![Page 24: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)](https://reader036.vdocuments.site/reader036/viewer/2022062419/5571f9d149795991699081dd/html5/thumbnails/24.jpg)
Entorno de desarrollo (1/2)
![Page 25: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)](https://reader036.vdocuments.site/reader036/viewer/2022062419/5571f9d149795991699081dd/html5/thumbnails/25.jpg)
Entorno de desarrollo (2/2)
![Page 26: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)](https://reader036.vdocuments.site/reader036/viewer/2022062419/5571f9d149795991699081dd/html5/thumbnails/26.jpg)
PrácticoEjercicios y conceptos adicionales
![Page 27: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)](https://reader036.vdocuments.site/reader036/viewer/2022062419/5571f9d149795991699081dd/html5/thumbnails/27.jpg)
Cambiar iconos de la paleta
Cambiar icono por defecto para los temas
Ayuda: Modelo gmftool▪ Cambiar la definición del icono de la herramienta
![Page 28: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)](https://reader036.vdocuments.site/reader036/viewer/2022062419/5571f9d149795991699081dd/html5/thumbnails/28.jpg)
Validaciones directas
Evitar que un tema sea su propio subtema
Ayuda: Modelo gmfmap▪ OCL: self <> oppositeEnd
![Page 29: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)](https://reader036.vdocuments.site/reader036/viewer/2022062419/5571f9d149795991699081dd/html5/thumbnails/29.jpg)
Añadir hilos en los temas (1/4)
Incorporar la posibilidad de añadir hilos Ayuda:
Modelo gmftool▪ Añadir un nuevo elemento
Modelo gmfgraph▪ Añadir un compartimento ▪ Añadir un nodo para los hilos▪ Añadir una etiqueta para el nombrede los hilos▪ Añadir las representaciones de las figuras correspondientes
Modelo gmfmap▪ Añadir un mapeo compartimento▪ Añadir una referencia hijo
![Page 30: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)](https://reader036.vdocuments.site/reader036/viewer/2022062419/5571f9d149795991699081dd/html5/thumbnails/30.jpg)
Añadir hilos en los temas (2/4)
Anterior
Nuevo
![Page 31: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)](https://reader036.vdocuments.site/reader036/viewer/2022062419/5571f9d149795991699081dd/html5/thumbnails/31.jpg)
repre
senta
cio
nes
Añadir hilos en los temas (3/4)
AnteriorCambioNuevo
definic
iones
![Page 32: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)](https://reader036.vdocuments.site/reader036/viewer/2022062419/5571f9d149795991699081dd/html5/thumbnails/32.jpg)
Añadir hilos en los temas (4/4)
Anterior
NuevoMapear el
compartimento
Añadir referencia hijo
Mapear el nodo
Mapear la etiqueta
![Page 33: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)](https://reader036.vdocuments.site/reader036/viewer/2022062419/5571f9d149795991699081dd/html5/thumbnails/33.jpg)
Añadir elementos en los hilos (1/4)
Incorporar la posibilidad de añadir elementos dentro de los propios hilos
![Page 34: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)](https://reader036.vdocuments.site/reader036/viewer/2022062419/5571f9d149795991699081dd/html5/thumbnails/34.jpg)
Añadir elementos en los hilos(2/4)
Anterior
Nuevo
![Page 35: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)](https://reader036.vdocuments.site/reader036/viewer/2022062419/5571f9d149795991699081dd/html5/thumbnails/35.jpg)
Añadir elementos en los hilos(3/4)
Anterior
Nuevo
repre
senta
cio
nes
definic
iones
![Page 36: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)](https://reader036.vdocuments.site/reader036/viewer/2022062419/5571f9d149795991699081dd/html5/thumbnails/36.jpg)
Añadir elementos en los hilos (4/4)
Anterior
Nuevo
Mapear el compartimento
Añadir referencia hijo
Mapear el nodo
Mapear la etiqueta
![Page 37: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)](https://reader036.vdocuments.site/reader036/viewer/2022062419/5571f9d149795991699081dd/html5/thumbnails/37.jpg)
Añadir conexiones (1/4)
Incorporar la posibilidad de añadir dos tipos de enlaces: Subtopic un tema es subtema de otro Relationship existe una relación entre temas
Ayuda: Modelo gmftool▪ Añadir dos grupos con sus elementos
Modelo gmfgraph▪ Añadir una figura conexión con su representación
Modelo gmfmap▪ Añadir un mapeo de enlace
![Page 38: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)](https://reader036.vdocuments.site/reader036/viewer/2022062419/5571f9d149795991699081dd/html5/thumbnails/38.jpg)
Añadir conexiones (2/4)
Anterior
NuevoCambio
![Page 39: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)](https://reader036.vdocuments.site/reader036/viewer/2022062419/5571f9d149795991699081dd/html5/thumbnails/39.jpg)
Añadir conexiones (3/4)
Anterior
Nuevo
![Page 40: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)](https://reader036.vdocuments.site/reader036/viewer/2022062419/5571f9d149795991699081dd/html5/thumbnails/40.jpg)
Añadir conexiones (4/4)
Anterior
NuevoCambio
![Page 41: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)](https://reader036.vdocuments.site/reader036/viewer/2022062419/5571f9d149795991699081dd/html5/thumbnails/41.jpg)
Inicializaciones (1/4)
Incorporar la posibilidad de añadir los tres tipos de relaciones:
Ayuda: Modelo gmftool▪ Cambiar relación genéricapor los 3 tipos de relaciones
Modelo gmfgraph▪ Añadir una etiqueta para el nombre de la relación
Modelo gmfmap▪ Cambiar enlace genérico por 3 enlaces para las
relaciones
![Page 42: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)](https://reader036.vdocuments.site/reader036/viewer/2022062419/5571f9d149795991699081dd/html5/thumbnails/42.jpg)
Inicializadores (2/4)
Anterior
Nuevo
![Page 43: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)](https://reader036.vdocuments.site/reader036/viewer/2022062419/5571f9d149795991699081dd/html5/thumbnails/43.jpg)
Inicializadores (3/4)
Anterior
Nuevo
![Page 44: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)](https://reader036.vdocuments.site/reader036/viewer/2022062419/5571f9d149795991699081dd/html5/thumbnails/44.jpg)
Inicializadores (4/4)
Anterior
Nuevo
Cambiar para usar herramienta
EXTENDS
Inicializa la etiqueta
Inicializa el tipo de la relación
Restricción
Etiqueta
![Page 45: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)](https://reader036.vdocuments.site/reader036/viewer/2022062419/5571f9d149795991699081dd/html5/thumbnails/45.jpg)
Modelos entrelazados
Incorporar la posibilidad de que un modelo haga referencia a elementos de otro:
Ayuda: Modelo gmfgen▪ Context Menu añadir elemento Create Shortcut
Action▪ Gen Diagram MapEditPart▪ Shortcuts Provided For y Contains Shortcuts To
especificar extensión adecuada
![Page 46: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)](https://reader036.vdocuments.site/reader036/viewer/2022062419/5571f9d149795991699081dd/html5/thumbnails/46.jpg)
Validaciones con reglas - 1 (1/2)
Validar el modelo para que los nombres de los temas tengan más de dos letras
Ayuda: Modelo gmfmap▪ Los Audit Containers permiten introducir las reglas▪ Introducir un Domain Element▪ Introducir una Constraint utilizando OCL
Modelo gmfgen▪ Gen Diagram MapEditPart▪ Life Validation UI Feedback true
![Page 47: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)](https://reader036.vdocuments.site/reader036/viewer/2022062419/5571f9d149795991699081dd/html5/thumbnails/47.jpg)
Validaciones con reglas - 1 (2/2)
Anterior
Nuevo
![Page 48: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)](https://reader036.vdocuments.site/reader036/viewer/2022062419/5571f9d149795991699081dd/html5/thumbnails/48.jpg)
Validaciones con reglas - 2 (1/2)
Validar el modelo para evitar dependencias cíclicas entre temas
Ayuda: Modelo gmfmap▪ Los Audit Containers permiten introducir las reglas▪ Introducir un Domain Element▪ Introducir una Constraint utilizando OCL
Modelo gmfgen▪ Gen Diagram MapEditPart▪ Life Validation UI Feedback true
![Page 49: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)](https://reader036.vdocuments.site/reader036/viewer/2022062419/5571f9d149795991699081dd/html5/thumbnails/49.jpg)
Validaciones con reglas - 2 (2/2)
Anterior
Nuevo
![Page 50: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)](https://reader036.vdocuments.site/reader036/viewer/2022062419/5571f9d149795991699081dd/html5/thumbnails/50.jpg)
Figuras compuestas (1/4)
Crear una figura para representar recursos:
Figura compuesta para cada recurso Figura para el nombre y el correo electrónico Elemento en la paleta Posibilidad de introducir el nombre y el correo▪ En la vista de propiedades▪ Directamente en la superficie del diseñador▪ Formato: NOMBRE : EMAIL
![Page 51: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)](https://reader036.vdocuments.site/reader036/viewer/2022062419/5571f9d149795991699081dd/html5/thumbnails/51.jpg)
Figuras compuestas (2/4)
Anterior
Nuevo
![Page 52: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)](https://reader036.vdocuments.site/reader036/viewer/2022062419/5571f9d149795991699081dd/html5/thumbnails/52.jpg)
Figuras compuestas (3/4)
Anterior
Nuevo
![Page 53: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)](https://reader036.vdocuments.site/reader036/viewer/2022062419/5571f9d149795991699081dd/html5/thumbnails/53.jpg)
Figuras compuestas (4/4)
Anterior
Nuevo
![Page 54: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)](https://reader036.vdocuments.site/reader036/viewer/2022062419/5571f9d149795991699081dd/html5/thumbnails/54.jpg)
Eliminar elementos de la barra de herramientas
![Page 55: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)](https://reader036.vdocuments.site/reader036/viewer/2022062419/5571f9d149795991699081dd/html5/thumbnails/55.jpg)
Acciones personalizadas (1/2)
La idea es insertar subtemas rápidamenteNuevo comando
Nuevo acceso rápido
![Page 56: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)](https://reader036.vdocuments.site/reader036/viewer/2022062419/5571f9d149795991699081dd/html5/thumbnails/56.jpg)
Acciones personalizadas (2/2)
Nuevo popup
Identificador del comando
Clase JAVA que implementa la acción
![Page 57: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)](https://reader036.vdocuments.site/reader036/viewer/2022062419/5571f9d149795991699081dd/html5/thumbnails/57.jpg)
Recursos
Eclipse Modeling Project: A Domain-Specific Language (DSL) Toolkit Richard C. Gronback Addison-Wesley. The Eclipse Series - 2009 http://www.eclipse.org/resources/resource.php?id=493
Domain-Specific Development with Visual Studio DSL Tools Steve Cook, Gareth Jones, Stuart Kent, Alan
Cameron Wills Addison-Wesley Professional - 2007 http://www.domainspecificdevelopment.com/