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 Horacio López Fernando Varesi Marcelo Viñolo.

Presentaciones similares


Presentación del tema: "Especificación y Verificación de Transformaciones de Modelos Horacio López Fernando Varesi Marcelo Viñolo."— 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 Situación Especificación E1 Implementación I1 Especificación E2 Implementación I2 Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones

3 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

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

5 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

6 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

7 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

8

9 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

10 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

11 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 horizontalvertical endógenarefactoringrefinamiento exógenatraducción o migración de lenguaje generación de código Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones

12 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

13 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

14 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

15 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

16 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

17 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

18

19 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

20 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

21 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

22 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

23

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

25 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

26 Transformación del prototipo Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones refiere escribe Metametamodelo KM3 Metametamodelo Coq Definición de Transformación Motor de Transformaciones Metamodelo destino en Coq Metamodelo origen en KM3 conforma ejecuta lee

27 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

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

29 Modelo origen Metamodelo UML en UMLMetamodelo 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

30 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

31 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 ) } Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones

32 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

33 Resultado Modelo OrigenModelo 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) … Introducción – Enfoques – Verificación – Caso de Estudio – Conclusiones

34

35 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

36 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

37 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

38


Descargar ppt "Especificación y Verificación de Transformaciones de Modelos Horacio López Fernando Varesi Marcelo Viñolo."

Presentaciones similares


Anuncios Google