graphical modeling framework 2.0 (lenguajes de dominio específico gráficos)
DESCRIPTION
Introducción al Graphical Modeling Framework para el Máster en Ingeniería Web de la Universidad de OviedoTRANSCRIPT
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
¿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
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
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)
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)
Nodo
Conector
Etiqueta
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ácticoEjercicios 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 nombrede 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)
Anterior
Nuevo
repre
senta
cio
nes
Añadir hilos en los temas (3/4)
AnteriorCambioNuevo
definic
iones
Añadir hilos en los temas (4/4)
Anterior
NuevoMapear el
compartimento
Añadir referencia hijo
Mapear el nodo
Mapear la etiqueta
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
Nuevo
repre
senta
cio
nes
definic
iones
Añadir elementos en los hilos (4/4)
Anterior
Nuevo
Mapear el compartimento
Añadir referencia hijo
Mapear el nodo
Mapear la etiqueta
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
Añadir conexiones (2/4)
Anterior
NuevoCambio
Añadir conexiones (3/4)
Anterior
Nuevo
Añadir conexiones (4/4)
Anterior
NuevoCambio
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
Inicializadores (2/4)
Anterior
Nuevo
Inicializadores (3/4)
Anterior
Nuevo
Inicializadores (4/4)
Anterior
Nuevo
Cambiar para usar herramienta
EXTENDS
Inicializa la etiqueta
Inicializa el tipo de la relación
Restricción
Etiqueta
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
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
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 MapEditPart▪ Life Validation UI Feedback true
Validaciones con reglas - 2 (2/2)
Anterior
Nuevo
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
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)
La idea es insertar subtemas rápidamenteNuevo comando
Nuevo acceso rápido
Acciones personalizadas (2/2)
Nuevo popup
Identificador del comando
Clase JAVA que implementa la acción
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/