La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Especificación y Verificación de Transformaciones de Modelos

Presentaciones similares


Presentación del tema: "Especificación y Verificación de Transformaciones de Modelos"— Transcripción de la presentación:

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

2 Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones
Situación Especificación E1 Especificación E2 (tiempo estimado: 1’) ESQUEMATIZAR En algunos paradigmas como el de OO, esto implicaría un esfuerzo de análisis y rediseño para realizar los cambios en la implementación. Si en cambio yo tuviera una forma de transformar en forma automática una especificación a una implementación, este paso sería tan sencillo como volver a ejecutar dicha transformación. Esto es lo que propone el Desarrollo Guíado por Modelos… Implementación I1 Implementación I2

3 Desarrollo Guiado por Modelos (Model Driven Development, MDD)
Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones 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. (tiempo estimado: 1’) Notar que los conceptos claves son modelo y transformaciones Modelo: Abstracción de un sistema que permite a diferentes actores describir un sistema y efectuar cambios sobre el mismo [Czarnecki et al., 06]

4 Transformación de modelos
Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones Transformación de modelos refiere Definición de Transformación refiere Metamodelo Origen Metamodelo Destino conforma ejecuta conforma (tiempo estimado: 1’30’’) Se define una transformación como la generación automática de un modelo destino desde un modelo origen, de acuerdo a una definición de transformación. Una definición de transformación es un conjunto de reglas de transformación que describe cómo un modelo en el lenguaje origen puede ser transformado en un modelo en el lenguaje destino. Este es un esquema genérico. En algunos enfoques de transformación son posibles múltiples modelos origen y destino, o trabajar con un único modelo que es origen y destino a la vez. Metamodelos son modelos Importancia de verificación de transformación Motor de Transformaciones Modelo Origen lee escribe Modelo Destino

5 Aplicaciones de transformaciones
Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones 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) (tiempo estimado: 1’) Las aplicaciones dentro de MDD comprenden, entre otras, la generación de modelos de bajo nivel (llegando a código fuente) a partir de modelos de alto nivel, la sincronización entre modelos (frente a modificaciones en un modelo, otro debe actualizarse), la evolución de los mismos (ejemplo: realizando un refactoring), y las tareas de ingeniería inversa de modelos de bajo nivel para generar modelos de mayor nivel de abstracción

6 Descripción del proyecto
Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones 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. (tiempo estimado: 30’) Enmarcado en un proyecto de investigación más general del grupo COAL y el grupo de Métodos Formales

7 Descripción del proyecto
Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones 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. (tiempo estimado: 1’) El caso de estudio utiliza uno de los lenguajes de transformación relevados y asiste a una técnica de verificación que mencionaremos

8 Lenguajes y Herramientas de Transformación
(tiempo estimado: 30’’)

9 Lenguajes y Herramientas
Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones Lenguajes y Herramientas Relevamiento de trabajos actuales sobre especificación de transformaciones Caracterización: Generales Metamodelos Reglas de transformación

10 Caracterización de los enfoques de transformación
Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones 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? (tiempo estimado: 2’) Dada la gran diversidad de enfoques existentes para la transformación de modelos, se requiere de criterios que permitan clasificar a estos enfoques y seleccionar el más adecuado para resolver un problema dado. Incrementalidad: como responde la transformación frente a cambios en alguno de los modelos, en términos de esfuerzo de reanálisis y de actualización.

11 Caracterización de los enfoques de transformación
Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones 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 (tiempo estimado: 1’) Estas dimensiones de análisis son ortogonales. Podemos ver las combinaciones posibles en la tabla.

12 Caracterización de los enfoques de transformación
Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones 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. (tiempo estimado: 1’)

13 Enfoques de transformación
Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones Enfoques de transformación Manipulación directa Operacional Relacionales Basados en transformaciones de grafos Híbridos

14 Enfoques de Transformación
Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones 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 (tiempo estimado: 1’) Enfoques operacionales se centran en CÓMO No decir ejemplos

15 Enfoques de Transformación
Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones 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 (tiempo estimado: 1’) Enfoque declarativo que se centra en el QUE. Redactar creación implicita para no irse de tiempo No se puede asumir el orden de ejecución.

16 Enfoques de Transformación
Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones 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 (tiempo estimado: 1’) Distinguir herramientas de transformación de grafos (AGG) de lenguajes.

17 Enfoques de Transformación
Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones 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 (tiempo estimado: 1’) En este enfoque destacamos dos lenguajes.

