MDA a Debate Javier Muñoz Javier Muñoz, Vicente Pelechano Grupo OO-Method Departamento de Sistemas...

23
MDA a Debate Javier Muñoz Javier Muñoz, Vicente Pelechano Grupo OO-Method Departamento de Sistemas Informáticos y Computación Universidad Politécnica de Valencia I Taller sobre Desarrollo de Software Dirigido por Modelos, MDA y Aplicaciones (DSDM'04)

Transcript of MDA a Debate Javier Muñoz Javier Muñoz, Vicente Pelechano Grupo OO-Method Departamento de Sistemas...

Page 1: MDA a Debate Javier Muñoz Javier Muñoz, Vicente Pelechano Grupo OO-Method Departamento de Sistemas Informáticos y Computación Universidad Politécnica de.

MDA a Debate

Javier MuñozJavier Muñoz, Vicente Pelechano

Grupo OO-MethodDepartamento de Sistemas Informáticos y Computación

Universidad Politécnica de Valencia

I Taller sobre Desarrollo de Software Dirigido por

Modelos, MDA y Aplicaciones (DSDM'04)

Page 2: MDA a Debate Javier Muñoz Javier Muñoz, Vicente Pelechano Grupo OO-Method Departamento de Sistemas Informáticos y Computación Universidad Politécnica de.

Agenda Introducción y Objetivos

Cuestiones Planteadas

Visiones de Varios Autores

Discusión

Conclusiones

Page 3: MDA a Debate Javier Muñoz Javier Muñoz, Vicente Pelechano Grupo OO-Method Departamento de Sistemas Informáticos y Computación Universidad Politécnica de.

Introducción

MDA es actualmente una corriente muy importante en el desarrollo de software

Promete proporcionar: Mayor reusabilidad Mayor interoperabilidad entre sistemas Menor tiempo de desarrollo

Numerosos eventos científicos relacionados: WiSME, EWMDA, MDAFA, SIVOES-MDA, Metamodelling for MDA, Generative Techniques in the context of Model Driven Architecture, Best Practices for Model Driven Software Development

Page 4: MDA a Debate Javier Muñoz Javier Muñoz, Vicente Pelechano Grupo OO-Method Departamento de Sistemas Informáticos y Computación Universidad Politécnica de.

Introducción

La guía de MDA no es precisa: muchas preguntas abiertas

Objetivo:1. Identificar algunas cuestiones importantes que no están

completamente claras

2. Estudiar la visión de varios autores

3. Proporcionar posibles respuestas a las cuestiones

Page 5: MDA a Debate Javier Muñoz Javier Muñoz, Vicente Pelechano Grupo OO-Method Departamento de Sistemas Informáticos y Computación Universidad Politécnica de.

Cuestiones Planteadas

1. Naturaleza de MDA ¿Qué es MDA? ¿Un método? ¿Una filosofía de desarrollo? ¿Cómo puede ayudar a desarrollar software?

2. Novedades de MDA ¿Qué es nuevo en MDA? Los modelos ya se utilizaban ¿Qué aporta MDA al estado del arte en la Ing. del Software?

3. Automatización de las transformaciones ¿Es necesario automatizar las transformaciones para ser MDA?

4. Concepto de plataforma ¿Qué se entiende por “plataforma” en MDA?

Page 6: MDA a Debate Javier Muñoz Javier Muñoz, Vicente Pelechano Grupo OO-Method Departamento de Sistemas Informáticos y Computación Universidad Politécnica de.

Algunos Autores

Autores y citas seleccionadas: Colin Atkinson and Thomas K¨uhne. Model-Driven Development: A Metamodeling

Foundation. IEEE Software, 20(5):46–51, September/October 2003.

Mellor, S.J. and Clark, A.N. and Futagami, T. Model-driven development – Guest editor’s introduction. IEEE Software, 20(5):14– 18, Sept.-Oct. 2003.

Lutz Bichler. A flexible code generator for MOF-based modeling languages. In 2nd OOPSLA Workshop on Generative Techniques in the context of Model Driven Architecture, 2003.

Bran Selic. The Pragmatics of Model-Driven Development. IEEE Software, 20(5):46–51, September/October 2003.

Aditya Agrawal and Tihamer Levendovszky and Jon Sprinkle and Feng Shi and Gabor Karsai. Generative Programming via Graph Transformations in the Model-Driven Architecture. In Workshop on Generative Techniques in the Context of Model Driven Architecture, 2002.

Page 7: MDA a Debate Javier Muñoz Javier Muñoz, Vicente Pelechano Grupo OO-Method Departamento de Sistemas Informáticos y Computación Universidad Politécnica de.

Algunos autores

Autores y citas seleccionadas (sigue): Krzysztof Czarnecki and Simon Helsen. Classification of model transformation

approaches. In 2nd OOPSLA Workshop on Generative Techniques in the Context of the Model Driven Architecture, 2003.

Daniel Varró and András Pataricza. UML Action Semantics for Model Transformation Systems. Periodica Politechnica, 2003.

T. Gardner and C. Grin and J. Koehler and R. Hauser. A review of OMG MOF 2.0 Query / Views / Transformations Submissions and Recommendations towards the final Standard,. In MetaModelling for MDA Workshop, 2003.

Torben Weis and Andreas Ulbrich and Kurt Geihs. Model Metamorphosis. IEEE Software, 20(5):46–51, September/October 2003.

Page 8: MDA a Debate Javier Muñoz Javier Muñoz, Vicente Pelechano Grupo OO-Method Departamento de Sistemas Informáticos y Computación Universidad Politécnica de.

Atkinson

“a MDD (Model Driven Development) supporting infrastructure must define:1. The concepts available for creating models and the rules governing their use2. The notation to use in depicting models3. How the model’s elements represent realworld elements, including software

artifacts4. Concepts to facilitate dynamic user extensions to model concepts, model

notation,and the models created from them5. Concepts to facilitate the interchange of model concepts and notation, and the

models created from them6. Concepts to facilitate user-defined mappings from models to other artifacts,

including code”

MDD, no MDA1. Metamodelos2. Sintaxis concreta3. Transformaciones

Page 9: MDA a Debate Javier Muñoz Javier Muñoz, Vicente Pelechano Grupo OO-Method Departamento de Sistemas Informáticos y Computación Universidad Politécnica de.

Mellor

“a set of OMG standards that enables the specification of models and their transformation into other models and complete systems.”

MDA = estándares para MDD

Pueden haber otras técnicas para MDD

Page 10: MDA a Debate Javier Muñoz Javier Muñoz, Vicente Pelechano Grupo OO-Method Departamento de Sistemas Informáticos y Computación Universidad Politécnica de.

Bichler

el objetivo de MDA es “to define a standardized approach to software development based on models. Each phase within a software development process generates additional informations which need to be added to the model by a suitable transformation. These transformations should be supported by tools in order to facilitate process execution and increase the accuracy of the transformations”.

Aproximación estándar para MDD

Page 11: MDA a Debate Javier Muñoz Javier Muñoz, Vicente Pelechano Grupo OO-Method Departamento de Sistemas Informáticos y Computación Universidad Politécnica de.

Selic

“MDD’s defining characteristic is that software development’s primary focus and products are models rather than computer programs”.

En el mismo trabajo destaca que “ if models end up merely as documentation, they are of limited value, because documentation all too easily diverges from reality. Consequently, a key premise behind MDD (Model Driven Development) is that programs are automatically generated from their corresponding models”.

MDD, no MDA Es imprescindible la generación automática

Page 12: MDA a Debate Javier Muñoz Javier Muñoz, Vicente Pelechano Grupo OO-Method Departamento de Sistemas Informáticos y Computación Universidad Politécnica de.

Agrawal

MDA propone que en el proceso de desarrollo de software “models are created for capturing not only requirements, but also designs and implementations. The models are not merely artifacts of documentation, but living documents that are transformed into implementations”.

Con MDA los modelos no son sólo documentación, capturan: Requisitos Diseño Implementación

Page 13: MDA a Debate Javier Muñoz Javier Muñoz, Vicente Pelechano Grupo OO-Method Departamento de Sistemas Informáticos y Computación Universidad Politécnica de.

Czarnecki

define MDA como “an initiative by the Object Management Group (OMG) to define an approach to software development based on modeling and automated mapping of models to implementations. The basic MDA pattern involves defining a platform independent model (PIM) and its automated mapping to one or more platform-specific models (PSMs)”.

La transformación debe ser automática

1 PIM -> 1..n PSM

Page 14: MDA a Debate Javier Muñoz Javier Muñoz, Vicente Pelechano Grupo OO-Method Departamento de Sistemas Informáticos y Computación Universidad Politécnica de.

Gardner

la principal diferencia de MDA con el uso anterior de los modelos conceptuales es que “the models are the key part of the definition of the software system. Rather than the models being handed over to programmers to implement, all or much of the structure and behavior of a system is captured in models, which are automatically transformed into code (and other platform artifacts). Knowledge of the platform is encoded into transformations, which are reused for many systems rather than redesigned for each new system”.

Además, destacan que “in MDA, automated transformations play a key role”.

Transformaciones necesitan ser automáticas

No es necesario generar toda la aplicación

Page 15: MDA a Debate Javier Muñoz Javier Muñoz, Vicente Pelechano Grupo OO-Method Departamento de Sistemas Informáticos y Computación Universidad Politécnica de.

Varró

“according to MDA, software development will be driven by a thorough modeling phase where first (i) a platform independent model (PIM) of the business logic is constructed from which (ii) platform specific models (PSMs) including details of the underlying software architecture are derived by model transformations followed by (iii) an automatic generation of the target application code”.

Los PSM describen la arquitectura software

La generación debe ser automática

Page 16: MDA a Debate Javier Muñoz Javier Muñoz, Vicente Pelechano Grupo OO-Method Departamento de Sistemas Informáticos y Computación Universidad Politécnica de.

Weis

“using MDA, developers create a platform-independent model. A platform-specific model is derived from the PIM to target a specific technology such as Corba, Enterprise JavaBeans, or .NET. Model transformation bridges the gap between the PIM and PSM. In the worst case, developers must manually perform this transformation, and they’ll likely think that the PIM decreases their productivity. So, an automatic transformation from a PIM to a PSM is needed”.

Es necesario automatizar las transformaciones

PSM = Tecnología específica

Page 17: MDA a Debate Javier Muñoz Javier Muñoz, Vicente Pelechano Grupo OO-Method Departamento de Sistemas Informáticos y Computación Universidad Politécnica de.

Posiciones de los AutoresNaturaleza de

MDAAportación MDA Transform. Plataforma

Atkinson MDD

Mellor Estándares para MDD

Bichler Estandarizar MDD No automático

Selic Transformación de modelos

Automáticas

Agrawal Transf. de modelos/ Modelos de Diseño/Impl.

Czarnecki Aproximación al desarrollo de SW

Automáticas

Gardner Transf. de modelos Automáticas

Varró Arquitectura del Sistema

Weis Automáticas Tecnologías de Impl.

Page 18: MDA a Debate Javier Muñoz Javier Muñoz, Vicente Pelechano Grupo OO-Method Departamento de Sistemas Informáticos y Computación Universidad Politécnica de.

Discusión

1. Naturaleza de MDA Según la guía (y Bichler y Czarnecki): MDA is an approach to

using models in software development Atkison y otros: la aproximación es MDD Mellor: MDA = estándares para MDD

Podemos diferenciar entre:

1. MDD = Enfoque al desarrollo de software

2. MDA = Estándar que proporciona lenguajes para aplicar MDD

MDA no es aplicable directamente Los métodos MDA utilizarán los lenguajes de OMG (UML, MOF,

CMW, QVT)

Page 19: MDA a Debate Javier Muñoz Javier Muñoz, Vicente Pelechano Grupo OO-Method Departamento de Sistemas Informáticos y Computación Universidad Politécnica de.

Discusión

2. Novedades de MDA

Aportaciones de MDD Modelos son el artefacto principal Las transformaciones entre modelos son clave

Aportaciones de MDA Aporta lenguajes estándar Estandariza MDD Introduce los modelos de diseño e implementación¿ ?

Page 20: MDA a Debate Javier Muñoz Javier Muñoz, Vicente Pelechano Grupo OO-Method Departamento de Sistemas Informáticos y Computación Universidad Politécnica de.

Discusión

3. Automatización transformaciones

Según la guía de MDA Transformaciones completamente manuales Transformaciones semiautomáticas o asistidas Transformaciones completamente automáticas

Para muchos autores la automatización es clave en MDD

En resumen:

1. No es imprescindible automatizar las transformaciones para seguir el estándar MDA

2. Sí es necesario automatizar las transformaciones para que MDD sea útil

Page 21: MDA a Debate Javier Muñoz Javier Muñoz, Vicente Pelechano Grupo OO-Method Departamento de Sistemas Informáticos y Computación Universidad Politécnica de.

Discusión

4. Concepto de Plataforma en MDA En la guía de MDA hay tres interpretaciones

1. Tecnología concreta (EJB, .NET etc.) sec 2.2.6

2. Tecnología abstracta (CORBA, OO, etc.) ejemplos

3. Generador de implementación pag 6-5

Cuestiones abiertas: ¿Qué tipo de modelo sería un modelo de la arquitectura? [PIM + Transf. Automáticas] es un PSM ¿Es suficiente la dictomía PIM/PSM?

Debate intenso, en última instancia plataforma = tecnología

Page 22: MDA a Debate Javier Muñoz Javier Muñoz, Vicente Pelechano Grupo OO-Method Departamento de Sistemas Informáticos y Computación Universidad Politécnica de.

Conclusiones

La Guía de MDA deja algunos temas básicos poco claros La comunidad que trabaja en Ing. SW. tiene su interpretación

Temas abiertos Pasos y elementos necesarios para construir métodos MDA ¿Qué se necesita para especificar transformaciones automáticas? Clasificación de los modelos

Page 23: MDA a Debate Javier Muñoz Javier Muñoz, Vicente Pelechano Grupo OO-Method Departamento de Sistemas Informáticos y Computación Universidad Politécnica de.

Gracias