especificación y verificaci ón de transformaciones de modelos

38
Especificación y Verificación de Transformaciones de Modelos Horacio López Fernando Varesi Marcelo Viñolo

Upload: zephania-estrada

Post on 31-Dec-2015

35 views

Category:

Documents


2 download

DESCRIPTION

Especificación y Verificaci ón de Transformaciones de Modelos. Horacio López Fernando Varesi Marcelo Viñolo. Introducción – Enfoques – Verificaci ón – Caso de Estudio – Conclusiones. Situación. Especificación E1. Especificación E2. Implementación I1. Implementación I2. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Especificación  y  Verificaci ón  de  Transformaciones de  Modelos

Especificación y Verificación de Transformaciones de Modelos

Horacio LópezFernando VaresiMarcelo Viñolo

Page 2: Especificación  y  Verificaci ón  de  Transformaciones de  Modelos

Situación

Especificación E1

Implementación I1

Especificación E2

Implementación I2

Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones

Page 3: Especificación  y  Verificaci ón  de  Transformaciones de  Modelos

Desarrollo Guiado por Modelos (Model Driven Development, MDD)

•Enfoque de ingeniería de software basado en el

modelado de un sistema como la principal actividad del desarrollo y la construcción

del mismo guiada por transformaciones de

dichos modelos.

Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones

Page 4: Especificación  y  Verificaci ón  de  Transformaciones de  Modelos

refiererefiere

escribe

Transformación de modelos

Metamodelo Origen

Metamodelo Destino

Definición de Transformació

n

Motor de Transformacion

es

Modelo Destino

Modelo Origen

conforma conformaejecuta

lee

Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones

Page 5: Especificación  y  Verificaci ón  de  Transformaciones de  Modelos

Aplicaciones de transformaciones•Generar modelos de bajo nivel

(eventualmente código) a partir de modelos de alto nivel

• Ingeniería inversa de modelos de alto nivel a partir de modelos de bajo nivel o código.

•Mapeo y sincronización entre modelos.

•Crear vistas de un sistema basadas en una consulta

•Evolucionar modelos (ej: refactoring)

Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones

Page 6: Especificación  y  Verificaci ón  de  Transformaciones de  Modelos

Descripción del proyecto

•Objetivos:▫Realizar un estudio del estado del arte

sobre: lenguajes y herramientas existentes para la

especificación de transformaciones de modelos

verificación de estas transformaciones

▫Aplicación de lo relevado a nivel práctico a un caso de estudio.

Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones

Page 7: Especificación  y  Verificaci ón  de  Transformaciones de  Modelos

Descripción del proyecto•Resultados esperados:

▫Estudio del marco teórico de MDD y de la transformación de modelos.

▫1er. reporte técnico: lenguajes y mecanismos para especificar transformaciones de modelos.

▫2do. reporte técnico: técnicas y herramientas de validación y verificación de modelos y de transformaciones.

▫Aplicación práctica de los resultados mediante un caso de estudio.

Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones

Page 8: Especificación  y  Verificaci ón  de  Transformaciones de  Modelos

Lenguajes y Herramientas de Transformación

Page 9: Especificación  y  Verificaci ón  de  Transformaciones de  Modelos

Lenguajes y Herramientas

•Relevamiento de trabajos actuales sobre especificación de transformaciones

•Caracterización:▫Generales▫Metamodelos▫Reglas de transformación

Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones

Page 10: Especificación  y  Verificaci ón  de  Transformaciones de  Modelos

Caracterización de los enfoques de transformación•Modelo-Modelo y Modelo-Texto•Características generales

▫Múltiples modelos origen/destino?▫Transformación “in-place”?▫Incrementabilidad▫Multidireccionalidad?▫Mecanismos de trazabilidad?

Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones

Page 11: Especificación  y  Verificaci ón  de  Transformaciones de  Modelos

Caracterización de los enfoques de transformación•Características de los metamodelos

▫Transformación endógena o exógena▫Transformación horizontal o vertical

horizontal vertical

endógena refactoring refinamiento

exógena traducción o migración de lenguaje

generación de código

Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones

Page 12: Especificación  y  Verificaci ón  de  Transformaciones de  Modelos

Caracterización de los enfoques de transformación•Características de las reglas de

transformación▫Precondiciones de aplicación (guardas)▫Parametrización y re-uso de reglas▫Detección y órden de aplicación

Éstas y otras características fueron documentadas

en el primer reporte técnico.

Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones

