Sesión 5 Herramientas de creación de DSL gráficos (GMF)
-
Upload
wade-mcintosh -
Category
Documents
-
view
35 -
download
0
description
Transcript of Sesión 5 Herramientas de creación de DSL gráficos (GMF)
Sesión 5Herramientas de creación de DSL gráficos
(GMF)
Proyecto AutoGSA
Her
ram
ient
as d
e cr
eac
ión
de D
SL
grá
ficos
Introducción a GMF GMF (Graphical Modeling Framework) es la herramienta de
creación de DSL que pertenece al proyecto GMT de Eclipse.
Se integra en el entorno Eclipse y es gratuito. Se apoya en los frameworks EMF (Eclipse Modeling
Framework) y GEF (Graphical Editing Framework). Es una herramienta que sigue en desarrollo. Para construir un nuevo DSL con GMF es necesario
completar los diferentes modelos que definen el DSL. Incorpora una vista para guiar la creación del DSL (GMF
Dashboard).
Her
ram
ient
as d
e cr
eac
ión
de D
SL
grá
ficos
Proceso de desarrollo
Definir el modelo de dominio (sintaxis abstracta). Definir el modelo gráfico (sintaxis concreta). Definir el modelo de herramientas. Definir el modelo de correspondencias. Incluir las restricciones en el modelo de correspondencias. Escribir transformaciones modelo-código utilizando un
lenguaje de plantillas.
Her
ram
ient
as d
e cr
eac
ión
de D
SL
grá
ficos
Proceso de desarrollo
Her
ram
ient
as d
e cr
eac
ión
de D
SL
grá
ficos
Modelo de dominio (sintaxis abstracta) La sintaxis abstracta se define mediante metamodelos Ecore. Características de Ecore:
Parecido a EMOF Paquetes (EPackage) paquetes MOF Clases (EClass) clases MOF Atributos (Eattribute) atributos MOF Referencias (EReference) asociaciones/agregaciones MOF No existen las referencias bidireccionales: usar dos referencias
opuestas con la propiedad eOpposite establecida.
El metamodelo se puede editar en la vista en árbol o como diagrama (están sincronizados).
A partir del metamodelo se genera automáticamente el modelo de generación del dominio, y a partir de éste se generan las clases EMF del modelo.
Her
ram
ient
as d
e cr
eac
ión
de D
SL
grá
ficos
Modelo de definición gráfica (sintaxis concreta)
El modelo se edita en una vista en árbol. Elementos:
Node Nodo del DSL Connector Conector Compartment Compartirmento de un nodo Label Etiqueta de un nodo, conector, compartimento Descriptor de figura se asocia a un nodo, conector, etc.
Rectángulo, elipse, polígono, … Polilínea, … Decoradores, iconos, etiquetas de texto, … Formas personalizadas
Las figuras que ofrece son sencillas pero pueden ser compuestas para crear figuras compleja muy flexible
Her
ram
ient
as d
e cr
eac
ión
de D
SL
grá
ficos
Modelo de definición de herramientas Creamos una herramienta en la toolbox para cada elemento
gráfico que deseemos arrastrar al editor de modelos. La toolbox puede ser una barra de herramientas, un menú,
una paleta, … Los elementos de la toolbox se pueden agrupar y organizar
en categorías. Para cada herramienta podemos indicar un icono y un texto
de ayuda (tooltip).
Her
ram
ient
as d
e cr
eac
ión
de D
SL
grá
ficos
Modelo de correspondencias Es necesario establecer las relaciones entre los elementos
del modelo de dominio, de la definición gráfica y del modelo de herramientas.
El GMF Dashboard incluye un asistente para crear el modelo de correspondencias, aunque también se puede editar con la vista de árbol.
Frecuentemente es necesario modificar el modelo creado con el asistente.
A partir de este modelo se genera automáticamente el modelo de generación del editor de diagramas.
Her
ram
ient
as d
e cr
eac
ión
de D
SL
grá
ficos
Restricciones semánticas
Es posible especificar restricciones semánticas débiles con OCL, Java, o expresiones regulares.
Las restricciones se indican en el modelo de correspondencias como restricciones de enlaces (Link Constraints) o reglas de auditoría (Audit Rules).
Es necesario activar la validación en el modelo de generación del editor.
Desde el código OCL es posible recurrir a operaciones definidas en el metamodelo.
Her
ram
ient
as d
e cr
eac
ión
de D
SL
grá
ficos
Generación de código GMF únicamente contempla la creación de un DSL
para crear modelos, pero no la generación de código u otros modelos a partir de éste.
Para generar código a partir de los modelos es necesario recurrir a lenguajes de plantillas: MOFScript, JET, MOF2Text, …
Her
ram
ient
as d
e cr
eac
ión
de D
SL
grá
ficos
Sesión 5Herramientas de creación de DSL gráficos
(DSL Tools)
Proyecto AutoGSA
Her
ram
ient
as d
e cr
eac
ión
de D
SL
grá
ficos
Introducción a DSL Tools DSL Tools es la herramienta de creación y explotación de
DSL gráficos de Microsoft dentro del contexto de las Factorías de Software.
DSL Tools se integra con Visual Studio y actualmente viene integrado en el SDK.
Es posible desplegar los DSL creados en otro Visual Studio mediante instaladores MSI.
Un DSL siempre se crea a partir de otro existente o de uno de los DSL predefinidos: diagrama de clases, de componentes, flujo de trabajo, o lenguaje mínimo.
Her
ram
ient
as d
e cr
eac
ión
de D
SL
grá
ficos
Proceso de desarrollo Selección del DSL inicial. Definición de la sintaxis abstracta (domain model). Definición de la sintaxis concreta (designer). Relacionar la sintaxis abstracta con la concreta. Definir la toolbox del editor de DSL Especificar restricciones semánticas de la sintaxis
abstracta. Programar las transformaciones modelo-código.
Her
ram
ient
as d
e cr
eac
ión
de D
SL
grá
ficos
Domain Model (sintaxis abstracta) DSL Tools combina la definición de la sintaxis concreta, la
abstracta y su correspondencia en el mismo editor. El lenguaje de metamodelado es propietario y mantiene una
estructura en forma de árbol. Elementos:
Clases del dominio clases MOF Propiedades del dominio propiedades MOF Relación de embebido agregaciones MOF Relación de referencia asociaciones MOF Relación de herencia herencia MOF
Las asociaciones entre elementos del modelo no se definen como clases.
Las cardinalidades y roles de las relaciones se escriben al revés que en MOF.
Her
ram
ient
as d
e cr
eac
ión
de D
SL
grá
ficos
Designer (sintaxis concreta) Elementos:
Formas geométricas Formas imagen Formas con compartimentos Swimlanes Conectores Puertos
El uso de puertos debe ser tenido en cuenta en la sintaxis abstracta del DSL.
Posibilidad de incorporar texto o iconos en las formas mediante decoradores.
Her
ram
ient
as d
e cr
eac
ión
de D
SL
grá
ficos
Herramientas del editor
Creamos una herramienta en la toolbox para cada elemento gráfico que deseemos arrastrar al editor de modelos.
Para cada herramienta podemos indicar un icono, texto de ayuda (tooltip), cursor especializado, o palabra clave para buscar información en la ayuda.
Her
ram
ient
as d
e cr
eac
ión
de D
SL
grá
ficos
Restricciones semánticas Tipos de restricciones
Sintácticas Semánticas
Fuertes Débiles
Las restricciones semánticas se expresan en clases parciales en C# no nuevos lenguajes.
Para las restricciones fuertes, es necesario usar el API específica del dominio.
Para las restricciones débiles, es necesario escribir métodos de validación.
El Framework de Validación se encarga de: comprobar las restricciones débiles sobre los modelos. notificar los mensajes (avisos, errores, …) pertinentes.
Her
ram
ient
as d
e cr
eac
ión
de D
SL
grá
ficos
Generación de código DSL Tools no soporta transformaciones modelo-modelo. DSL Tools permite transformaciones modelo-código:
XSLT. API específica del dominio (C#). plantillas de texto (C# o Visual Basic al estilo ASP .NET).
Her
ram
ient
as d
e cr
eac
ión
de D
SL
grá
ficos
Plantillas de texto No es necesario aprender un lenguaje nuevo. Las plantillas se incluyen en la instancia del editor. No se dispone de un editor especializado para las plantillas de
texto (sí hay de terceros). Es necesario indicar a qué modelo se aplica la plantilla en la
propia plantilla. Para que una plantilla genere varios ficheros es necesario
escribir código personalizado. El código del editor del DSL se crea mediante la transformación
de plantillas de texto.