Upload
berenguer-fuente
View
15
Download
0
Embed Size (px)
Citation preview
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)
Agenda Introducción y Objetivos
Cuestiones Planteadas
Visiones de Varios Autores
Discusión
Conclusiones
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
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
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?
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.
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.
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
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
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
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
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
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
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
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
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
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.
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)
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¿ ?
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
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
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
Gracias