Page 13: Especificación  y  Verificaci ón  de  Transformaciones de  Modelos

Enfoques de transformación

•Manipulación directa•Operacional•Relacionales•Basados en transformaciones de grafos•Híbridos

Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones

Page 14: Especificación  y  Verificaci ón  de  Transformaciones de  Modelos

Enfoques de Transformación• Manipulación directa

▫Lenguaje de propósito general▫Representación de modelos adecuada al lenguaje.▫Ausencia de mecanismos dedicados a

transformaciones.▫Ejemplo: SiTra

• Operacional▫Similar a programación imperativa.▫ Incorpora mecanismos de trazabilidad, etc.▫Orden de ejecución explícito.▫Ejemplos: Kermeta, QVT-Operational

Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones

Page 15: Especificación  y  Verificaci ón  de  Transformaciones de  Modelos

Enfoques de Transformación

•Relacionales▫El concepto principal son relaciones

matemáticas entre modelo origen y destino.▫Alto nivel de abstracción (mayor

legibilidad)▫En general, no admite actualizaciones in-

place.▫Creación de elementos es implícita.▫Orden de ejecución no es explícito.

pero se puede condicionar mediante precondiciones

▫Ejemplos: Tefkat, QVT-Relations

Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones

Page 16: Especificación  y  Verificaci ón  de  Transformaciones de  Modelos

Enfoques de Transformación

•Basados en Transformaciones de Grafos▫Se utilizan grafos tipados, con atributos y

etiquetas.▫Reglas se componen de un lado izquierdo y

derecho.▫Propiedades matemáticas basadas en la

teoría subyacente (ej: alcanzabilidad de un nodo).

▫Ejemplos: AGG, AToM3, Viatra, MOLA

Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones

Page 17: Especificación  y  Verificaci ón  de  Transformaciones de  Modelos

Enfoques de Transformación• Híbridos

▫Combina enfoques anteriores para sumar ventajas.

▫QVT Estándar definido por OMG. Emplea OCL y MOF. Transformaciones modelo-modelo

▫ATL Sigue lineamientos de QVT RFP Transformaciones unidireccionales Modelo origen es read-only Modelo destino es write-only

Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones

Page 18: Especificación  y  Verificaci ón  de  Transformaciones de  Modelos

Verificación de Transformaciones de Modelos

Page 19: Especificación  y  Verificaci ón  de  Transformaciones de  Modelos

Verificación de transformaciones•Relevamiento de trabajos actuales sobre

verificación▫Categorización▫Análisis de características, fortalezas y

debilidades

•Categorías▫Casos de prueba▫Model-checking▫Métodos deductivos

Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones

Page 20: Especificación  y  Verificaci ón  de  Transformaciones de  Modelos

Casos de prueba•Verificación dinámica a nivel de modelos•Se trabaja sobre un conjunto representativo

del dominio.•Pasos:

▫Generación Complejidad de exploración del espacio de

modelos▫Validación▫Ejecución

Cómo generar el resultado esperado? Cómo comparar resultados?

Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones

Page 21: Especificación  y  Verificaci ón  de  Transformaciones de  Modelos

Model-Checking• Verificación dinámica (modelos) o estática (transf.)• Prueba autómatica de propiedades sobre modelos

y/o transformaciones• Ambos deben ser expresados como grafos• Fortalezas:

▫Facilidad de uso▫No requiere asistencia del usuario

• Debilidades:▫Lenguaje restringido para asegurar automaticidad▫Complejidad crece exponencialmente con el tamaño

del modelo.

Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones

Page 22: Especificación  y  Verificaci ón  de  Transformaciones de  Modelos

Métodos Deductivos• Verificación estática a nivel de metamodelos• Centrado en la realización de pruebas formales• Especificaciones formales de los metamodelos y

transf.• Fortalezas:

▫ Brinda certeza absoluta▫ Lenguaje expresivo de propiedades▫ Generación de implementaciones de transformación

correctas• Debilidades:

▫ Verificación manual o semi-automática.▫ Requiere experiencia en lenguajes formales y/o

herramientas matemáticas

Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones

Page 23: Especificación  y  Verificaci ón  de  Transformaciones de  Modelos

Caso de Estudio

Page 24: Especificación  y  Verificaci ón  de  Transformaciones de  Modelos

Caso de estudio

•Aplicación de conocimientos sobre transformaciones

•Enmarcado en una técnica de verificación que utiliza métodos deductivos.

