MDA Aplicado: Una Gram - PowerPoint PPT Presentation

1 / 26
About This Presentation
Title:

MDA Aplicado: Una Gram

Description:

I Taller sobre Desarrollo de Software Dirigido por Modelos, ... private Persona Vecino; public String [] Telefonos; public void fijarEdad(Integer nueva_edad) ... – PowerPoint PPT presentation

Number of Views:49
Avg rating:3.0/5.0
Slides: 27
Provided by: javie69
Category:
Tags: mda | aplicado | gram | una | vecino

less

Transcript and Presenter's Notes

Title: MDA Aplicado: Una Gram


1
MDA Aplicado Una Gramática de Grafos para la
Transformación de Relaciones de Asociación.
I Taller sobre Desarrollo de Software Dirigido
por Modelos, MDA y Aplicaciones (DSDM'04)
  • Javier Muñoz, Marta Ruiz, Manoli Albert, Vicente
    Pelechano
  • Grupo OO-Method
  • Departamento de Sistemas Informáticos y
    Computación
  • Universidad Politécnica de Valencia

2
Agenda
  • Introducción
  • Caracterización de Relaciones de Asociación
  • Implementación de Relaciones de Asociación
  • Transformación de Relaciones de Asociación
  • Gramáticas de Grafos
  • Metamodelos
  • La Gramática
  • Implementación
  • Conclusiones

3
Introducción
  • MDA constituye un enfoque adecuado para realizar
    generación de código siguiendo una estrategia
    basada en modelos.
  • Las transformaciones entre modelos se convierten
    en un elemento clave

4
Introducción
  • MDA no propone una técnica estándar
  • Están trabajando en ello (RFP QVT)
  • Se están proponiendo y estudiando varias técnicas
  • Manipulación directa de los modelos
  • Enfoques relacionales
  • Gramáticas de grafos
  • XSLT

5
Introducción
Aplicación Transformaciones
PIM
Modelado Conceptual Orientado a Objetos
PSM
class Empleado String Nombre ...
class Empresa String Nombre ...
Clases de Diseño
6
Relaciones de asociación
  • Los métodos de Desarrollo de Software Dirigido
    por modelos necesitan primitivas conceptuales
    precisas
  • La descripción que realiza UML de las relaciones
    de asociación, agregación y composición es
    ambigua y no es aceptada por la mayoría de la
    comunidad OO
  • En este trabajo se parte del marco conceptual
    propuesto en Albert2003 presentado en CAiSE2003

7
Marco conceptual para relaciones de asociación
  • Características Temporales
  • Dinámica/Estática
  • Multiplicidad
  • Número min y max conectados
  • Propagación de Borrado
  • Restrictivo/Cascada/Enlace
  • Visibilidad
  • Visible/No visible
  • Proyección de Identificación
  • Proyectado/No Proyectado
  • Reflexividad
  • Reflexivo/No Reflexivo
  • Simetría
  • Simétrica/Antisimética

8
Implementación de relaciones de asociación
  • A partir del marco conceptual se realiza una
    propuesta de implementación aplicando patrones de
    diseño (Ruiz2004 en IDEAS04)
  • Ideas básicas
  • Una relación de asociación tiene semántica propia
  • Patrón Mediator
  • Los objetos que participan tienen estructura y
    comportamiento adicional
  • Patrón Decorator
  • Las relaciones comparten estructura y estrategia
    de ejecución para la gestión de enlaces
  • Patrón Template Method

9
Implementación de relaciones de asociación
10
Transformación de modelos
  • Un modelo puede ser gestionado con un grafo
  • Elementos nodos etiquetados
  • Relaciones enlaces etiquetados entre nodos
  • Ventajas de las gramáticas de grafos
  • Base de conocimiento existente
  • Sintaxis gráfica
  • Naturaleza declarativa
  • Herramientas para su aplicación

11
Gramáticas de Grafos
  • Una gramática de grafos se compone de una serie
    de reglas
  • Cada regla define
  • En la parte izquierda (LHS) un subgrafo Patrón
  • En la parte derecha (RHS) un subgrafo Sustitución

12
Gramáticas de Grafos
13
Transformación de Relaciones de Asociación
  • Estrategia a seguir
  • Definir el metamodelo origen (metamodelo de
    análisis)
  • Definir el metamodelo destino (metamodelo de
    diseño)
  • Especificar la gramática para la transformación
    entre metamodelos

14
Metamodelo de Análisis
  • Basado en el marco conceptual

15
Metamodelo análisis (ejemplo)
16
Metamodelo de Diseño
  • Elementos básicos de cualquier lenguaje orientado
    a objetos
  • Usando nomenclatura de C

17
Metamodelo de Diseño (ejemplo)
  • public class Persona
  • public String Nombre
  • private Integer Edad
  • private Persona Vecino
  • public String Telefonos
  •  
  • public void fijarEdad(Integer nueva_edad)
  • Edad nueva_edad

18
La Gramática para Transformación de Relaciones de
Asociación
  • R1. Creación de tipos de datos atómicos
  • R2. Transformación de clases de análisis
  • R3. Creación de la estructura de las clases base
  • R4. Creación de las operaciones de
    DecoradorColega
  • R5. Creación de las operaciones de
    MediadorAsociacion
  • R6. Transformación de los extremos de la
    asociación
  • R7. Transformación de la asociación
  • R8. Transformación de las propiedades clave con
    PI
  • R9. Transformación de las propiedades clave sin
    PI
  • R10. Transformación de las propiedades
  • R11. Eliminación de enlaces innecesarios

19
R1. Creación de tipos de datos atómicos
20
R3. Creación de la estructura de clases base
21
R6. Transformación de los extremos de la
asociación
22
R6. Transformación de los extremos de la
asociación
23
Implementación de la Gramática
  • Utilizando la herramienta Atom3
    (http//atom3.cs.mcgill.ca/)
  • Especificación de los metamodelos mediante ER
  • Obtención de editores gráficos para los MM
  • Especificación y aplicación de la gramática de
    grafos
  • Problemas encontrados
  • No soporta herencia en la definición de los MM
  • En la aplicación de la GG, el modelo debe validar
    siempre uno de los MM
  • No es muy estable y la usabilidad es baja

24
Implementación de la Gramática
25
Conclusiones
  • Se han aplicado gramáticas de grafos para definir
    transformaciones entre modelos en el contexto de
    MDA
  • Conclusiones
  • Es factible utilizar GG en MDA
  • Algunas reglas pueden resultar poco legibles
  • Las reglas con más elementos corresponden a la
    creación de la infraestructura del sistema
  • Trabajo futuro
  • Implementar la GG con otras herramientas
  • Implementar la transformación con otras técnicas
  • Especificar transformaciones más complejas
  • Estudiar la separación de la infraestructura y la
    parte específica

26
Gracias
Write a Comment
User Comments (0)
About PowerShow.com