Está en la página 1de 57

Creación de lenguajes gráficos de dominio específico

Graphical Modeling
Framework 2.0

V ice n te G a rcía D ía z
( garciavicente@uniovi . es )
Ju a n M a n u e lC u e va Lo ve lle
MDE - OOTLAB Research Group
Noviembre de 2010
¿Dónde se ubica GMF?
Ecore
Especific . Especific .
EMF
De un editor De la
sintáxis
textual
Instanceof
GMF
Metamodelo Xtext
Metamodelo
I II
Builds
Editor
Check Instanceof
personalizado Editor
personalizado

Modelo I Modelo II
Builds
Xpand
Herramienta
UML
Xtend
Artefactos
generados

XMI
Recipe Código
(FW) manual
Esquema general

 Herramienta para construir DSLs


 *.gmfmap

*.gmfgraph
Modelo de mapeo

Modelo de la definición gráfica

*.ecore
*.gmfgen

Proyecto GMF Modelo del dominio


Modelo del generador del lenguaje
*.gmftool

Modelo de la definición de herramientas


*.genmodel

Modelo del generador Diagrama ( Plug - in )


Instalación

 Lo más fácil es descargar un Eclipse


con todo
 http://www.eclipse.org/downloads/packa
(Eclipse Modeling Tools)


Wizard para crear un nuevo
lenguaje


Mindmaps

 Herramientas para crear mapas


mentales
 Cmap Tools
 FreeMind
 XMind
Sintaxis abstracta (1/2)
Metamodelo (1/2)
Sintaxis abstracta (1/2)
Metamodelo (2/2)
Sintaxis abstracta (2/2)
Genmodel (1/3)
Sintaxis abstracta (2/2)
Genmodel (2/3)
Sintaxis abstracta (2/2)
Genmodel (3/3)
Sintaxis concreta (1/3)
Sintaxis concreta (2/3)

C o n e cto r
N odo E tiq u e ta
Sintaxis concreta (3/3)
Herramientas (1/3)




Herramientas (2/3)




Herramientas (3/3)


Diferentes tipos de herramientas

Diferentes grupos con herramientas

Iconos
Mapeos (1/3)




Mapeos (2/3)




Mapeos (3/3)




Generación del código del
DSL (1/2)
Generación del código del
DSL (2/2)
Resumen de modelos
Entorno de desarrollo (1/2)
Entorno de desarrollo (2/2)
Práctico
 Ejercicios y conceptos adicionales
Cambiar iconos de la paleta

 Cambiar icono por defecto para los


temas

 Ayuda:
 Modelo gmftool
▪ Cambiar la definición del icono de la
herramienta

Validaciones directas

 Evitar
que un tema sea su propio
subtema
 Ayuda:
 Modelo gmfmap
▪ OCL: self <> oppositeEnd
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 nombre
 de los hilos
▪ Añadir las representaciones de
 las figuras correspondientes
 Modelo gmfmap
▪ Añadir un mapeo compartimento
▪ Añadir una referencia hijo
Añadir hilos en los temas
(2/4)

A n te rio r

N u e vo
Añadir hilos en los temas
(3/4)

Anterior
Cambio
Nuevo

inifseednoicatneserper
Añadir hilos en los temas
(4/4)
Añadir referencia hijo

Mapear el nodo

Mapear la etiqueta

Anterior

Nuevo
Mapear el compartimento
Añadir elementos en los
hilos (1/4)
 Incorporar
la posibilidad de añadir
elementos dentro de los propios hilos


Añadir elementos en los
hilos(2/4)

Anterior

Nuevo
Añadir elementos en los
hilos(3/4)

Anterior

noicinifseednoicatneserper
Nuevo
Añadir elementos en los
hilos (4/4)
Añadir referencia hijo

Mapear el nodo

Mapear la etiqueta

Anterior

Nuevo

Mapear el compartimento
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
Añadir conexiones (2/4)

Anterior
Cambio
Nuevo
Añadir conexiones (3/4)

Anterior

Nuevo
Añadir conexiones (4/4)

Anterior
Cambio
Nuevo
Inicializaciones (1/4)

 Incorporarla posibilidad de añadir los


tres tipos de relaciones:

 Ayuda:
 Modelo gmftool
▪ Cambiar relación genérica
 por los 3 tipos de relaciones
 Modelo gmfgraph
▪ Añadir una etiqueta para el nombre de la
relación
 Modelo gmfmap
Inicializadores (2/4)

Anterior

Nuevo
Inicializadores (3/4)

Anterior

Nuevo
Inicializadores (4/4)
Cambiar para usar herramienta EXTENDS

Restricción
Inicializa la etiqueta

Inicializa el tipo de la relación


Etiqueta

Anterior

Nuevo
Modelos entrelazados

 Incorporarla posibilidad de que un


modelo haga referencia a elementos
de otro:

 Ayuda:
 Modelo gmfgen
▪ Context Menu  añadir elemento
C r ea t e C h ort c ut C c t i on
▪ Gen Diagram CapCditCart
▪ C h ort c uts C rov ided F or C
Validaciones con reglas - 1
(1/2)
 Validarel 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 MapMditMart
▪ L ife V a l ida t i on U C Feedbac C
Validaciones con reglas - 1
(2/2)

Anterior

Nuevo
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 MapMditMart
▪ L ife V a l ida t i on U M
Validaciones con reglas - 2
(2/2)

Anterior

Nuevo
Figuras compuestas (1/4)

 Crearuna 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
Figuras compuestas (2/4)

Anterior

Nuevo
Figuras compuestas (3/4)

Anterior

Nuevo
Figuras compuestas (4/4)

Anterior

Nuevo
Eliminar elementos de la barra
de herramientas





Acciones personalizadas
(1/2)
 Laidea es insertar subtemas
rápidamente Nuevo comando




 Nuevo acceso rápido


Acciones personalizadas
(2/2)

Nuevo popup




Clase JAVA que implementa la acción

Identificador del comando


Recursos

 EclipseModeling 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/

También podría gustarte