18 Verificación de Transformaciones de Modelos
motivación Por qué?? - Para MDD exitoso -> verificar transformaciones Definición de correctitud -> (ej. En algunos casos que la transformación sea correcta, es que la transformación termina)

19 Verificación de transformaciones
Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones 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 Trabajos de técnicas aplicadas a situaciones concretas -> se categorizaron estos trabajos, tratando de extraer sus caracteristicas… Las técnicas analizadas son similares a la aplicación en otros enfoques pero con ciertos ajustes en MDD… En particular, para casos de prueba … por nuestro conocimiento de este enfoque .. Nos resultó más evidente…

20 Casos de prueba Verificación dinámica a nivel de modelos
Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones 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? (tiempo estimado: 2’) Brinda cierta seguridad Gereración -> exploración del dominio (memoria y tiempo de ejecución) Validación -> representativo y fallas Ejecución -> * generación de resultados * compración (en grafos puede equivale a un problema de isomorfismo de grafos, que es un problema np-completo) Hablemos en primer lugar de la verifiación utlizando casos de prueba… Dinámica por que es necesaria la ejecución de la transformaicón y a nivel de modelos pq se analizan los modelos involucrados en la misma Esta verificación es similar a otros paradigmas, como caja blanca, caja negra o mutation testing… pero se necesita realizar ajustes, como por ejemplo en mutation testing la definición de operadores de mutación para la transformación Aquí se trabaja con un conjunto representativo del dominio … por qué? … porque pruebo algo sobre conjunto represantivo puedo asegurar con cierta seguridad que se cumple para todo el dominio En primer lugar debemos generar los casos de prueba… notar que esto no es trivial ya que los metamodelos son estrucutras complejas… NOTAS DE AYUDA La técnica asegura que si se tiene un conjunto representativo del dominio, se puede asegurar con cierta seguridad, que se cumple para todo el dominio. Precisa ajustes -> operaciones de mutación adecuados. Generar “buenos” errores en una transformación Generación -> (en ciertos casos de forma automática) En primer lugar, los metamodelos son estructuras complejas que determinan un espacio de modelos mediante restricciones estructurales y posiblemente restricciones no estructurales La complejidad de los datos especicados por estos metamodelos afecta la generación de casos de prueba en términos de memoria y tiempo de ejecución para explorar el espacio de los modelos Validación del conjunto de casos de prueba - qué tan bueno es para cubrir el dominio - qué tan bueno es para detectar fallas Por ejemplo, enla verifiación utilizando oráculos, dificultad para generar los resultados esperados comparar los modelos destino con los esperados

21 Model-Checking Verificación dinámica (modelos) o estática (transf.)
Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones 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. Veamos ahora las técnicas que utilizan model-checking… La idea de model checking es definir prop sobre la transfor o modelos y probarlas de forma automática Puede decirse como en el caso anterior que con model-checking se puede realizar una verificación estática a nivel de la transforación y dinámica a nivel de los modelos Tiene varias ventajas dado que es fácil de usar y no requiere asistencia del usuario al realizar la verificación… Por otro lado alguna deventaja puede surgier en que el lenguaje que permite expresar propiedades puede ser limitado en ciertos casos… Y que para modelos muy grandes … esto podría tornarse bastante complejo

22 Métodos Deductivos Verificación estática a nivel de metamodelos
Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones 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 En el mejor de los casos semi-automática NOTAS Las técnicas de vericación a nivel de modelos utilizan un menor nivel de abstracción al de las técnicas de verificación formal sobre metamodelos, por lo que el rango de propiedades que se pueden validar es mayor que en el segundo caso, pero no pueden asegurar corrección en términos absolutos Especificaciones formales de metamodelos y transformación Utiliza especificaciones formales de los metamodelos y de la transformación … la transformación como conjunto de assertions. La última pregunta engancharla con el caso de estudio ….

23 Caso de Estudio Bueno … hablemos un términos generales del caso de estudio….

24 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 Aplicar conocimientos adquiridos sobre transformación en caso de estudio - En particular se implementó un prototipo que se enmarca en una técnica de verificación de métodos deductivos

