Sesión 5 Herramientas de creación de DSL gráficos (GMF)

Slides:



Advertisements
Presentaciones similares
U.M.L A/Gx. Diego Gutiérrez Application Analysis and Design.
Advertisements

Lenguaje Unificado de Modelado
TECNICATURA UNIVERSITARIA EN INFORMATICA
PROGRAMACIÓN Visual Profra. Graciela Prado. Visual Basic Es un lenguaje de programación diseñado para facilitar el desarrollo de aplicaciones en un entorno.
Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA 2006.
• SQL Server Integration Services SSIS
2.1Definición de un modelo de datos
Modelo de Datos Unidad II.
Introducción a la Orientación a Objetos
Innovaciones de Modelado en una Software Factory
Aplicación de diseño de clases y generación de código, orientado hacia la arquitectura multicapas y el mapeo objeto/relacional Juan Timoteo Ponce Ortiz.
Framework Hexápodo PHP fácil, rápido y sin dolor
Especificación y Verificación de Transformaciones de Modelos
GENERACIONES DE LENGUAJES DE PROGRAMACIÓN
UNIVERSIDAD LATINA (UNILA) INTRODUCCION A LA PROGRAMACIÓN
INTRODUCCIÓN A UML Oscar Miguel Alonso Moreno.
CURSO DE VISUAL BASIC .NET MODO GRAFICO
Diagramas de clases Modelan la vista estática del sistema
DIAGRAMA DE CLASE.
El paradigma de la orientación a objetos La programación orientada a objetos genera códigos eficientes y estandariza la metodología de programación, además.
Análisis y Diseño orientado a objetos con UML.
UML Diagramas. Diagramas de Interacción Muestran como los objetos de la aplicación cooperan e interactúan para cumplir con los requisitos. Suele construirse.
I Taller sobre Desarrollo de Software Dirigido por Modelos, MDA y Aplicaciones (DSDM'04) MDA Aplicado: Una Gramática de Grafos para la Transformación de.
Lic. Manuel Álvaro Pacheco Hoyo
Weka.
LESE-3 Tutorial con Rational Rose
* FRAUSTO JIMENEZ GABRIELA * * HERNANDEZ TORRES ANA LAURA * * MANDUJANO JUAN CARLOS * * NOVA MARIN YARELI PAULINA * * ZAVALA CORTE JOCELYN ARELI *
Ingeniería de Software

Especificación de un metamodelo para apoyar y extender la propuesta TD-MBUID William Joseph Giraldo Orozco Ph.D. Director Helmuth Trefttz Gómez Ph.D. CoDirector.
F RAMEWORKS DE DESARROLLO JAVA,.NET Deisy Pérez Sánchez.
InfoPath Ventajas y Uso.
Contenido: 1- Que es el .Net Framework 2- Arquitectura en .Net
Poder Expresivo de UML 2.0 para especificar arquitecturas de Software
FORMULAS ESTADISTICAS.
Publicación de bases de datos Access en la web
Ingeniería en Sistemas de Información Diseño de Sistemas (3K1)
UML 2.0 Integrantes: Diana Carolina Valencia M. Jhon Fernando Lopez T. Carlos Alberto Castillo.
QUÈ ES VISUAL BASIC ES UN LENGUAJE DE PROGRAMACIÒN QUE SE HA DISEÑADO PARA FACILITAR EL DESARROLLO DE APLICACIONES EN EL ENTORNO GRÀFICO (GUI GRAPHICAL.
Hermilia Molina Acevedo
Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA2006.
Medición Genérica basada en Modelos sobre MOMENT Responsable Félix García (ESFINGE) Participantes Beatriz Mora, Paco Ruiz, Mario Piattini (ESFINGE) Abel.
Diagrama de Clases ACI 570.
Cuentas de usuarios y grupos en windows 2008 server
Introducción a UML DIAGRAMA DE CLASES Departamento de Informática
DEFINICIÓN DE OBJETO Un objeto es aquello que puede ser observado, estudiado y aprendido CARACTERÍSTICAS nos permiten conocerlos mediante la observación,
COLEGIO DE BACHILLERES PLANTEL 13 XOCHIMILCO-TEPEPAN MATERIA:TIC EQUIPO:21 PRESENTACION: BASE DE DATOS ALUMNAS: Adán Millán Sánchez.
DSL – DOMAIN SPECIFIC LANGUAGES Juan Manuel Ramón Vigo Sergio Ruiz Pérez Fernando Vicente Vallejo.
1 Sebastián Argüello A60490 semana 3 Autómatas y compiladores CI-1322.
Los Controles de Visual Basic
Introducción a la Programación Orientada a Objetos (POO)
Ingeniería de Requisitos
Manual de Wordpress Nombre: Nombre: Andy Orellana Fecha: Fecha: 01/04/2015 Curso: Curso: 1º de Bach. ¨A¨
Ing. Esp. Ricardo Cujar. Programación Orientada a Objetos  Modelo de desarrollo de software.  Modo de pensar del hombre y no de la máquina.  Abstracción.
Jairo Pinto Ing. sistemas
CONBINACION DE CORRESPONDENCIA
Alumno: Israel Espinosa Jiménez Matricula: Licenciatura: TIC Asignatura: Programación con Lenguajes de Cuarta Generación Cuatrimestre: 5 Página.
Colegio de Bachilleres Plantel 13 Xochimilco - Tepepan
Análisis y Diseño de Aplicaciones 3º Educación Media Tecnológica
INTEGRANTE: FLORES GODOY JUAN E. Grupo:308. Una tabla es una colección de datos sobre un tema específico, como productos o proveedores. Al usar una tabla.
Partes de la ventana Access
Diagrama de Clases.
Fundamentos de Ingeniería de Software
PRÁCTICA TRADOS Gestión de Proyectos. Objetivo Esta práctica tiene como objetivo: – Crear un proyecto. – Aprender a gestionar un paquete de proyecto.
Para cada uno de los atributos, indicaremos su campo de descripción. Cuando un campo no dispone de este (como el.
DLM Transact SQL Sesión I Introducción al SQL Server Uso de las herramientas de consultas del Transact SQL.
Curso de programación Visual Chart 6 (1ªEd.)
Lección 2 Creación de un SubVI. SubVIs SubVIs Un SubVI es un VI que puede ser utilizado dentro de otro VI Similar a una subrutina Ventajas ◦ Modular.
Estructura de Datos Departamento de Programación Universidad Metropolitana Contenido: UML. Envío de mensajes. Relaciones. Asociación. Agregación o composición.
INGENIERÍA DE INFORMACIÓN Y APLICACIONES
Transcripción de la presentación:

Sesión 5 Herramientas de creación de DSL gráficos (GMF) Proyecto AutoGSA Sesión 5 Herramientas de creación de DSL gráficos (GMF)

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

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.

Proceso de desarrollo

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.

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

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

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.

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.

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, …

Qué clases y relaciones mostrar Qué atributos hacer visibles Qué notación gráfica ¿Cómo diseñar un DSL gráfico? Qué acciones, menús, paletas... Qué asistentes, propiedades, ... Qué sucede al crear o borrar elementos,...

Sesión 5 Herramientas de creación de DSL gráficos (DSL Tools) Proyecto AutoGSA Sesión 5 Herramientas de creación de DSL gráficos (DSL Tools) 12

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.

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.

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.

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.

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.

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.

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

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.