presentación: “loosely coupled traceability for atl” frederic jouault 2005

Post on 05-Feb-2016

31 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Presentación: “Loosely Coupled Traceability for ATL” Frederic Jouault 2005. SEMINARIO DE ACTUALIZACION TECNOLOGICA. Profesoras: Roxana Giandini y Claudia Pons. - PowerPoint PPT Presentation

TRANSCRIPT

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.

top related