3 1 mde mda

823 views

Published on

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
823
On SlideShare
0
From Embeds
0
Number of Embeds
105
Actions
Shares
0
Downloads
19
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

3 1 mde mda

  1. 1. MDE (MODEL DRIVEN ENGINEERING) Motivación: Complejidad de sistemas Muchos sistemas de software modernos están alcanzando niveles de complejidad. Los sistemas pueden incluir de millones de líneas de código, y cualquier parte de esta puede ser la causante de que colapse todo el sistema. Por otra parte, sólo podemos ver un aumento en la complejidad de los sistemas de software, debido a la creciente demanda de una mayor y más sofisticada funcionalidad ¿Cómo vamos a hacer frente a este aumento de la complejidad?
  2. 2. MDE (MODEL DRIVEN ENGINEERING) Motivación: Complejidad de sistemas Complejidad escencial : tenemos un gran problema - Inherente al problema - No puede ser eludido o eliminado por tecnología o método - El problema depende del tipo de aplicación Complejidad accidental: Hemos creado un gran problema - Debido al uso inapropiado de tecnologías o métodos - Sucede cuando alguien no encontró la forma más fácil de implementar las especificaciones - Podría ser eliminado con un buen diseño o un buen rediseño. El desarrollo de sistemas modernos sufre de un exceso de complejidad accidental ¿Cómo podemos hacer frente a este aumento de complejidad?
  3. 3. MDE (MODEL DRIVEN ENGINEERING) Motivación: Complejidad de sistemas Podríamos identificar como está estructurado?
  4. 4. MDE (MODEL DRIVEN ENGINEERING) Motivación: Modelado en otras disciplinas El modelado ha sido ampliamente usado en Ingeniería  Con propósitos de especificación - Estructura y comportamiento de la arquitectura - Interacción con los stakeholders  Para razonamiento acerca del sistema - Detectar errores de diseño - Deducir los resultados de la pruebas  Como una guía para la implementación
  5. 5. MDE (MODEL DRIVEN ENGINEERING) Motivación: Complejidad de sistemas Claramente los modelos ayudan a simplificar el desarrollo de software elevando el nivel de abstracción sobre el cual se crea el software
  6. 6. MDE (MODEL DRIVEN ENGINEERING) Motivación: Qué pasa con los modelos en Ingeniería del Software? Usado (en el mejor de los casos) para propósitos de documentación Hay una gran diferencia entre los modelos y la aplicación subyacente Los modelos no se actualizan con los cambios de diseño de los programadores No hay manera de asegurar que los programadores sigan las decisiones de diseño capturados en los modelos No hay herramientas o lenguajes para manejar los modelos Estamos haciendo realmente Ingeniería del Software?
  7. 7. MDE (MODEL DRIVEN ENGINEERING) Motivación: Model Driven Engineering (y disciplinas relacionadas) Impulsar el papel de los modelos y las actividades de modelado en las diferentes etapas del ciclo de desarrollo
  8. 8. MDE (MODEL DRIVEN ENGINEERING) Model Driven Engineering MDE (Model Driven Engineering) es un paradigma de desarrollo de software que promueve el uso de modelos con diferentes niveles de abstracción. La iniciativa MDE más conocida es MDA, que es una marca registrada de la OMG. La tendencia dominante actual en el desarrollo software es que los modelos representen el problema software con un alto nivel de abstracción, tanto los elementos del sistema como las relaciones dentro de él. A partir de ellos se lleva a cabo el desarrollo del software. Los modelos por tanto se convierten en artefactos esenciales en MDE. Los modelos sirven como entrada y salida en todas las fases del desarrollo del sistema hasta que se obtiene el sistema software .
  9. 9. MDE (MODEL DRIVEN ENGINEERING) Modelado Un modelo es la imagen simplificada de un sistema MDE es reciente pero la idea de modelado es antigua
  10. 10. MDE (MODEL DRIVEN ENGINEERING) Modelado  Un modelo es una simplificación de un sistema construido para cumplir un objetivo.  Un modelo es la descripción de un sistema (o de una parte) en un lenguaje bien definido.  Un modelo se presenta con frecuencia como una combinación de dibujos y de texto.
  11. 11. MDE (MODEL DRIVEN ENGINEERING) Modelado  Debe ser capaz de responder a las preguntas del sistema actual  Esto nos permite utilizar algo que es más sencillo, más seguro y más barato que la realidad.  Nos permite tratar con el mundo de una manera simplificada, evitando la complejidad de la realidad  Un modelo representa la realidad para el propósito dado, el modelo es una abstracción de la realidad.
  12. 12. MDE (MODEL DRIVEN ENGINEERING) Modelado: como los modelos son entendidos, interpretados, definidos?
  13. 13. MDE (MODEL DRIVEN ENGINEERING) Modelado: Metamodelos actúan como filtros de la realidad
  14. 14. MDE (MODEL DRIVEN ENGINEERING) Objetivos de MDE La principal motivación del paradigma MDE es mejorar la productividad. Actualmente en las empresas de desarrollo cada vez existe más diversidad en las plataformas y tecnología utilizadas, y la creación de aplicaciones compatibles con las nuevas tecnologías se convierte en una labor muy compleja, quedándose las aplicaciones obsoletas con respecto a las nuevas tendencias tecnológicas del mercado. MDE tiene el objetivo de aumentar la rentabilidad en una empresa desde el punto de vista del esfuerzo en el desarrollo de software. • Mediante la mejora de la productividad a corto plazo de los desarrolladores. Aumentando las funcionalidades ofrecidas por los artefactos software. • Mediante la mejora de la productividad a largo plazo de los desarrolladores. Reduciendo el porcentaje de los artefactos software que se quedan obsoletos.
  15. 15. MDE (MODEL DRIVEN ENGINEERING) Objetivos de MDE El objetivo principal de la mayoría de las herramientas MDE es garantizar la primera ventaja. Sin embargo, después del proceso inicial de construcción no ofrecen soporte en la gestión del ciclo de vida del artefacto de software y los cambios tienen que hacerse en el código fuente generado o en partes del modelo, lo que dará lugar a problemas de todo tipo. Debido a la rápida evolución de las tecnologías en el desarrollo software de las empresas, la segunda ventaja se hace cada vez más importante. Según pasa el tiempo los productos software se van quedando obsoletos y el coste de adaptación es muy alto.
  16. 16. MDE (MODEL DRIVEN ENGINEERING) Proceso MDE La idea que promueve MDE es usar modelos a diferentes niveles de abstracción para desarrollar los sistemas. De esta manera, la principal actividad de los desarrolladores MDE es diseñar modelos, como los que usaban para desarrollar código, pero ahora guiados por una metodología. La ventaja de tener un proceso MDE es que éste debe definir claramente cada paso a dar, forzando a los desarrolladores a seguir la metodología definida. Debe especificar la secuencia de modelos a desarrollar, y cómo derivar un modelo a partir de otro del nivel de abstracción inmediatamente superior. Proporcionando a los desarrolladores una metodología como ésta, podrán saber en cualquier momento a lo largo del proceso de desarrollo, qué se debe hacer en cada paso de desarrollo y cómo conseguirlo.
  17. 17. MDE (MODEL DRIVEN ENGINEERING) Proceso MDE El sistema en desarrollo es descrito en primer lugar por un modelo a un alto nivel de abstracción, ignorando cualquier tipo de dependencia de la plataforma. Luego se deben realizar una serie de refinamientos interactivos (transformaciones) con el objetivo de hacer el sistema más específico de la plataforma en cada paso.
  18. 18. MDE (MODEL DRIVEN ENGINEERING) Proceso MDE Una de las ventajas más importantes de usar el proceso MDE es su adaptabilidad a los cambios. Cuando un cambio ocurre, bien en el mayor nivel de abstracción o bien en el menor nivel de abstracción, su impacto está localizado y las partes que no están afectadas por el cambio se reutilizan. Desde el punto de vista de la medición del software, el proceso MDE se puede ver como un conjunto de transformaciones de modelos, a partir de un nivel de abstracción alto hasta un nivel más específico. En el nivel más abstracto estarían los requisitos, y en el nivel más específico estaría resultado de la medición.
  19. 19. MDE (MODEL DRIVEN ENGINEERING) Estándares y Herramientas MDE Hoy en día los estándares más significativos de MDE son MDA de OMG, Software Factories de Microsoft y Model Integrated Computing (MIC)
  20. 20. MDE (MODEL DRIVEN ENGINEERING) Estándares y Herramientas MDE Microsoft e IBM desarrollan sus propias tecnologías: Microsoft desarrolla las MS/DSL Tools utilizan el estándar Software Factories. IBM, contribuye en MDA con • Eclipse Modeling Framework (EMF) • Graphical Editing Framework (GEF) • Graphical Modeling Framework (GMF) Para MIC desarrolla el ISIS (Institute of Software Integrated Systems) de la Universidad de Vanderbilt  Generic Modeling Environment (GME)  Model Management tool suite (UDM)  Model Transformation tool suite (GReAT)  Design Space Exploration tool suite (DESERT)
  21. 21. MDE (MODEL DRIVEN ENGINEERING) Domain Specific Modeling El modelado específico de dominio (DSM) es una metodología de Ingeniería del Software para desarrollar y diseñar sistemas. Esta metodología implica el uso sistemático de un lenguaje específico de dominio (DSL) para representar el dominio. El nivel de abstracción dentro de los lenguajes DSM es muy alto, más que los lenguajes de propósito general como puede ser UML, lo que significa un menor esfuerzo ya que se centra en el dominio específico de un determinado sistema. La metodología DSM incluye la generación automática de código ejecutable a partir de los modelos DSM, esta es más fiable que la manual ya que reduce el número de errores en los programas finales, mejorando así la calidad.
  22. 22. MDE (MODEL DRIVEN ENGINEERING) Domain Specific Modeling DSL es un lenguaje específico de dominio que está diseñado para utilizarse en dominios o problemas específicos, a diferencia de los lenguajes de propósito general (General Purpose Language -GPL-). Tienen un mayor nivel de abstracción que los lenguajes base y expresan los conceptos de dominio específico en un nivel de representación más alto. Debe considerarse como un lenguaje de tamaño pequeño, muy centrado en resolver algunos problemas claramente identificables a los que debe enfrentarse un analista, arquitecto, responsable de pruebas o administrador del sistema. El empleo de DSL´s es una técnica adecuada para desarrollar software en menor tiempo y con una mejor calidad. Algunos ejemplos de DSL´s conocidos son SQL (Structured Query Language) o HTML (HyperText Markup Language).
  23. 23. MDE (MODEL DRIVEN ENGINEERING) Domain Specific Modeling
  24. 24. MDE (MODEL DRIVEN ENGINEERING) MDA: Una forma de hacer MDE Algunas veces MDA es establecida como MDE con estándares
  25. 25. MDE (MODEL DRIVEN ENGINEERING) MDA: Una forma de hacer MDE MDA(Model Driven Architecture) es un Framework que proporciona una solución para los cambios de negocio y de tecnología, permitiendo construir aplicaciones independientes de la plataforma e implementarlas en plataformas como CORBA, J2EE, Servicios Web, etc.
  26. 26. MDE (MODEL DRIVEN ENGINEERING) MDA: Una forma de hacer MDE MDA, se basa en el lenguaje de modelado unificado UML, el lenguaje de modelado tan popular de la OMG. De hecho, la arquitectura de la OMG surge en un nivel de abstracción superior en un esfuerzo de encontrar un mecanismo universal de integrar aplicaciones. La base del estándar MDA de la OMG es UML y Meta Object Facility (MOF) que hacen posible modelar no sólo UML sino también otros metamodelos, incluyendo CORBA y CWM (Common Warehouse Meta Model). Al mismo tiempo, la OMG ha estandarizado el intercambio de metadatos mediante la propuesta XML Metadata Interchange (XMI).
  27. 27. MDE (MODEL DRIVEN ENGINEERING) MDA: Una forma de hacer MDE UML, MOF y XMI son tres tecnologías clave para el desarrollo de software bajo el enfoque de MDA. Usadas de forma conjunta proporcionan grandes ventajas que hacen que los modelos sean más claros y fácilmente mantenibles. Estas tecnologías definen una forma estándar de almacenar e intercambiar modelos, bien sean de negocio o de diseño. Esto permite a los constructores de herramientas CASE establecer un lenguaje común que proporcione grandes beneficios para el desarrollador. Una vez que las herramientas implementen estos estándares se pueden automatizar y estandarizar numerosos procesos del desarrollo que simplificarán muchas tareas, que antes eran manuales o se realizaban de forma automática por medio de alguna característica propia de la herramienta, que en muchos casos hacía imposible el intercambio de información con otras herramientas del mercado.
  28. 28. MDE (MODEL DRIVEN ENGINEERING) MDA: Por qué utilizarla?  - Muchas plataformas y tecnologías Objetos Distribuidos, Componentes, Web services, ... No hay mucha interoperabilidad Y con tendencia aumentar  - Evolución muy rápida Tecnologías evolucionadas que son obsoletas muy pronto Cual tecnología va a salir mañana? Y cuanto va a durar la ultima? Y como protejo mi inversión?  Por consiguiente, nunca tenemos un estándar en SO. DB, Servidores, Plataformas, Middleware, etc.  Es complejo consensualizar un modelo y una forma de transformarlo con el propósito de ser menos dependiente de la tecnologías
  29. 29. MDE (MODEL DRIVEN ENGINEERING) MDA: espacios del problema y de la solución Modelar el problema Espacio del problema Analizar el problema Diseñar solución Espacio de solución Construir solución
  30. 30. MDE (MODEL DRIVEN ENGINEERING) MDA: tipos de modelos CIM. Representa los modelos independientes de la computación (Computationally - Independent Model) que caracterizan el dominio del problema. Este tipo de modelos surge ante todo en procesos de modelado de negocio e idealmente se conciben antes del levantamiento de requisitos para una aplicación particular.
  31. 31. MDE (MODEL DRIVEN ENGINEERING) MDA: tipos de modelos • PIM. Representa los modelos que describen una solución de software que no contiene detalles de la plataforma concreta en que la solución va a ser implementada, de ahí su nombre de modelos independientes de la plataforma (Plataform-Independent Models). Estos modelos surgen como resultado del análisis y diseño.
  32. 32. MDE (MODEL DRIVEN ENGINEERING) MDA: tipos de modelos • PSM. Son los modelos derivados de la categoría anterior, que contienen los detalles de la plataforma o tecnología con que se implementará la solución, de ahí su nombre de modelos específicos de la plataforma (Plataform-Specific Models).
  33. 33. MDE (MODEL DRIVEN ENGINEERING) MDA: proceso tradicional y proceso con MDA
  34. 34. MDE (MODEL DRIVEN ENGINEERING) MDA: proceso y roles
  35. 35. MDE (MODEL DRIVEN ENGINEERING) MDA: Estrategias Para alcanzar beneficios fundamentales, como productividad, interoperabilidad, portabilidad y facilidad de mantenimiento, se plantea: Representación directa. Esta estrategia se basa en el principio de abstracción, que hace énfasis en el dominio del problema más que en la tecnología. Automatización. La propuesta de MDA fortaleció y dinamizó el papel que las herramientas CASE tienen en el desarrollo de soluciones. Estándares abiertos. El uso de estándares se ha constituido en el medio que ha posibilitado el reto de integrar herramientas robustas de apoyo al desarrollo. Por ejemplo, los estándares como UML deben expresarse en XML.
  36. 36. MDE (MODEL DRIVEN ENGINEERING) MDA: Arquitectura de 4 niveles MOF (Meta_Object Facility) El OMG plantea una arquitectura de cuatro niveles para la definición de sus estándares, en donde cada capa se define como instancia de la anterior. Esta arquitectura de modelos denominada MOF tiene el objetivo de permitir la incorporación de nuevos lenguajes de modelado (metamodelos) para propósitos específicos . Un metamodelo es un modelo que define el lenguaje para expresar un modelo. MOF es un lenguaje común y abstracto para la especificación de meta-modelos, que sirve como un modelo común para UML y CMW
  37. 37. MDE (MODEL DRIVEN ENGINEERING) MDA: Arquitectura de 4 niveles MOF • Capa M3 (Metametamodelo). Es una especificación que define un lenguaje abstracto para especificar, construir y manejar elementos comunes a cualquier metamodelo. • Capa M2 (Metamodelos). Especifica las entidades de un lenguaje de modelado. Los lenguajes que se han definido como instancias de MOF son: UML, CWM y MOF en sí mismo. • Capa M1 (Modelos). Se refiere a los modelos de usuarios que suelen desarrollarse en el momento de construir un sistema de información. • Capa M0 (Instancias). Describe instancias de las entidades propuestas en un modelo de un sistema de información. Es en este nivel en donde pueden usarse los diagramas de objetos como instancias de las clases para verificar que se cumplen las restricciones definidas en el nivel de los modelos (M1).
  38. 38. MDE (MODEL DRIVEN ENGINEERING) MDA: Arquitectura de 4 niveles MOF MOF UML Meta-Model UML Instancias con datos
  39. 39. MDE (MODEL DRIVEN ENGINEERING) MDA: XMI (XML Metadata Interchange) XMI es un lenguaje para permitir a desarrolladores de software el intercambio de modelos UML. Es una especificación del OMG para facilitar el intercambio de modelos entre herramientas de modelado. El XMI provee un mecanismo de intercambio de modelos entre herramientas CASE utilizando XML.
  40. 40. MDE (MODEL DRIVEN ENGINEERING) MDA: Transformación de modelos La transformación de modelos es el proceso central de MDA. Para lograr un estándar para la transformación, OMG favorece el estándar QVT (Queries/Views/ Transformations). ATL es un lenguaje de transformación de modelos.
  41. 41. MDE (MODEL DRIVEN ENGINEERING) MDA: Transformación de modelos
  42. 42. MDE (MODEL DRIVEN ENGINEERING) MDA: Transformación de modelos
  43. 43. MDE (MODEL DRIVEN ENGINEERING) MDA: CWM Common Warehouse Metamodel (CWM). Es un meta-modelo que especifica interfaces que pueden ser usadas para habilitar el intercambio de metadatos de almacenes de datos e inteligencia de negocio, entre distintas herramientas, plataformas y metadatos en ambientes heterogéneos y distribuidos de almacenes de datos. CMW se basa en tres estándares: MOF, UML y XMI. Los modelos CMW permiten a los usuarios rastrear el linaje de los datos, mediante objetos que describen de donde vienen los datos y cuándo y cómo se crearon los datos.

×