380 likes | 648 Views
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.
E N D
Especificación y Verificación de Transformacionesde Modelos HoracioLó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
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.
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
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)
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.
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.
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
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?
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
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.
Introducción– Enfoques– Verificación – Caso de Estudio – Conclusiones Enfoques de transformación • Manipulacióndirecta • Operacional • Relacionales • Basados en transformaciones de grafos • Híbridos
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
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
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
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
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
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?
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.
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
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
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
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
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
Introducción– Enfoques– Verificación – Caso de Estudio– Conclusiones Proceso de transformación
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 … } … … }
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
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 ) }
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
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) … …
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.
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.
Introducción– Enfoques– Verificación – Caso de Estudio – Conclusiones Conclusiones • Se implementó un prototipopara semi-automatizarunatécnica de verificaciónbasada en métodosdeductivos.