graphical modeling framework 2.0 (lenguajes de dominio específico gráficos)

57
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 Lovelle MDE-OOTLAB Research Group Noviembre de 2010

Upload: vicente-garcia-diaz

Post on 30-Jun-2015

317 views

Category:

Documents


0 download

DESCRIPTION

Introducción al Graphical Modeling Framework para el Máster en Ingeniería Web de la Universidad de Oviedo

TRANSCRIPT

Page 1: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)

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)

¿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)

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)

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)

Wizard para crear un nuevo lenguaje

Page 6: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)

Mindmaps

Herramientas para crear mapas mentales Cmap Tools FreeMind XMind

Page 7: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)

Sintaxis abstracta (1/2)Metamodelo (1/2)

Page 8: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)

Sintaxis abstracta (1/2)Metamodelo (2/2)

Page 9: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)

Sintaxis abstracta (2/2)Genmodel (1/3)

Page 10: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)

Sintaxis abstracta (2/2)Genmodel (2/3)

Page 11: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)

Sintaxis abstracta (2/2)Genmodel (3/3)

Page 12: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)

Sintaxis concreta (1/3)

Page 13: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)

Sintaxis concreta (2/3)

Nodo

Conector

Etiqueta

Page 14: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)

Sintaxis concreta (3/3)

Page 15: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)

Herramientas (1/3)

Page 16: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)

Herramientas (2/3)

Page 17: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)

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)

Mapeos (1/3)

Page 19: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)

Mapeos (2/3)

Page 20: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)

Mapeos (3/3)

Page 21: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)

Generación del código del DSL (1/2)

Page 22: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)

Generación del código del DSL (2/2)

Page 23: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)

Resumen de modelos

Page 24: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)

Entorno de desarrollo (1/2)

Page 25: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)

Entorno de desarrollo (2/2)

Page 26: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)

PrácticoEjercicios y conceptos adicionales

Page 27: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)

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)

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)

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)

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

Anterior

Nuevo

Page 31: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)

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)

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)

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)

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

Anterior

Nuevo

Page 35: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)

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)

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)

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)

Añadir conexiones (2/4)

Anterior

NuevoCambio

Page 39: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)

Añadir conexiones (3/4)

Anterior

Nuevo

Page 40: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)

Añadir conexiones (4/4)

Anterior

NuevoCambio

Page 41: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)

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)

Inicializadores (2/4)

Anterior

Nuevo

Page 43: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)

Inicializadores (3/4)

Anterior

Nuevo

Page 44: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)

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)

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)

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)

Validaciones con reglas - 1 (2/2)

Anterior

Nuevo

Page 48: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)

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)

Validaciones con reglas - 2 (2/2)

Anterior

Nuevo

Page 50: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)

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)

Figuras compuestas (2/4)

Anterior

Nuevo

Page 52: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)

Figuras compuestas (3/4)

Anterior

Nuevo

Page 53: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)

Figuras compuestas (4/4)

Anterior

Nuevo

Page 54: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)

Eliminar elementos de la barra de herramientas

Page 55: Graphical Modeling Framework 2.0 (Lenguajes de dominio específico gráficos)

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)

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)

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/