25 Técnica de Verificación
Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones Técnica de Verificación Especificación formal de metamodelos en Coq Elaboración de prueba formal Categoria métodos deductivos, pruebas formales pasos Cajita del prototipo Técnica de verificación que se enmarca dentro de la categoría de métodos deductivos Cómo se dijo anteriormente … estás técnicas trabajan con especifiaciones formales…(aparecen las dos cajitas de la izquierda) Por lo tanto es necesario contar con una traducción a una especificación formal… Dibujo de las cajitas con los pasos de la verificación *Traducción de metamodelos a especificación formal en Coq -> Elaboración de prueba formal *Traducción de reglas de transf. a fórmulas lógicas Resaltar la parte que se enmarca el prototipo en el dibujo (con una animación o algo) Traducción de reglas de transf. a fórmulas lógicas

26 Transformación del prototipo
Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones Transformación del prototipo refiere Definición de Transformación refiere Metametamodelo KM3 Metametamodelo Coq conforma ejecuta conforma El modelo de origen es un metamodelo particular expresado en KM3 El modelo destino debe ser la especificación formal de este metamodelo origen. Para poder definir la transformación debo trabajar con metamodelos que describan el dominio de estos metamodelos. Por este motivo los metamodelos deben ser lenguajes de metametamodelado que permitan expresar cualquier metamodelo. Metamodelos son modelos esquema KM3 y Coq pie a Marcelo Motor de Transformaciones Metamodelo origen en KM3 lee escribe Metamodelo destino en Coq

27 KM3 – Coq KM3 Coq Lenguaje de metamodelado textual
Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones 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 resumen de KM3 y Coq (sin ejemplos, solo comentando en general qué son) KM3 La utilización de KM3 fue determinada por el espacio técnico de ATL .. Se destaca su similaridad con la sintaxis Java o .NET Coq Objetos primitivos -> tipos inductivos

28 Proceso de transformación
Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones Proceso de transformación  proceso del prototipo (aca se presenta oralmente Xtext) En este figura se puede ver cómo es el proceso que lleva a cabo la transformción realizada en el prototipo La transformación principal es la realizada en ATL que se ve en el lado izquierdo, la cual toma .. Bla bla…

29 Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones
Modelo origen Metamodelo UML en UML Metamodelo UML en KM3 package UML { abstract class Classifier { attribute name : String; } class Class extends Classifier { reference pack : Package … Hablar del ejemplo y de la sintaxis de KM3 por arriba…. Orden… Clase, claase abs, atributo, referencia, herencia

30 Transformación ATL Especificación puramente declarativa (relacional).
Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones 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

31 Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones
Transformación ATL rule 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 ) } Seccion from y seccion to Sección to: Asignaciones (bindings)

32 Transformación Xtext Basado en templates (Xpand)
Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones 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

33 Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones
Resultado Modelo 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) with Class : Set := | Build_Class (oid : nat) (pack : Package) … Clases a tipos inductivos. Constructor Atributos y referencias a parametros del constructor Identidad -> oid

34 Conclusiones

35 Introducción – Enfoques – Verificación – Caso de Estudio – 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. Sobre las herramientas inmaduras  algunas proveen reconocimiento de sintaxis y debugger pero en gral no proveen detección de errores en la codificación (ni estática, ni dinámica). Ejemplo, en ATL si se invoca una regla que no está definida, el entorno no muestra un mensaje .. Ni de forma estática , ni al ejecutar….(estático y dinamico respectivamente) Enfoque re;ativamente nuevo

36 Introducción – Enfoques – Verificación – Caso de Estudio – 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. Niveles de abstracción -> a nivel de modelo y a nivel de metamodelo Por qué no usar siempre métodos deductivos? El primer motivo es que los métodos deductivos: requieren la utilización de lenguajes formales y herramientas matemáticas no son fácilmente automatizables su uso es complejo y los desarrolladores no están habituados a trabajar. Elección de técnica deben emplearse criterios para determinar cuál es la técnica más apropiada para el problema concreto teniendo en cuenta la criticidad de la aplicación

37 Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones
Se implementó un prototipo para semi- automatizar una técnica de verificación basada en métodos deductivos. El trabajo futuro se centra en aspectos de la traduccion que quedaron fuera del alcance del prototipo. Estos aspectos son: Restricciones no estructurales expresadas en lenguaje formal (existen trabajos que lo realizan) Trabajo a futuro: Restricciones estructurales (ej: cardinalidad en asociaciones) Restricciones no estructurales expresadas en lenguaje formal

38 GRACIAS


Descargar ppt "Especificación y Verificación de Transformaciones de Modelos"

Presentaciones similares


Anuncios Google