presentación: “loosely coupled traceability for atl” frederic jouault 2005
DESCRIPTION
Presentación: “Loosely Coupled Traceability for ATL” Frederic Jouault 2005. SEMINARIO DE ACTUALIZACION TECNOLOGICA. Profesoras: Roxana Giandini y Claudia Pons. - PowerPoint PPT PresentationTRANSCRIPT
Presentación:Presentación:“Loosely Coupled “Loosely Coupled
Traceability for ATL”Traceability for ATL”Frederic Jouault
2005
Profesoras: Roxana Giandini y Claudia Pons.
Alumnos: Liliana Redruello, Viviana Esterkin,
Laura Riva, Esteban Calabria.
SEMINARIO DE ACTUALIZACION TECNOLOGICA
ATL
ATL Transformation Approach
Arquitectura ATL Arquitectura de tres
niveles:
AMW
ATL
ATL VM
ATL compiler
AMW to ATLtransformations
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
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.
TraceLinks
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ón
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
+name: String +name:String
A B
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:
Transformación de Src a Dst (Cont)
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. }
Desarrollo : Trazabilidad como Modelo
“Todo es un modelo”
Traceability como modelo.
Programas de Transformación como modelos.
Transformaciones de modelos
META META MODELO
TRANSFORMACION A-BMODELO A MODELO B
MDE: “Todo es un modelo” Jean Bézivin
META MODELO B
META MODELO TANSFORMACION
META MODELO A
Traceability como Modelo
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 Con trazabilidad
.atl como modelo1. module Src2DstPlusTrace;2. create OUT : Dst, trace : Trace from IN : Src;3.4. rule A2BPlusTrace {5. from6. s : Src!A7. to8. t : Dst!B (9. name <- s.name10. ),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. }
TracerAdder
Programa de transformación como modelos
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.
TracerAdder
Programa de transformación como modelo
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.
TracerAdder (cont.)
DEBATE
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
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.
FORMATO: corresponde a la forma en que se codifican los links.
ALMACENAMIENTO DE LINKS DE TRAZABILIDAD
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.
INTERNA:
Source Target
ALMACENAMIENTO DE LINKS DE TRAZABILIDAD
La información de trazabilidad es almacenada en forma separada de los modelos que hacen referencia. (En un modelo separado).Los modelos de origen-destino permanecen “Limpios”.Cada elemento del modelo debe tener una única y persistente identificación para que links externos se puedan resolver sin ambigüedad.
EXTERNA:Source Target
Trace
Creación de los Tracelinks
COMO SE CREAN LOS TRACE LINKS
Usando EMF (Eclipse Modeling Framework)• Uso Eobject en lugar de AnyModel Element, entonces
SourceElements y TargetElements pueden apuntar a cualquier elemento del modelo.
• Esta es la opción elegida por los autores del paper
Usando Model Weaving (AMW – Atlas Model Weaver)• Los links de trazabilidad son visualizados en AMW.• Los links Cross-Model son manejados por la herramienta.
Atlas Model Weaver (AMW)
Generating an ATL Execution Trace as a Traceability Weaving Model
http://apps.eclipse.org/gmt/amw/examples/ATL2WTracer/Traceability_example[1.0].pdf
OTRAS OPCIONES DE IMPLEMENTACION
Trazabilidad podría se implementada usando otras soluciones:
• Los motores de ATL mantienen links de trazabilidad interna que podrían ser serializados.
• Podrían especificar lenguajes constructores para soportar trazabilidad.
• Podrían usar reglas de herencia para adjuntar débilmente el código de traza a las reglas existentes.
• Desarrollando código PLUG-IN de trazas dinámicamente donde sea necesario.
Conclusiones
CONCLUSIONES
Provee débil acoplamiento entre transformación lógica y código de generación de trazabilidad.
Se adapta fácilmente a varios rangos y formatos.
Se inserta código de generación de trazabilidad fácilmente al código ATL. Este proceso puede ser completamente automatizado.
Se propuso un enfoque para trazabilidad en ATL que:
CONCLUSIONES (cont.)
Utiliza el código TracerAdder en forma transparente por el compilador ATL.
No requiere ningún lenguaje de soporte o modificador de motor.
Se propuso un enfoque para trazabilidad en ATL que:
CONCLUSIONES (cont.)
Cualquier parte del modelo de ATL puede ser extendido o transformado.
Trazabilidad puede ser considerado como un cross-cutting que requiere de la inserción de código.
Puede ser adaptado por otros lenguajes de transformación.
Resumen
Aplicado al Paper
Sin Trazabilidad
act S/Info Trace
Source Model Destination ModelATL Transformation sin informacion trazability
Con trazabilidad fuertemente acoplada
act c/trace acoplada
Source Model Destination ModelATL Transformation con Informacion Trazability
Trazability Model
Con trazabilidad debilmente acoplada
act c/trazabilidad debilmente acoplada
ATL Transformation sin informacion trazability
Trace Adder (ATL)
ATL Transformation con Informacion
TrazabilitySource Model Destination Model
Trazability Model
Metamodelo del Modelo de trazabilidad
class Trace Model
TraceLink
- ruleName: string
AnyModelElement
+targetElements
*
+sourceElements
*
ANEXO A
ATL Metamodel
Fuente:
http://www.eclipse.org/m2m/atl/atlTransformations/
ATL2Problem/ExampleATL2Problem%5Bv00.01%
5D.pdf
class ATL-Model-1
Element
- commentsAfter: string- commentsBefore: string- location: string
Unit
- name: string
Module
- isRefining: boolean
Library Query
LibraryRef
- name: string
+libraries
*
+unit
1
class ATL-Model-2
Unit
Module
- isRefining: boolean
ModuleElement
OclModel
Rule
- name: string
Helper
*1
*
1
class ATL-Model-3
ModuleElement
Rule
- name: string
MatchedRule
- isAbstract: boolean- isRefining: boolean
OutPattern
InPattern
RuleVariableDeclaration
PatternElement
VariableDeclaration
- ID: string- varName: string
+outpattern
0..*1
+inPattern
0..*1
class ATL-Model-4
VariableDeclaration
PatternElement
InPattern OutPattern
SimplePatternElement IterateInPatternElement OCLExpression
Binding
Comentarios
Comentarios de otros autores sobre la propuesta de Jouault
En el artículo“A Traceability Engine Dedicated to Model Transformation for Software Engineering”, Bastien Amar et al, (IRIT, Universite Paul Sabatier), dicen:
“Jouault (2005)propone generar links de trazabilidad en ATL, aplicando una transformación de segundo orden para insertar reglas de trazabilidad en la transformación original. Esta transformación de un programa puede ser visualizada como una precompilación o como una meta-transformación. Sin embargo este enfoque puede aplicarse únicamente a un lenguaje declarativo”
Comentarios de otros autores sobre la propuesta de Jouault (cont)
En su artículo “Fine Grained Traceability for an MDE Aproach of Embedded Systems Conception”, Flori Glitia et al de LIFL, University of Sciences and Technologies of Lille, France, dicen:
“Muchas soluciones de trazabilidad se han propuesto en la literatura, cada una de ellas respondiendo a necesidades específicas de proyectos. MDE tiene el principio everything is a model, o sea que parecería una buena solución almacenar la información de trazabilidad como modelos. Se han propuesto soluciones para guardar la información de la traza en los modelos iniciales fuente y destino. El mayor problema que genera esta solución es que poluciona los modelos con información adicional y requiere adaptación de los metamodelos para que tengan en cuenta la trazabilidad. Utilizar un modelo de Trazabilidad separado con una semántica específica tiene la ventaja de guardar información de trazabilidad independiente de los modelos iniciales. Por esta razón, la generación de trazabilidad puede ser implementada manualmente en las transformaciones para producir un modelo destino de traza en forma adicional o puede ser soportado por el motor de transformación.”
Referencias
Bézivin, J., On the unification power of models, Software and Systems Modeling, Volume 4, Issue 2, May 2005, pages 171 – 188.
Budinsky, F., Steinberg, D., Raymond Ellersick, R., Ed Merks, E., Brodsky, S. A. and Grose, T. J., Eclipse Modeling Framework, Addison Wesley, 2003.
Jouault, F. and Kurtev, I., Transforming Models with ATL, in proceedings of the Model Transformation in Practice Workshop, October 3rd 2005, part of the MoDELS 2005 conference.
Dimitrios S. Kolovos, Richard F. Paige and Fiona A.C. Polack On-Demand Merging of Traceability Links with Models.