750 likes | 865 Views
Presentación: “Loosely Coupled Traceability for ATL” Frederic Jouault 2005. SEMINARIO DE ACTUALIZACION TECNOLOGICA. Profesoras: Roxana Giandini y Claudia Pons.
E N D
Presentación:“Loosely Coupled Traceability for ATL”Frederic Jouault2005 SEMINARIO DE ACTUALIZACION TECNOLOGICA Profesoras: Roxana Giandini y Claudia Pons. Alumnos: Liliana Redruello, Viviana Esterkin, Laura Riva, Esteban Calabria.
Arquitectura ATL Arquitectura de tres niveles: AMW AMW to ATL transformations ATL ATL compiler ATL VM
Componentes ATL • AMW (ATLAS Model Weaver): • Metamodelo genérico para establecer links entre los elementos del modelo (metamodel for model weaving) - precompilador • ATL: • Lenguaje de transformación híbrido • ATL VM: • Máquina virtual para ejecutar las transformaciones de modelos
El AMW visto por otros autores • En su artículo “Towards Rigorously Defined Model-To-Model Traceability”, Nicholas Drivalos et al de la University of New York dicen: “AMW, Atlas Model Weaver, es una herramienta creada por INRIA como parte del Atlas Model Mangement Arquitecture. Su objetivo principal es la captura y alamcenamiento de los links entre modelos”
Trazabilidad • Definición de la IEEE, del glosario de terminología de Ingeniería de Software: “ The degree to which a relationship can be established between two or more products of the development process, especially products having a predecessor-sucessor or master-subordinate relationship to one another; for example the degree to which the requirements and design of a given component match.” Conceptos extractados del artículo “Building Model Driven Engineering Traceability Classifications”, Richard Paige et al, University of New York, 2008
Trazabilidad (cont) En la ingeniería del software trazabilidad tiene dos semánticas principales dependiendo del contexto: • Trazabilidad en ingeniería de requerimientos es el “tracking” de un requerimiento desde su expresión a su implementación. • Trazabilidad en MDD :Trazabilidad de modelos durante una transformación “A Traceability Engine Dedicated to Model Transformation for Software Engineering”, Bastien Amar et al, IRIT, Universite Paul Sabatier
Cómo se aplica el concepto • Trazabilidad se refiere a la capacidad de rastrear artefactos a lo largo de operaciones encadenadas. • Las operaciones pueden ser: • Manuales :realizar un diseño de software para un conjunto de requerimientos. • Automatizadas :generando código a partir de un conjunto de definiciones abstractas.
Trace Links Se utiliza el término “trace links” para referirse a la relación de trazabilidad: • Las relaciones entre los modelos se llaman Trace Links: • Artefactos no-modelo, “traced” a modelos • Artefactos modelo “traced” a modelos Conceptos extractados del artículo “Building Model Driven Engineering Traceability Classifications”, Richard Paige et al, University of New York, 2008
Trace Links (2) Por ejemplo: • Lenguaje de descripción informal de requerimientos a Modelo de casos de uso. • Modelo de casos de uso a Diagrama de clase. Conceptos extractados del artículo “Building Model Driven Engineering Traceability Classifications”, Richard Paige et al, University of New York, 2008
Loosely Coupled Traceability for ATL Frederic Jouault Atlas Group, INRIA and LINA University of Nantes, France
ABSTRACT En el contexto de la transformación de modelos, la información de trazabilidad puede utilizarse en una variedad de escenarios. Cada uno de ellos, requiere potencialmente un formato o nivel de complejidad diferente. Por otra parte, un único programa de transformación puede utilizarse en diferentes contextos. Consecuentemente, puede ser necesario que ese programa genere diferentes tipos de información de trazabilidad.
ABSTRACT (2) Este trabajo tiene por objeto mostrar como la trazabilidad puede agregarse a programas escritos en ATLAS Transformation Language limitando dependencias con la lógica del programa. Para implementar este enfoque se utiliza la transformación de modelos.
IntroducciónCuestiones generales • La transformación de modelos como ingrediente central en la ingeniería de modelos. • QVT y ATL son dos ejemplos de lenguajes de transformación de modelos entre muchos otros.
Introducción Los lenguajes de transformación • Los lenguajes de transformación de modelos se enfocan en la especificación y ejecución de la transformación. • Pero también hacen uso de trazabilidad.
Introducción Trazabilidad • Definición de trazabilidad en la transformación de modelos (utilizado en el artículo): “Un lenguaje o motor que es capaz de mantener un conjunto de relaciones entre los correspondientes elementos fuente (source) y destino (target), se dice que soporta trazabilidad.”
Introducción Links • También pueden guardarse en la traza, los elementos de programa responsables de estas relaciones, por ejemplo una regla que especifica como se transforma un conjunto de elementos origen en otro conjunto destino.
Introducción Requerimientos de información de la trazabilidad • Variarán en al menos dos dimensiones: Rango y Formato
Introducción Rango y Formato • Rango: • el rango del uso de la trazabilidad corresponde a la cantidad de elementos para los cuales se mantienen links • Formato • La información de trazabilidad corresponde a la forma en que se codifican los links. • En tanto algunas aplicaciones necesitan links sencillos para modelar los elementos, otros requerirán codificación mas compleja.
IntroducciónLos distintos tipos de trazabilidad • En muchos casos un programa de transformación puede requerir el soporte de distintos tipos de trazabilidad, por lo que pueden incluirse distintos tipos de rango y formato y esto muchas veces no se conoce en tiempo de diseño del programa ni en en tiempo de desarrollo.
IntroducciónSolución propuesta • Attachear código de generación de trazabilidad a programas ATL pre-existentes.
IntroducciónBases de la solución La solución propuesta se basa en dos consideraciones esenciales: • Los programas de transformación se consideran modelos. • La información de trazabilidad se considera un modelo. “Everything is a model”
Enfoque utilizado • Se presenta un caso de estudio sencillo que se utiliza a lo largo del trabajo. • Se muestra como el considerar la información de trazabilidad como modelo permite una codificación simple para generarla. • Se muestra como, considerar los programas de transformación como modelos permite insertar código de generación de trazabilidad en programas ATL pre-existentes.
Caso de Estudio Metamodelos Src y Dst Src Dst A B +name:String +name: String
Explicación de la figura anterior • Consideremos dos metamodelos simples Src (source) y Dst (destination). • El metamodelo Src contiene una sola clase llamada A, que tiene un único atributo name. • El metamodelo Dst es idéntico excepto el nombre de la clase que es B.
Transformación de Src a Dst • Consideramos la transformación de de Src a Dst que traduce cada A en un B que tiene el mismo atributo name. • El código de la transformación es el siguiente:
Código ATL de la transformación A a B 1. Module Src2Dst; 2. Create Out: Dst from IN : Src; 3. ----- 4. rule A2B { 5. from 6. s : Src!A 7. to 8. t : Dst! B ( 9. name s.name 10. ) 11. }
“Todo es un modelo” • Traceability como modelo. • Programas de Transformación como modelos.
META META MODELO META MODELO B MODELO A TRANSFORMACION A-B MODELO B MDE: “Todo es un modelo” Jean Bézivin META MODELO TANSFORMACION META MODELO A Transformaciones demodelos
EMF = Eclipse Modeling Framework • Es un framework de Eclipse para definición de lenguajes de modelado y generación de código a partir de los modelos. • Permite generar código fuente, sin perder las modificaciones hechas por los usuarios.
EMF = Eclipse Modeling Framework • Básicamente Eclipse define a partir de un modelo eCore. • El código para manipular ese modelo. • Un plugin edit para poder visualizar las propiedades de los componentes del modelo en Eclipse. • Un editor para crear instancias de ese modelo • http://www.eclipse.org/modeling/emf/
.atl como modelo 1. module Src2DstPlusTrace; 2. create OUT : Dst, trace : Trace from IN : Src; 3. 4. rule A2BPlusTrace { 5. from 6. s : Src!A 7. to 8. t : Dst!B ( 9. name <- s.name 10. ), 11. traceLink : Trace!TraceLink ( 12. ruleName <- 'A2BPlusTrace', 13. targetElements <- Sequence {t} 14. ) 15. do {
.atl como modelo (cont.) 16. traceLink.refSetValue('sourceElements', 17. Sequence {s}); 18. } 19. }
Programa de transformación como modelos TracerAdder • Transforma un programa ATL en otro programa ATL por transformación de modelos. • TracerAdder es una transformación que inserta automáticamente el código para generación de trazas a una transformación preexistente. • Opera en modo refinamiento: los elementos de origen que no se correspondieron son automáticamente copiados en el modelo de salida.
Programa de transformación comomodelo TracerAdder (cont.) • Debe utilizarse antes de la compilación de ATL (por lo tanto se incluye dentro del programa ATL pre-existente en una etapa de precompilación). • Opera directamente sobre la sintaxis abstracta.
TRAZABILIDAD ACOPLADA • Código de Generación de Trazabilidad esta débilmente acoplado a la transformación lógica. • La transformación lógica no depende de este. Se puede agregar el código de generación de trazabilidad a otros programas que no fueron diseñados para ello. • Varias clases de trazabilidad se pueden agregar a una transformación dada dependiendo de los requerimientos de rango y formato. • Se pueden desarrollar Librerías de trazabilidad como TracerAdder.
ADAPTABILIDAD DE RANGO • El código de generación de trazabilidad puede ser agregado condicionalmente. • Trace Links son generados en algunas reglas (rules). • Otras reglas permanecen sin modificar. RANGO: corresponde a la proporción de elementos para los que se mantienen los links.
ADAPTABILIDAD DE RANGO (cont.) • El código de generación de trazabilidad cubre sólo partes de una regla. • Es mejor para escalar o tener una buena performance la: • Generación de trazabilidad completa. • Eliminación (filter out) de los links no deseados.
ADAPTABILIDAD DE FORMATO FORMATO: corresponde a la forma en que se codifican los links. • La trazabilidad de información se generará como un modelo. • Las transformaciones modelo-a-modelo se aplican conforme un metamodelo específico. • Los modelos pueden ser procesados en cualquier formato. • TracerAdder puede modificarse para no agregar código de generación de trazabilidad a reglas específicas y reducir el tamaño del modelo de traza.
ALMACENAMIENTO DE LINKS DE TRAZABILIDAD INTERNA: • La información de trazabilidad esta almacenada dentro del artefacto. • “Modelo sucio”. • En modelos UML se usan asociaciones “Refines” que conectan los elementos que participan.