•A continuación…▫Técnica de verificación▫Transformación desarrollada▫Diseño prototipo

Page 25: Especificación  y  Verificaci ón  de  Transformaciones de  Modelos

Técnica de Verificación

Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones

Especificación formal de

metamodelos en Coq

Traducción de reglas de transf. a fórmulas lógicas

Elaboración de prueba formal

Page 26: Especificación  y  Verificaci ón  de  Transformaciones de  Modelos

Transformación del prototipo

Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones

refiererefiere

escribe

Metametamodelo KM3

Metametamodelo Coq

Definición de Transformació

n

Motor de Transformacion

es

Metamodelo destino en Coq

Metamodelo origen en KM3

conforma conformaejecuta

lee

Page 27: Especificación  y  Verificaci ón  de  Transformaciones de  Modelos

KM3 – Coq

•KM3▫Lenguaje de metamodelado textual▫Sintaxis similar a Java▫Popular en comunidad de usuarios de ATL

•Coq▫Asistente de pruebas que permite :

Expresar modelos matemáticos complejos Expresar propiedades sobre los modelos Verificar propiedades

Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones

Page 28: Especificación  y  Verificaci ón  de  Transformaciones de  Modelos

Proceso de transformación

Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones

Page 29: Especificación  y  Verificaci ón  de  Transformaciones de  Modelos

Modelo origenMetamodelo UML en UML Metamodelo UML en KM3

package UML {abstract class Classifier {attribute name : String;}

class Class extends Classifier {

reference pack : Package

…}……

}

Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones

Page 30: Especificación  y  Verificaci ón  de  Transformaciones de  Modelos

Transformación ATL

•Especificación puramente declarativa (relacional).

•Relaciones:▫Clase => Tipo Inductivo (TI)▫Atributo/Referencia => Componente del TI▫Identidad de objetos => Componente oid▫Herencia => Componente del TI

Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones

Page 31: Especificación  y  Verificaci ón  de  Transformaciones de  Modelos

Transformación ATLrule AbstractClass2InductiveType {from

i: KM3!Class (i.isAbstract)to

o: COQ!InductiveType (isAbstract <- i.isAbstract,name <- i.name,hasComponents <- i.structuralFeatures,subTypes <- i.subclasses,superTypes <- i.supertypes

)}

Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones

Page 32: Especificación  y  Verificaci ón  de  Transformaciones de  Modelos

Transformación Xtext

•Basado en templates (Xpand)•Traducción a sintaxis Coq.•Genera funciones auxiliares para la

construcción de pruebas formales:▫Proyecciones▫Comparación de objetos▫Casting▫Chequeo de tipos

Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones

Page 33: Especificación  y  Verificaci ón  de  Transformaciones de  Modelos

ResultadoModelo Origen Modelo Destino

package UML {abstract class Classifier {

attribute name : String;}

class Class extends Classifier {

reference pack : Package

…}……

}

Inductive Classifier : Set := | Build_Classifier (name :

string) (subClass : option Class)

withClass : Set := | Build_Class (oid : nat)

(pack : Package)……

Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones

Page 34: Especificación  y  Verificaci ón  de  Transformaciones de  Modelos

Conclusiones

Page 35: Especificación  y  Verificaci ón  de  Transformaciones de  Modelos

Conclusiones…• Existe una gran diversidad de técnicas,

herramientas y lenguajes de transformación de modelos.

• El enfoque a utilizar depende de la naturaleza del problema y no existe uno que contemple todas las necesidades posibles.

• El primer reporte técnico presenta una taxonomía que permite clasificar los enfoques y seleccionar el más adecuado para un problema particular.

• Entornos y herramientas “inmaduros” y en permanente perfeccionamiento.

Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones

Page 36: Especificación  y  Verificaci ón  de  Transformaciones de  Modelos

Conclusiones…

•Las técnicas de verificación difieren en el grado de certeza que brindan.

•Trabajan en diferentes niveles de abstracción

•El segundo reporte técnico presenta una clasificación y descripción de técnicas de verificación.

•Las herramientas que asisten la verificación en gral. no se encuentran integradas a las de desarrollo.

Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones

Page 37: Especificación  y  Verificaci ón  de  Transformaciones de  Modelos

Conclusiones

•Se implementó un prototipo para semi-automatizar una técnica de verificación basada en métodos deductivos.

Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones

Page 38: Especificación  y  Verificaci ón  de  Transformaciones de  Modelos

GRACIAS