ATLAS Transformation Language Introducción y comparativa con QVT

Slides:



Advertisements
Presentaciones similares
Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA 2006.
Advertisements

Etapas y actividades en el desarrollo OO basado en UML
Catan Card Game Jorge Sánchez Fernández Mohamed Benkodad
SQL: Lenguaje de Interrogación Estructurado
DSL Domain Specific Language (Lenguaje Especifico del Dominio)
Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA2006.
Sesión 5 Herramientas de creación de DSL gráficos (GMF)
UML 2.0 Integrantes: Diana Carolina Valencia M. Jhon Fernando Lopez T. Carlos Alberto Castillo.
Contribuciones a Lenguajes de Modelado Educativo
29/01/031 OCL (Object Constraint Language) Juan Casas Cuevas Mercedes Arenas Fernández Laboratorio de Sistemas de Información Facultad de Informática.
Ingeniería de Requisitos
MATHML Collado Rafael Eduardo. Introducción  MathML puede describirse con etiquetas y atributos.  HTML puede volverse interminable cuando tu documento.
Integrantes: Dennys Quintero José Ortega Simón Fagundez Caracas 09 de Febrero de 2015.
Arquitectura de software dirigida por modelos (Model-Driven Architecture) Liliana Favre UNCPBA2006.
Cómo aumentar la productividad a través de las tecnologías de modelado Adrián Noguero
1 BLOQUE I 3 Técnicas en Ingeniería Web Diseño Centrado en el Usuario Profesorado: Dra. María José Escalona Cuaresma Dr. José Mariano.
1 BLOQUE I 4 MDE orientado al usario Diseño Centrado en el Usuario Profesorado: Dra. María José Escalona Cuaresma Dr. José Mariano González.
1 Diseño Centrado en el Usuario Máster Oficial en Ingeniería y Tecnología del Software Profesorado: Dra. María José Escalona Cuaresma
Clase 3: primeros programas (1ª parte) iic1102 – introducción a la programación.
Lenguaje de programación: Lua Fundamentos de lenguaje de programación. Iván Cardemil Patricio Tudela Camilo Rojas Llosect Moscoso.
Geoprocesamiento con SQL en OrbisGIS ● OrbisGIS: SIG libre orientado al geoproceso que permite tratar fuentes de datos mediante instrucciones SQL ● Demasiado.
2012-BM5A. Introducción Todos los lenguajes de programación son distintos entre si. Sin embargo, pueden ser agrupados según la forma de pensar y estructurar.
Análisis y Diseño de POO Pedro Javier Encabo Checa Pedro J. Encabo.
Administración de Sistemas Gestores de Bases de Datos.
Análisis de Proyecto de Software.
INGENIERÍA DE INFORMACIÓN Y APLICACIONES
SQL: Structured Query Language
Visual ITP y Web ITP Raquel Sánchez Díaz Universidad de Salamanca.
Taller de Java Universidad de los Andes
Curs de Postgrau Visual Basic .NET: Introducció
Convenciones de nomenclatura y diseño
BLOQUE I 3 Técnicas en Ingeniería Web
HERRAMIENTAS DE INFORMATICA
DEPARTAMENTO DE ELÉCTRICA Y ELECTRÓNICA
Lineamientos para un buen diseño de base de datos
¿ Que hemos aprendido? Análisis Entendimiento del problema
SQL: Structured Query Language
Stored Procedures Firebird.
Transformación de modelos mediante gramáticas de grafos
Introducción a Transact-SQL BASES DE DATOS II. Introducción E lenguaje de programación Transact-SQL Tipos de instrucciones de Transact-SQL Elementos de.
SQL: structured Query Language
Diseño Centrado en el Usuario
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS
Presentación de la asignatura Guillermo Jaramillo Cabrera
Sonia Rueda Herencia y Polimorfismo
Ingeniería de Software Somerville
INTRODUCCIÓN A UML Oscar Miguel Alonso Moreno. INTRODUCCIÓN A UML  QUE ES UML?  PARA QUE SE UTILIZA  COMPONENTES  DIAGRAMAS.
Tema 3. Lenguaje unificado de modelado UML
Fundamentos de Ingeniería de Software MODELO DE CASOS DE USO
Unidad 3. Introducción a la programación
Resumen: Análisis de requerimientos
Ingeniería del Software
CONCEPTOS PRELIMINARES (Cont)
INTRODUCCIÓN A UML Y AL ADOO 1 Diagramas en UML ◦Diagramas de casos de uso ◦Diagramas de clases y objetos ◦Diagramas de secuencia ◦Diagramas de colaboración.
METODOLOGIAS AGILES VS TRADICIONALES SCRUM - RUP FABIO ARNOBY BEJARANO Q. UNIREMINGTON BUGA (V) INGENIERIA DE SOFTWARE II SEPTIEMBRE 2018.
Web Application Development Focused on BP Specifications
GINGA-NCL.
Curso Angularn Tema 01b 15/01/2019 Curso JavaScript.
Norma IEC 1131 Norma IEC 1131 en STEP 7 NORMA IEC 1131 EN STEP 7
MODELADO DE DATOS Tema 2: Normalizar un diseño de bases de datos.
Informática Ingeniería en Electrónica y Automática Industrial
Capítulo 7 USO DE BASES DE DATOS OBJETO- RELACIONALES.
1 Diseño Centrado en el Usuario Máster Oficial en Ingeniería y Tecnología del Software Profesorado: Dra. María José Escalona Cuaresma
PRESENTACION DE INGENIERIA ORIENTADA A OBJETOS. INTRODUCCION. ¿ Qué es UML ?. UML, por sus siglas en Ingles, Unified Modeling Languaje.(Lenguaje Unificado.
INTRODUCCIÓN A UML Oscar Miguel Alonso Moreno. INTRODUCCIÓN A UML  QUE ES UML?  PARA QUE SE UTILIZA  COMPONENTES  DIAGRAMAS.
GINGA-NCL.
AUTOR: MIGUEL GARZON DIRECTOR: ING. DARWIN ALULEMA Msc. SANGOLQUÍ 2019
INTRODUCCIÓN A UML.  QUE ES UML?  PARA QUE SE UTILIZA  COMPONENTES  DIAGRAMAS.
Luis Fernando Muñoz Pantoja Ingeniero de Sistemas Copyright 2019 Luis Fernando Muñoz Pantoja Ingeniero de Sistemas Derechos reservados UML.
Lenguaje de definición de datos. Un lenguaje de base de datos o lenguaje de definición de datos es un lenguaje proporcionado por el sistema de gestión.
Transcripción de la presentación:

ATLAS Transformation Language Introducción y comparativa con QVT Javier Jesús Gutierrez Rodriguez javierj@us.es Dra. María José Escalona Cuaresma mjescalona@us.es

Índice Introducción. Las herramientas MDE de Eclipse. Transformación de modelo a modelo en Eclipse: ATL. Generación de pruebas como un problema de modelo a modelo. Conclusiones.

Introduction

Introducción QVT ATL Lenguaje de definición de transformaciones, consultas y vistas. Declarativo e imperativo. Soporte parcial y limitado de herramientas. Estándar de la OMG. Soporte OCL 2. Ofrece una interfaz para otros lenguajes. Lenguaje de definición de transformaciones, consultas y librerías de funciones. Declarativo e imperativo. Soporte completo de herramientas. No estándar. Soporte OCL 2. Combina con Java

Las herramientas MDD de Eclipse

Herramientas de modelado Eclipse Una parte de Eclipse aglutina y desarrolla herramientas para MDD. http://www.eclipse.org/modeling

Transformación de modelo a modelo en Eclipse: ATL Un caso práctico: de diagrama de clases a tablas

ATLAS Transformation Language Plan de trabajo con ATL Definir metamodelos. Definir modelos. Escribir transformaciones. Ejecutar transformaciones. Ejemplo: SimpleClass2SimpleRDBMS

ATLAS Transformation Language Metamodelo simplificado de clases

ATLAS Transformation Language Metamodelo simplificado de tablas

Demo ATLAS Transformation Language Definición de metamodelos con KM3 Metamodelo de clases (aún más simplificado) Demo Es un lenguaje extremadamente sencillo, ocupa solo 8 páginas. Realmente KM3 no hace distinción entre agregaciones y composiciones.

ATLAS Transformation Language Definición de metamodelos con KM3 Metamodelo de clases (aún más simplificado) Es un lenguaje extremadamente sencillo, ocupa solo 8 páginas. Realmente KM3 no hace distinción entre agregaciones y composiciones.

ATLAS Transformation Language Definición de modelos Modelo de clases Es un lenguaje extremadamente sencillo, ocupa solo 8 páginas. Realmente KM3 no hace distinción entre agregaciones y composiciones.

ATLAS Transformation Language Transformaciones De clase a tabla (QVT) transformation ct(uml:SimpleUML,rdbms:SimpleRDBMS) { key Table (name); top relation ClassToTable { checkonly domain uml c:Class { kind='Persistent', name=cn }; enforce domain rdbms t:Table { } Poner debajo de la transformación el resultado. Una tabla por cada clase de tipo Persistent con el mismo nombre que la clase.

Demo ATLAS Transformation Language Transformaciones De clase a tabla (ATL) Demo Poner debajo de la transformación el resultado.

ATLAS Transformation Language Transformaciones De clase a tabla (QVT vs ATL) transformation clase_a_tabla(u:SimpleUML, r:SimpleRDBMS) { top relation ClassToTable { checkonly domain u c:Class { name=cn }; enforce domain r t:Table { } Poner debajo de la transformación el resultado.

ATLAS Transformation Language Transformaciones De clase y atributos a tabla y columnas (QVT) 1 de 2 transformation umlToRdbms(uml:SimpleUML, rdbms:SimpleRDBMS) { top relation ClassToTable { cn, prefix: String; checkonly domain uml c:Class { kind='Persistent', name=cn}; enforce domain rdbms t:Table {name=cn, column=cl:Column {name=cn+'_tid', type='NUMBER'}, }; where { prefix = ''; AttributeToColumn(c, t, prefix); } relation AttributeToColumn checkonly domain uml c:Class {}; enforce domain rdbms t:Table {}; primitive domain prefix:String; PrimitiveAttributeToColumn(c, t, prefix); Poner debajo de la transformación el resultado. Una columna por atributo con el mismo nombre terminado en ‘_tid’ de tipo NUMBER. Una relación para atributos simples, compuestos, etc.

ATLAS Transformation Language Transformaciones De clase y atributos a tabla y columnas (QVT) 2 de 2 transformation umlToRdbms(uml:SimpleUML, rdbms:SimpleRDBMS) { relation PrimitiveAttributeToColumn an, pn, cn, sqltype: String; checkonly domain uml c:Class {attribute=a:Attribute {name=an, type=p:PrimitiveDataType {name=pn}}}; enforce domain rdbms t:Table {column=cl:Column {name=cn, type=sqltype}}; primitive domain prefix:String; where { cn = if (prefix = '') then an else prefix+'_'+an endif; sqltype = PrimitiveTypeToSqlType(pn); } function PrimitiveTypeToSqlType(primitiveTpe:String):String { if (primitiveType='INTEGER‘) then 'NUMBER' else if (primitiveType='BOOLEAN') then 'BOOLEAN' else 'VARCHAR' endif endif; Poner debajo de la transformación el resultado. Un atributo INTEGER es una columna NUMBER, un atributo BOOLEAN es una columna BOOLEAN y cualquier otro atributo es una columna VARCHAR

Demo ATLAS Transformation Language Transformaciones De clase y atributos a tabla y columnas (ATL) Demo Poner debajo de la transformación el resultado.

ATLAS Transformation Language Transformaciones De clases y atributos a tablas y columnas (QVT vs ATL) Poner debajo de la transformación el resultado.

Demo ATLAS Transformation Language Transformaciones Ejecución de la transformación Demo Poner debajo de la transformación el resultado.

ATLAS Transformation Language Transformaciones Ejecución de la transformación Poner debajo de la transformación el resultado.

Generación de pruebas como un problema de modelo a modelo.

Generacion de pruebas Generación de pruebas Casos de uso + requisitos funcionales Our two approaches Translate requirements into a model and apply a criterion. Apply category-partition method and combination matrix. Information obtained Scenarios. Categories, partitions, test values (optional), and combinations. Test cases. Metamodels needed Test scenarios metamodel. Test values metamodel. Test cases metamodel. Es un lenguaje extremadamente sencillo, ocupa solo 8 páginas. Realmente KM3 no hace distinción entre agregaciones y composiciones.

Generacion de pruebas Generación de pruebas Es un lenguaje extremadamente sencillo, ocupa solo 8 páginas. Realmente KM3 no hace distinción entre agregaciones y composiciones.

Conclusiones

ATLAS Transformation Language Conclusiones Descargar y listo. Buena documentación y ejemplos. Ejecutable desde código Java. Falta de herramientas de modelado. Mensajes de error muy crípticos. Numerosas diferencias con QVT. Es un lenguaje extremadamente sencillo, ocupa solo 8 páginas. Realmente KM3 no hace distinción entre agregaciones y composiciones.

ATLAS Transformation Language Enlaces Zoo de transformaciones: http://www.eclipse.org/m2m/atl/atlTransformations/ Zoo de metamodelos en KM3: http://www.eclipse.org/gmt/am3/zoos/atlanticZoo/ Zoo de metamodelos en Ecore: http://www.eclipse.org/gmt/am3/zoos/atlantEcoreZoo/

ATLAS Transformation Language Introducción y comparativa con QVT Javier J. Gutierrez Rodriguez javierj@us.es www.lsi.us.es/~javierj Dra. María José Escalona Cuaresma mjescalona@us.es www.lsi.us.es/~escalona www.lsi.us.es/ndt University of Sevilla ETS Ingeniería Informática Av. Reina Mercedes S/N 41015 Sevilla Tlf. 954553867 Fax. 954553917