1 / 38

Especificación y Verificaci ón de Transformaciones de Modelos

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.

Download Presentation

Especificación y Verificaci ón de Transformaciones de Modelos

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Especificación y Verificación de Transformacionesde Modelos HoracioLópez Fernando Varesi Marcelo Viñolo

  2. Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones Situación Especificación E1 Especificación E2 Implementación I1 Implementación I2

  3. Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones DesarrolloGuiadoporModelos(ModelDrivenDevelopment, 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.

  4. Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones Transformación de modelos refiere Definición de Transformación refiere Metamodelo Origen MetamodeloDestino conforma ejecuta conforma Motor de Transformaciones lee escribe Modelo Origen Modelo Destino

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

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

  7. Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones Descripción del proyecto • Resultadosesperados: • 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.

  8. Lenguajes y Herramientas de Transformación

  9. Introducción– Enfoques– Verificación – Caso de Estudio – Conclusiones Lenguajes y Herramientas • Relevamiento de trabajosactualessobreespecificación de transformaciones • Caracterización: • Generales • Metamodelos • Reglas de transformación

  10. Introducción– Enfoques– Verificación – Caso de Estudio – Conclusiones Caracterización de los enfoques de transformación • Modelo-Modelo y Modelo-Texto • Característicasgenerales • Múltiplesmodelosorigen/destino? • Transformación “in-place”? • Incrementabilidad • Multidireccionalidad? • Mecanismos de trazabilidad?

  11. Introducción– Enfoques– Verificación – Caso de Estudio – Conclusiones Caracterización de los enfoques de transformación • Características de los metamodelos • Transformaciónendógena o exógena • Transformación horizontal o vertical

  12. Introducción– Enfoques– Verificación – Caso de Estudio – Conclusiones Caracterización de los enfoques de transformación • Características de lasreglas de transformación • Precondiciones de aplicación (guardas) • Parametrización y re-uso de reglas • Detección y órden de aplicación Éstas y otrascaracterísticasfuerondocumentadas en el primer reportetécnico.

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

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

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

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

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

  18. Verificación de Transformaciones de Modelos

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

  20. Introducción– Enfoques– Verificación– Caso de Estudio – Conclusiones Casos de prueba • Verificacióndinámica a nivel de modelos • Se trabajasobre un conjuntorepresentativo del dominio. • Pasos: • Generación • Complejidad de exploración del espacio de modelos • Validación • Ejecución • Cómogenerar el resultadoesperado? • Cómocompararresultados?

  21. Introducción– Enfoques– Verificación– Caso de Estudio – Conclusiones Model-Checking • Verificacióndinámica (modelos) o estática (transf.) • Pruebaautómatica de propiedadessobremodelos y/o transformaciones • Ambos deben ser expresadoscomografos • Fortalezas: • Facilidad de uso • No requiereasistencia del usuario • Debilidades: • Lenguaje restringido para asegurar automaticidad • Complejidad crece exponencialmente con el tamaño del modelo.

  22. 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 • Lenguajeexpresivo 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

  23. Caso de Estudio

  24. Caso de estudio • Aplicación de conocimientossobretransformaciones • Enmarcado en unatécnica de verificaciónqueutilizamétodosdeductivos. • A continuación… • Técnica de verificación • Transformacióndesarrollada • Diseñoprototipo

  25. 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 Traducción de reglas de transf. a fórmulaslógicas

  26. 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 Motor de Transformaciones lee escribe Metamodelo origen en KM3 Metamodelo destino en Coq

  27. 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 • Expresarpropiedadessobre los modelos • Verificar propiedades

  28. Introducción– Enfoques– Verificación – Caso de Estudio– Conclusiones Proceso de transformación

  29. Introducción– Enfoques– Verificación – Caso de Estudio– Conclusiones Modeloorigen Metamodelo UML en UML Metamodelo UML en KM3 package UML { abstractclassClassifier { attributename : String; } classClassextendsClassifier { reference pack : Package … } … … }

  30. Introducción– Enfoques– Verificación – Caso de Estudio– Conclusiones Transformación ATL • Especificaciónpuramentedeclarativa (relacional). • Relaciones: • Clase => TipoInductivo (TI) • Atributo/Referencia => Componente del TI • Identidad de objetos => Componenteoid • 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 ) }

  32. Introducción– Enfoques– Verificación – Caso de Estudio– Conclusiones TransformaciónXtext • Basado en templates (Xpand) • Traducción a sintaxis Coq. • Genera funcionesauxiliarespara la construcción de pruebasformales: • Proyecciones • Comparación de objetos • Casting • Chequeo de tipos

  33. Introducción– Enfoques– Verificación – Caso de Estudio– Conclusiones Resultado Modelo Origen ModeloDestino package UML { abstractclassClassifier { attributename : String; } classClassextendsClassifier { reference pack : Package … } … … } InductiveClassifier : Set := | Build_Classifier (name : string) (subClass : option Class) with Class : Set := | Build_Class (oid : nat) (pack : Package) … …

  34. Conclusiones

  35. Introducción– Enfoques– Verificación – Caso de Estudio – Conclusiones Conclusiones… • Existeunagrandiversidad 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 permanenteperfeccionamiento.

  36. Introducción– Enfoques– Verificación – Caso de Estudio – Conclusiones Conclusiones… • Las técnicas de verificacióndifieren en el grado de certezaquebrindan. • Trabajan en diferentesniveles de abstracción • El segundo reporte técnico presenta una clasificación y descripción de técnicas de verificación. • Las herramientasqueasisten la verificación en gral. no se encuentranintegradas a las de desarrollo.

  37. Introducción– Enfoques– Verificación – Caso de Estudio – Conclusiones Conclusiones • Se implementó un prototipopara semi-automatizarunatécnica de verificaciónbasada en métodosdeductivos.

  38. GRACIAS

More Related