Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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
*.gmfgraph
Modelo de mapeo
*.ecore
*.gmfgen
Wizard para crear un nuevo
lenguaje
Mindmaps
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
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
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)
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)
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
Anterior
Nuevo
Modelos entrelazados
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)
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