SlideShare uma empresa Scribd logo
1 de 57
MDA
MODEL-DRIVEN ARCHITECTURE

       Jefferson Durán Escalante
       Ferney Eduardo Cáceres
         Guillermo Celis Prada


                                   1
Contenido
1. INTRODUCCIÓN
2. MDD
3. MDA
    3.1 Historia
    3.2 Definición según la OMG
    3.3 Importancia del MDA para el desarrollador
    3.4 Generalidades
    3.5 Modelos MDA
    3.6 Tipos de modelos
                                                    2
3.7 Desarrollo tradicional vs. Desarrollo con
    MDA
  3.7.1 Problemas del desarrollo tradicional
  3.7.2 Beneficios del MDA
  3.7.3 El nuevo proceso de desarrollo
3.8 Implementación
3.9 Mapas de transformación
   3.9.1 Definiciones de Transformación


                                                3
3.10 Herramientas MDA
    3.10.1 Características
    3.10.2 IBM Rational Delivery Platform UML
           to Java
4. CONCLUSIONES
5. BIBLIOGRAFIA



                                                4
1. Introducción



                  5
1. Introducción
Unos de los principios básicos de la ingeniería del software
es la abstracción, para separar lo esencial de lo no
esencial.

En términos del desarrollo de software, lo esencial es la
funcionalidad, y lo no esencial es la plataforma tecnológica.

Estas abstracciones nos las proveen los modelos.

El modelado y la transformación de modelos hasta el nivel
de abstracción requerido, constituye el núcleo del Desarrollo
Dirigido por los Modelos (Model Driven Development
(MDD)).
                                                                6
2. Model Driven
  Development


                  7
2. Model Driven Development

 MDD es un estilo de desarrollo de software
  donde el artefacto primario son los modelos, a
  partir de los cuales se obtiene el código y otros
  artefactos.

 Los modelos se usan para pensar en el
  dominio del problema y en el dominio de la
  solución.

                                                      8
2. Model Driven Development

 Además de crear los
  modelos, podemos crear
  reglas para automatizar la
  transformación de los
  mismos en otros, este estilo
  de MDD es conocido como
  Model Driven Architecture
  (MDA).



                                 9
2. Model Driven Development

MDD usa los modelos para capturar los
 requerimientos, y automatizar parcial o
 totalmente la implementación.

Compilamos los modelos para producir
 ejecutables, o facilitar el desarrollo manual.

                                             10
2. Model Driven Development
 Con los modelos podemos centrarnos en el
  diseño lógico de la aplicación, y liberarnos de los
  detalles de la implementación.

 El esfuerzo invertido en el modelado tiene una
  continuidad durante el desarrollo, esto modelos
  no son meramente parte de la documentación
  sino que dirigen de forma automatizada el
  desarrollo del código.
                                                   11
2. Model Driven Development




                              12
3. Model Driven
   Architecture


                  13
3.1 Historia
El framework MDA fue establecido en el año 2001 por el OMG como arquitectura para el
desarrollo de aplicaciones.

MDA representa un nuevo paradigma de desarrollo de software en el que los modelos
guían todo el proceso de desarrollo.

Se considera como un nuevo paso en el camino hacia lenguajes de programación más
expresivos y hacia una mayor automatización.




                                                                                        14
3.2 Definición de MDA
Según el OMG, MDA 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 o Servicios Web.




                                                                                   15
3.3 Importancia del MDA para el
desarrollador




                                  16
3.3 Importancia del MDA para el
desarrollador
 MDA promueve el uso eficiente de modelos de
  sistemas en el proceso de desarrollo de
  software.

 Representa para los desarrolladores, una nueva
  manera de organizar y administrar arquitecturas
  empresariales, basada en la utilización de
  herramientas de automatización de etapas en el
  ciclo de desarrollo y servicios.

                                               17
3.3 Importancia del MDA para el
desarrollador
 Permite definir los modelos y facilitar
  trasformaciones paulatinas entre diferentes
  modelos.

 Algunos ejemplos de modelos son: el modelo
 de análisis, el de diseño y el de
 comportamiento, entre otros. Es decir que, a
 partir de uno de ellos, podemos generar otro de
 menor abstracción.

                                               18
3.3 Importancia del MDA para el
 desarrollador

 Un ejemplo común de generación de modelos,
  es la generación de código a partir del modelo de
  diseño, mediante el uso de una herramienta de
  modelado UML. En este caso usamos una
  herramienta para transformar el modelo de
  diseño en el “modelo” de código.



                                                 19
3.4 Generalidades
¿Qué motivó la creación de MDA?

 La diversidad de plataformas y tecnologías: falta
  interoperabilidad entre las diversas estrategias
  tecnológicas.

 La acelerada evolución tecnológica: esto ocasiona
  que las plataformas muy pronto sean obsoletas.
  Surgen, entonces, interrogantes como: ¿Cuál
  tecnología va a salir mañana?¿Cuánto va a durar
  la última versión de una plataforma?¿Cómo
  protejo mi inversión?

                                                  20
Otras Generalidades

 La aproximación MDA utiliza los estándares abiertos de
  modelado establecidos por la OMG’s: Unified Modeling
  Language(UML), Meta-Object Facility(MOF), and Common
  Warehouse Metamodel(CWM).


 Los PIM pueden ser creados a partir de dichos estándares,
  para luego ser transformados sobre plataformas como
  CORBA, J2EE, .NET, etc.


                                                          21
3.5 Modelos en MDA
Los modelos juegan un rol trascendental en MDA. Como un framework para construir
sistemas, MDA abstrae el sistema a construir en distintas capas de abstracción (layers).




                                                                                           22
3.6 Tipos de Modelos

 CIM (Computation Independent Model).
  Modelado del Negocio y requerimientos.

 PIM (Platform Independent Model).
  Análisis y diseño independiente de la
    plataforma tecnológica.
  Un PIM se transforma en uno o más PSM.


                                            23
3.6 Tipos de Modelos
 PSM (Platform Dependent Model).
  Diseño dependiente de la plataforma tecnológica.
  Cada PSM se transforma en código.




                                                      24
3.6 Tipos de Modelos

Code model
El modelo de código representa el código
 desplegable (deployable), normalmente en
 un lenguaje de programación de alto
 nivel, como Java, C#, C++,VB, JSP, etc.



                                       25
3.7 Desarrollo tradicional vs.
     Desarrollo con MDA




                                 26
3.7.1 Problemas del desarrollo
          tradicional.


                      •Productividad.

                      •Portabilidad.

                      •Interoperatibilidad.

                      •Mantenimiento y
                      documentación.



                                              27
3.7.2 Beneficios del MDA
                    • Una vez implementada la transformación de PIM a PSM, puede
                      usarse en muchos desarrollos.
 Productividad      • Aisla problemas específicos de cada plataforma y encaja mucho
                      mejor con las necesidades de los usuarios finales



                    • Todo lo definido en un modelo independiente de la plataforma
  Portabilidad        es totalmente portable.



                    • Los PSMs generados a partir de un mismo PIM se pueden
Interoperabilidad     comunicar a través de “puentes” (relaciones) , por lo cual
                      pueden pertenecer a diferentes tecnologías.


                    • El PIM desempeña el papel de la documentación de alto
Mantenimiento y       nivel que se necesita para cualquier sistema software
Documentación       • Los cambios realizados en el sistema se reflejarán en todos los
                      niveles, mediante la regeneración de los PSMs y del código.


                                                                                  28
Más Beneficios …
 Dinamiza el proceso de integración entre
  sistemas “legacy” y sistemas futuros.
 Soporte completo para el ciclo de vida de la
  aplicación.
 Escalabilidad y robustez.
 Está predestinado a ser un estándar.
 Interoperatividad entre diferentes tecnologías.
 Permite disminuir costos y mejorar la calidad de
  los modelos y procesos.

                                                 29
3.7.3 El nuevo proceso de
      desarrollo
Análisis:
Desarrollo del PIM con base en las necesidades del negocio y la
funcionalidad requerida.


Diseño:
Transformación del PIM a uno o más PSMs. Implica conocimiento sobre
arquitecturas, plataformas y transformaciones disponibles.



Codificación:
Generación del código. Los programadores únicamente tendrán      que
añadir la funcionalidad que no puede reflejarse en los modelos


                                                                       30
Proceso de desarrollo con MDA




                                31
3.8 Implementación




                     32
3.9 Mapas de
Transformación


                 33
3.9 Mapas de Transformación
Mediante mapas, MDA especifica las reglas de transformación de un PIM a un PSM para una
plataforma en concreto.


Mapeo de Metamodelo




                                                                                          34
3.9 Mapas de Transformación
  Mapeo por Marcas




               Marcado de un modelo
                                      35
3.9 Mapas de Transformación
  Mapeo por Patrones




       Uso de información adicional y patrones en la transformación
                                                                      36
3.9.1 Definiciones
      de Transformación

 Transformaciones de tipos (Model Type Mapping)
 Un mapping de tipos especifica un mapping para
 transformar cualquier modelo construido con tipos del
 PIM a otro modelo expresado con tipos del PSM.

  Para cada atributo del PIM con valor “public” en la visibilidad,
  transformarlo en el PSM a un atributo con visibilidad “private” y
  añadir dos métodos de consulta y actualización (get y set) a la
  clase a la que pertenezca.


                                                                  37
Transformaciones de instancias

Identifica elementos específicos del PIM que deben ser
transformados de una manera particular, dada una
plataforma determinada. Esto se puede conseguir
mediante marcas. El desarrollador marca el PIM para
dirigir o controlar la transformación a una plataforma
determinada.

  Para la plataforma EJB (Enterprise JavaBeans), podríamos
  tener la marca Entity aplicable a clases de un PIM; si está
  activa, esta marca indicará que la clase será transformada a un
  EJB Entity en el PSM.

                                                                    38
3.10 Herramientas MDA
 Herramientas de transformación de PIM a PSM
  Permiten transformar un PIM de alto nivel en uno o varios PSMs. Pocas
  herramientas ofrecen esta funcionalidad.



 Herramientas de transformación de PSM a código
  Poseen una definición de transformación integrada que toman un tipo
  predefinido de modelo de entrada (PSM) y producen otro tipo predefinido
  como salida (modelo de código).



 Herramientas de transformación de PIM a código
   Soporta las dos transformaciones anteriores. En ocasiones el usuario
  simplemente verá una transformación directa de PIM a código, quedando
  implícito el PSM.

                                                                            39
 Herramientas de definición de transformaciones
  Permiten crear y modificar transformaciones sobre modelos,
  imprescindibles si necesitamos usar transformaciones distintas a las
  disponibles en las herramientas.



Otras herramientas

 Editor de código
 Ficheros de código (analizador gramatical y generador de ficheros de
  texto)
 Repositorio de modelos
 Editor de modelos
 Verificador de modelos
 Editor de definiciones de transformaciones
 Repositorio de definiciones de transformaciones


                                                                         40
3.10.1 Características de
       las Herramientas MDA

  Modelos de datos E/R partiendo del modelo CIM:

  Claves primarias y claves externas, multiplicidad de las relaciones.


  Generación y modelado de PIM desde modelos E/R:

  Soporte para Modelos de clases y diversos lenguajes de modelado.


  Generación de PSM:

  Elección de la plataforma para la que generar el PSM (EJB/JDO,
  .NET, Corba…) y elección de la tecnología de cliente (Struts, JSP,
  XMLC, Swing, SWT, …).
                                                                         41
3.10.1 Características de las
       Herramientas MDA

 Adaptación del PSM:

 Poder introducir código suplementario al generado que permita
 completar la aplicación.


 Generación de la aplicación:

 Generación del esquema de base de datos y del código.
 Producción de ficheros de configuración y producción de
 documentación.


                                                                 42
3.10.1 Características de las Herramientas MDA

  Algunas herramientas MDA:


     ATL ATLAS Transformation Language
     OptimalJ is a MDA tool for J2EE.
     ArcStyler is a MDA tool for J2EE and .NET.
      UMT UML Model Transformation
     ArgoUML
     Codagen
     Rational Architect
     MDA Transf
     Enterprise Architect
     GReAT
     AndroMDA
     IBM Rational Software Delivery Platform

                                                   43
3.10.1 Características de las Herramientas MDA
 Símbolos:
 • La “√” significa que cumple la característica al 100%.
 • El “*” significa que cumple la característica pero indirectamente   .




                                                                           44
3.10.2 IBM Rational Software
       Architect




                               45
3.10.2 IBM Rational
   Software Architect
 Rational Software Architect da soporte a UML Versión 2
  (UML 2), incluyendo clases y mejoras estructuradas para
  los diagramas de máquinas de secuencia, actividad y
  estado.


 Éstas y otras revisiones del estándar permiten que los
  usuarios expresen su arquitectura con más claridad y
  control que nunca.


                                                            46
3.10.2 IBM Rational
 Software Architect

 El Object Management Group (OMG) ha
 llevado esta expresividad al próximo nivel
 en la guía de procesos con su iniciativa
 Model Driven Architecture (MDA).




                                          47
3.10.2 IBM Rational
  Software Architect

 Rational Software Architect da soporte a MDA
  permitiendo que el usuario pueda definir múltiples niveles
  de modelos junto con las transformaciones definidas por
  los usuarios entre esos modelos y el código, dando como
  resultado una separación más clara de los asuntos
  relacionados con el ciclo de vida.




                                                           48
3.10.2 IBM Rational
 Software Architect
Nota: Video sobre el uso de la herramienta




           http://www.youtube.com/watch?v=N9cPJCiJh7I&feature=player_embedded

                                                                                49
3.10.2 IBM Rational
Software Architect




                      50
4. Conclusiones



                  51
4.Conclusiones
 Actualmente los modelos son costosos de
  construir y, una vez construido el modelo, éste
  debe ser transformado manualmente en código.
  Esta tarea es tediosa, propensa a errores y
  repetitiva en muchos casos, por ello MDA
  contribuye a disminuir las cargas en estas tareas.

 MDA no ofrece solución a todas las problemáticas
  inherentes al desarrollo de software.


                                                  52
4.Conclusiones
MDA también es el resultado de reconocer que
 la interoperatibilidad es algo bueno y que el
 modelado también lo es.
 Mediante mapas, MDA especifica las reglas de transformación de un PIM a un
 PSM para una plataforma en concreto. Estos mapas incluyen la transformación
MDA Bien utilizado y teniendo en cuenta los
 principios de diseño subyacentes, nos puede
 ahorrar la escritura y generación de muchas
 líneas de código.


                                                                               53
5. Bibliografía



                  54
5. Bibliografía
 Corredera de Colsa, Luis Enrique: “Arquitectura dirigida por
  modelos para J2ME”. Universidad Pontificia de Salamanca en
  Madrid.

 Quintero, Juan Bernardo. Anaya, Raquel: “Mda y el papel de los
  modelos en el proceso de desarrollo de software” Revista EIA
  (Escuela de Ingeniería de Antioquia) Número 8, p.131-146;
  Diciembre 2007.

 López L., Edna D. González G., Moisés : “Proceso de Desarrollo de
  Software Mediante Herramientas MDA” Centro Nacional de
  Investigación y Desarrollo Tecnológico (CENIDET) , México.



                                                                  55
5. Bibliografía
 Ramírez Terry, José Luis. Bravo García, Emilio : “Model Driven Architecture”

 Rodríguez Vicente, Jesús: “Ingeniería de Modelos con MDA”. Facultad de
  Informática de la Universidad de Murcia.


  Recursos electrónicos

 Anacleto, Valerio Adrián. (2006, Octubre 5). “MDA: Reusabilidad Orientada
  al Negocio”. Recuperado el 7 de Noviembre de 2009, de:
  http://www.epidataconsulting.com/tikiwiki/tiki-read_article.php?articleId=55#


 www.omg.org. (2009, Junio 18). “OMG Model Driven Architecture”.
  Recuperado el 7 de Noviembre de 2009, de:
  http://www.omg.org/mda/


                                                                                  56
57

Mais conteúdo relacionado

Mais procurados

Proyecto final
Proyecto final Proyecto final
Proyecto final EIYSC
 
Metodologías de desarrollo de software
Metodologías de desarrollo de softwareMetodologías de desarrollo de software
Metodologías de desarrollo de softwareJesenia Escobar
 
Proyecto de Implementación de una Red
Proyecto de Implementación de una RedProyecto de Implementación de una Red
Proyecto de Implementación de una RedJordy Castro
 
Buses Arquitectura de computadoras
Buses Arquitectura de computadoras Buses Arquitectura de computadoras
Buses Arquitectura de computadoras Eduardo Suarez
 
Ejemplo Proyecto utilizando Uml
Ejemplo Proyecto utilizando UmlEjemplo Proyecto utilizando Uml
Ejemplo Proyecto utilizando UmlAndrés Cruz
 
Servidores, tipos de servidores
Servidores, tipos de servidoresServidores, tipos de servidores
Servidores, tipos de servidoresEnya Loboguerrero
 
Aplicaciones prácticas de las arquitecturas orientadas al servicio
Aplicaciones prácticas de las arquitecturas orientadas al servicioAplicaciones prácticas de las arquitecturas orientadas al servicio
Aplicaciones prácticas de las arquitecturas orientadas al servicioGrial - University of Salamanca
 
Analisis y determinacion de requerimientos
Analisis y determinacion de requerimientosAnalisis y determinacion de requerimientos
Analisis y determinacion de requerimientosYesith Valencia
 
Desarrollo de aplicaciones web distribuidas.
Desarrollo de aplicaciones web distribuidas.Desarrollo de aplicaciones web distribuidas.
Desarrollo de aplicaciones web distribuidas.Jomicast
 
Especificacion de requerimientos
Especificacion de requerimientosEspecificacion de requerimientos
Especificacion de requerimientosRamiro Aguirre Inga
 
Unidad 1.3 Analisis De Requerimientos
Unidad 1.3 Analisis De RequerimientosUnidad 1.3 Analisis De Requerimientos
Unidad 1.3 Analisis De RequerimientosSergio Sanchez
 
Cuadro comparativo
Cuadro comparativoCuadro comparativo
Cuadro comparativoIngenierosD
 
Ingenieria web
Ingenieria webIngenieria web
Ingenieria webMirsha01
 

Mais procurados (20)

Proceso de Software Personal
Proceso de Software PersonalProceso de Software Personal
Proceso de Software Personal
 
UNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR
UNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADORUNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR
UNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR
 
Proyecto final
Proyecto final Proyecto final
Proyecto final
 
Cifrado por Sustitución y por Transposición
Cifrado por Sustitución y por TransposiciónCifrado por Sustitución y por Transposición
Cifrado por Sustitución y por Transposición
 
Metodologías de desarrollo de software
Metodologías de desarrollo de softwareMetodologías de desarrollo de software
Metodologías de desarrollo de software
 
Cliente servidor
Cliente servidorCliente servidor
Cliente servidor
 
Proyecto de Implementación de una Red
Proyecto de Implementación de una RedProyecto de Implementación de una Red
Proyecto de Implementación de una Red
 
Formato ieee830(srs lleno)
Formato ieee830(srs lleno)Formato ieee830(srs lleno)
Formato ieee830(srs lleno)
 
Buses Arquitectura de computadoras
Buses Arquitectura de computadoras Buses Arquitectura de computadoras
Buses Arquitectura de computadoras
 
Estructura Básica de PHP
Estructura Básica de PHPEstructura Básica de PHP
Estructura Básica de PHP
 
Ejemplo Proyecto utilizando Uml
Ejemplo Proyecto utilizando UmlEjemplo Proyecto utilizando Uml
Ejemplo Proyecto utilizando Uml
 
Servidores, tipos de servidores
Servidores, tipos de servidoresServidores, tipos de servidores
Servidores, tipos de servidores
 
Mapa mental del CMMI
Mapa mental del CMMIMapa mental del CMMI
Mapa mental del CMMI
 
Aplicaciones prácticas de las arquitecturas orientadas al servicio
Aplicaciones prácticas de las arquitecturas orientadas al servicioAplicaciones prácticas de las arquitecturas orientadas al servicio
Aplicaciones prácticas de las arquitecturas orientadas al servicio
 
Analisis y determinacion de requerimientos
Analisis y determinacion de requerimientosAnalisis y determinacion de requerimientos
Analisis y determinacion de requerimientos
 
Desarrollo de aplicaciones web distribuidas.
Desarrollo de aplicaciones web distribuidas.Desarrollo de aplicaciones web distribuidas.
Desarrollo de aplicaciones web distribuidas.
 
Especificacion de requerimientos
Especificacion de requerimientosEspecificacion de requerimientos
Especificacion de requerimientos
 
Unidad 1.3 Analisis De Requerimientos
Unidad 1.3 Analisis De RequerimientosUnidad 1.3 Analisis De Requerimientos
Unidad 1.3 Analisis De Requerimientos
 
Cuadro comparativo
Cuadro comparativoCuadro comparativo
Cuadro comparativo
 
Ingenieria web
Ingenieria webIngenieria web
Ingenieria web
 

Semelhante a Mda

MDA - Javier Zúñiga
MDA - Javier ZúñigaMDA - Javier Zúñiga
MDA - Javier Zúñiga2008PA2Info3
 
Desarrollo de software basado en componentes
Desarrollo de software basado en componentesDesarrollo de software basado en componentes
Desarrollo de software basado en componentesUlises Cruz
 
MDD - Andrés Goyes
MDD - Andrés GoyesMDD - Andrés Goyes
MDD - Andrés Goyes2008PA2Info3
 
Frameworks MVC para desarrollo de UITES
Frameworks MVC para desarrollo de UITESFrameworks MVC para desarrollo de UITES
Frameworks MVC para desarrollo de UITESJesus Caceres Tello
 
Metodología de Desarrollo de Software en base a MDE con DSL
Metodología de Desarrollo de Software en base a MDE con DSLMetodología de Desarrollo de Software en base a MDE con DSL
Metodología de Desarrollo de Software en base a MDE con DSLSantiago Jacome
 
No más "programación copy&paste". Generación automática de código con MOSKitt
No más "programación copy&paste". Generación automática de código con MOSKittNo más "programación copy&paste". Generación automática de código con MOSKitt
No más "programación copy&paste". Generación automática de código con MOSKittJavier Muñoz
 
Ha2 nm50 perez g jose-diseño manejado por modelos
Ha2 nm50 perez g jose-diseño manejado por modelosHa2 nm50 perez g jose-diseño manejado por modelos
Ha2 nm50 perez g jose-diseño manejado por modelosLuis Pérez
 
Orientación a tendencias de Arquitectura DDD
Orientación a tendencias de Arquitectura DDDOrientación a tendencias de Arquitectura DDD
Orientación a tendencias de Arquitectura DDDCesar Gomez
 
MDD - Desarrollo de software dirigido por modelos que funciona (de verdad!)
MDD - Desarrollo de software dirigido por modelos que funciona (de verdad!)MDD - Desarrollo de software dirigido por modelos que funciona (de verdad!)
MDD - Desarrollo de software dirigido por modelos que funciona (de verdad!)Jordi Cabot
 

Semelhante a Mda (20)

Mda mde
Mda   mdeMda   mde
Mda mde
 
Mda 2
Mda 2Mda 2
Mda 2
 
Mda mde
Mda mdeMda mde
Mda mde
 
MDA - Javier Zúñiga
MDA - Javier ZúñigaMDA - Javier Zúñiga
MDA - Javier Zúñiga
 
3 1 mde mda
3 1 mde mda3 1 mde mda
3 1 mde mda
 
Desarrollo de software basado en componentes
Desarrollo de software basado en componentesDesarrollo de software basado en componentes
Desarrollo de software basado en componentes
 
Desarrollo de software.pptx
Desarrollo de software.pptxDesarrollo de software.pptx
Desarrollo de software.pptx
 
MDD - Andrés Goyes
MDD - Andrés GoyesMDD - Andrés Goyes
MDD - Andrés Goyes
 
Frameworks MVC para desarrollo de UITES
Frameworks MVC para desarrollo de UITESFrameworks MVC para desarrollo de UITES
Frameworks MVC para desarrollo de UITES
 
Metodología de Desarrollo de Software en base a MDE con DSL
Metodología de Desarrollo de Software en base a MDE con DSLMetodología de Desarrollo de Software en base a MDE con DSL
Metodología de Desarrollo de Software en base a MDE con DSL
 
Mos kitt
Mos kittMos kitt
Mos kitt
 
Herramientas case
Herramientas caseHerramientas case
Herramientas case
 
Diapositiva
DiapositivaDiapositiva
Diapositiva
 
No más "programación copy&paste". Generación automática de código con MOSKitt
No más "programación copy&paste". Generación automática de código con MOSKittNo más "programación copy&paste". Generación automática de código con MOSKitt
No más "programación copy&paste". Generación automática de código con MOSKitt
 
Documento completo mdna
Documento completo mdnaDocumento completo mdna
Documento completo mdna
 
Ha2 nm50 perez g jose-diseño manejado por modelos
Ha2 nm50 perez g jose-diseño manejado por modelosHa2 nm50 perez g jose-diseño manejado por modelos
Ha2 nm50 perez g jose-diseño manejado por modelos
 
MVC vs MVP
MVC vs MVPMVC vs MVP
MVC vs MVP
 
Orientación a tendencias de Arquitectura DDD
Orientación a tendencias de Arquitectura DDDOrientación a tendencias de Arquitectura DDD
Orientación a tendencias de Arquitectura DDD
 
MDD - Desarrollo de software dirigido por modelos que funciona (de verdad!)
MDD - Desarrollo de software dirigido por modelos que funciona (de verdad!)MDD - Desarrollo de software dirigido por modelos que funciona (de verdad!)
MDD - Desarrollo de software dirigido por modelos que funciona (de verdad!)
 
Mos Kitt Quo Vadis
Mos Kitt Quo VadisMos Kitt Quo Vadis
Mos Kitt Quo Vadis
 

Último

Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosJhonJairoRodriguezCe
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxFederico Castellari
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIhmpuellon
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativanicho110
 

Último (11)

Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 

Mda

  • 1. MDA MODEL-DRIVEN ARCHITECTURE Jefferson Durán Escalante Ferney Eduardo Cáceres Guillermo Celis Prada 1
  • 2. Contenido 1. INTRODUCCIÓN 2. MDD 3. MDA 3.1 Historia 3.2 Definición según la OMG 3.3 Importancia del MDA para el desarrollador 3.4 Generalidades 3.5 Modelos MDA 3.6 Tipos de modelos 2
  • 3. 3.7 Desarrollo tradicional vs. Desarrollo con MDA 3.7.1 Problemas del desarrollo tradicional 3.7.2 Beneficios del MDA 3.7.3 El nuevo proceso de desarrollo 3.8 Implementación 3.9 Mapas de transformación 3.9.1 Definiciones de Transformación 3
  • 4. 3.10 Herramientas MDA 3.10.1 Características 3.10.2 IBM Rational Delivery Platform UML to Java 4. CONCLUSIONES 5. BIBLIOGRAFIA 4
  • 6. 1. Introducción Unos de los principios básicos de la ingeniería del software es la abstracción, para separar lo esencial de lo no esencial. En términos del desarrollo de software, lo esencial es la funcionalidad, y lo no esencial es la plataforma tecnológica. Estas abstracciones nos las proveen los modelos. El modelado y la transformación de modelos hasta el nivel de abstracción requerido, constituye el núcleo del Desarrollo Dirigido por los Modelos (Model Driven Development (MDD)). 6
  • 7. 2. Model Driven Development 7
  • 8. 2. Model Driven Development  MDD es un estilo de desarrollo de software donde el artefacto primario son los modelos, a partir de los cuales se obtiene el código y otros artefactos.  Los modelos se usan para pensar en el dominio del problema y en el dominio de la solución. 8
  • 9. 2. Model Driven Development  Además de crear los modelos, podemos crear reglas para automatizar la transformación de los mismos en otros, este estilo de MDD es conocido como Model Driven Architecture (MDA). 9
  • 10. 2. Model Driven Development MDD usa los modelos para capturar los requerimientos, y automatizar parcial o totalmente la implementación. Compilamos los modelos para producir ejecutables, o facilitar el desarrollo manual. 10
  • 11. 2. Model Driven Development  Con los modelos podemos centrarnos en el diseño lógico de la aplicación, y liberarnos de los detalles de la implementación.  El esfuerzo invertido en el modelado tiene una continuidad durante el desarrollo, esto modelos no son meramente parte de la documentación sino que dirigen de forma automatizada el desarrollo del código. 11
  • 12. 2. Model Driven Development 12
  • 13. 3. Model Driven Architecture 13
  • 14. 3.1 Historia El framework MDA fue establecido en el año 2001 por el OMG como arquitectura para el desarrollo de aplicaciones. MDA representa un nuevo paradigma de desarrollo de software en el que los modelos guían todo el proceso de desarrollo. Se considera como un nuevo paso en el camino hacia lenguajes de programación más expresivos y hacia una mayor automatización. 14
  • 15. 3.2 Definición de MDA Según el OMG, MDA 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 o Servicios Web. 15
  • 16. 3.3 Importancia del MDA para el desarrollador 16
  • 17. 3.3 Importancia del MDA para el desarrollador  MDA promueve el uso eficiente de modelos de sistemas en el proceso de desarrollo de software.  Representa para los desarrolladores, una nueva manera de organizar y administrar arquitecturas empresariales, basada en la utilización de herramientas de automatización de etapas en el ciclo de desarrollo y servicios. 17
  • 18. 3.3 Importancia del MDA para el desarrollador  Permite definir los modelos y facilitar trasformaciones paulatinas entre diferentes modelos.  Algunos ejemplos de modelos son: el modelo de análisis, el de diseño y el de comportamiento, entre otros. Es decir que, a partir de uno de ellos, podemos generar otro de menor abstracción. 18
  • 19. 3.3 Importancia del MDA para el desarrollador  Un ejemplo común de generación de modelos, es la generación de código a partir del modelo de diseño, mediante el uso de una herramienta de modelado UML. En este caso usamos una herramienta para transformar el modelo de diseño en el “modelo” de código. 19
  • 20. 3.4 Generalidades ¿Qué motivó la creación de MDA?  La diversidad de plataformas y tecnologías: falta interoperabilidad entre las diversas estrategias tecnológicas.  La acelerada evolución tecnológica: esto ocasiona que las plataformas muy pronto sean obsoletas. Surgen, entonces, interrogantes como: ¿Cuál tecnología va a salir mañana?¿Cuánto va a durar la última versión de una plataforma?¿Cómo protejo mi inversión? 20
  • 21. Otras Generalidades  La aproximación MDA utiliza los estándares abiertos de modelado establecidos por la OMG’s: Unified Modeling Language(UML), Meta-Object Facility(MOF), and Common Warehouse Metamodel(CWM).  Los PIM pueden ser creados a partir de dichos estándares, para luego ser transformados sobre plataformas como CORBA, J2EE, .NET, etc. 21
  • 22. 3.5 Modelos en MDA Los modelos juegan un rol trascendental en MDA. Como un framework para construir sistemas, MDA abstrae el sistema a construir en distintas capas de abstracción (layers). 22
  • 23. 3.6 Tipos de Modelos  CIM (Computation Independent Model). Modelado del Negocio y requerimientos.  PIM (Platform Independent Model). Análisis y diseño independiente de la plataforma tecnológica. Un PIM se transforma en uno o más PSM. 23
  • 24. 3.6 Tipos de Modelos  PSM (Platform Dependent Model). Diseño dependiente de la plataforma tecnológica. Cada PSM se transforma en código. 24
  • 25. 3.6 Tipos de Modelos Code model El modelo de código representa el código desplegable (deployable), normalmente en un lenguaje de programación de alto nivel, como Java, C#, C++,VB, JSP, etc. 25
  • 26. 3.7 Desarrollo tradicional vs. Desarrollo con MDA 26
  • 27. 3.7.1 Problemas del desarrollo tradicional. •Productividad. •Portabilidad. •Interoperatibilidad. •Mantenimiento y documentación. 27
  • 28. 3.7.2 Beneficios del MDA • Una vez implementada la transformación de PIM a PSM, puede usarse en muchos desarrollos. Productividad • Aisla problemas específicos de cada plataforma y encaja mucho mejor con las necesidades de los usuarios finales • Todo lo definido en un modelo independiente de la plataforma Portabilidad es totalmente portable. • Los PSMs generados a partir de un mismo PIM se pueden Interoperabilidad comunicar a través de “puentes” (relaciones) , por lo cual pueden pertenecer a diferentes tecnologías. • El PIM desempeña el papel de la documentación de alto Mantenimiento y nivel que se necesita para cualquier sistema software Documentación • Los cambios realizados en el sistema se reflejarán en todos los niveles, mediante la regeneración de los PSMs y del código. 28
  • 29. Más Beneficios …  Dinamiza el proceso de integración entre sistemas “legacy” y sistemas futuros.  Soporte completo para el ciclo de vida de la aplicación.  Escalabilidad y robustez.  Está predestinado a ser un estándar.  Interoperatividad entre diferentes tecnologías.  Permite disminuir costos y mejorar la calidad de los modelos y procesos. 29
  • 30. 3.7.3 El nuevo proceso de desarrollo Análisis: Desarrollo del PIM con base en las necesidades del negocio y la funcionalidad requerida. Diseño: Transformación del PIM a uno o más PSMs. Implica conocimiento sobre arquitecturas, plataformas y transformaciones disponibles. Codificación: Generación del código. Los programadores únicamente tendrán que añadir la funcionalidad que no puede reflejarse en los modelos 30
  • 31. Proceso de desarrollo con MDA 31
  • 34. 3.9 Mapas de Transformación Mediante mapas, MDA especifica las reglas de transformación de un PIM a un PSM para una plataforma en concreto. Mapeo de Metamodelo 34
  • 35. 3.9 Mapas de Transformación Mapeo por Marcas Marcado de un modelo 35
  • 36. 3.9 Mapas de Transformación Mapeo por Patrones Uso de información adicional y patrones en la transformación 36
  • 37. 3.9.1 Definiciones de Transformación Transformaciones de tipos (Model Type Mapping) Un mapping de tipos especifica un mapping para transformar cualquier modelo construido con tipos del PIM a otro modelo expresado con tipos del PSM. Para cada atributo del PIM con valor “public” en la visibilidad, transformarlo en el PSM a un atributo con visibilidad “private” y añadir dos métodos de consulta y actualización (get y set) a la clase a la que pertenezca. 37
  • 38. Transformaciones de instancias Identifica elementos específicos del PIM que deben ser transformados de una manera particular, dada una plataforma determinada. Esto se puede conseguir mediante marcas. El desarrollador marca el PIM para dirigir o controlar la transformación a una plataforma determinada. Para la plataforma EJB (Enterprise JavaBeans), podríamos tener la marca Entity aplicable a clases de un PIM; si está activa, esta marca indicará que la clase será transformada a un EJB Entity en el PSM. 38
  • 39. 3.10 Herramientas MDA  Herramientas de transformación de PIM a PSM Permiten transformar un PIM de alto nivel en uno o varios PSMs. Pocas herramientas ofrecen esta funcionalidad.  Herramientas de transformación de PSM a código Poseen una definición de transformación integrada que toman un tipo predefinido de modelo de entrada (PSM) y producen otro tipo predefinido como salida (modelo de código).  Herramientas de transformación de PIM a código Soporta las dos transformaciones anteriores. En ocasiones el usuario simplemente verá una transformación directa de PIM a código, quedando implícito el PSM. 39
  • 40.  Herramientas de definición de transformaciones Permiten crear y modificar transformaciones sobre modelos, imprescindibles si necesitamos usar transformaciones distintas a las disponibles en las herramientas. Otras herramientas  Editor de código  Ficheros de código (analizador gramatical y generador de ficheros de texto)  Repositorio de modelos  Editor de modelos  Verificador de modelos  Editor de definiciones de transformaciones  Repositorio de definiciones de transformaciones 40
  • 41. 3.10.1 Características de las Herramientas MDA Modelos de datos E/R partiendo del modelo CIM: Claves primarias y claves externas, multiplicidad de las relaciones. Generación y modelado de PIM desde modelos E/R: Soporte para Modelos de clases y diversos lenguajes de modelado. Generación de PSM: Elección de la plataforma para la que generar el PSM (EJB/JDO, .NET, Corba…) y elección de la tecnología de cliente (Struts, JSP, XMLC, Swing, SWT, …). 41
  • 42. 3.10.1 Características de las Herramientas MDA Adaptación del PSM: Poder introducir código suplementario al generado que permita completar la aplicación. Generación de la aplicación: Generación del esquema de base de datos y del código. Producción de ficheros de configuración y producción de documentación. 42
  • 43. 3.10.1 Características de las Herramientas MDA Algunas herramientas MDA:  ATL ATLAS Transformation Language  OptimalJ is a MDA tool for J2EE.  ArcStyler is a MDA tool for J2EE and .NET.  UMT UML Model Transformation  ArgoUML  Codagen  Rational Architect  MDA Transf  Enterprise Architect  GReAT  AndroMDA  IBM Rational Software Delivery Platform 43
  • 44. 3.10.1 Características de las Herramientas MDA Símbolos: • La “√” significa que cumple la característica al 100%. • El “*” significa que cumple la característica pero indirectamente . 44
  • 45. 3.10.2 IBM Rational Software Architect 45
  • 46. 3.10.2 IBM Rational Software Architect  Rational Software Architect da soporte a UML Versión 2 (UML 2), incluyendo clases y mejoras estructuradas para los diagramas de máquinas de secuencia, actividad y estado.  Éstas y otras revisiones del estándar permiten que los usuarios expresen su arquitectura con más claridad y control que nunca. 46
  • 47. 3.10.2 IBM Rational Software Architect  El Object Management Group (OMG) ha llevado esta expresividad al próximo nivel en la guía de procesos con su iniciativa Model Driven Architecture (MDA). 47
  • 48. 3.10.2 IBM Rational Software Architect  Rational Software Architect da soporte a MDA permitiendo que el usuario pueda definir múltiples niveles de modelos junto con las transformaciones definidas por los usuarios entre esos modelos y el código, dando como resultado una separación más clara de los asuntos relacionados con el ciclo de vida. 48
  • 49. 3.10.2 IBM Rational Software Architect Nota: Video sobre el uso de la herramienta http://www.youtube.com/watch?v=N9cPJCiJh7I&feature=player_embedded 49
  • 52. 4.Conclusiones  Actualmente los modelos son costosos de construir y, una vez construido el modelo, éste debe ser transformado manualmente en código. Esta tarea es tediosa, propensa a errores y repetitiva en muchos casos, por ello MDA contribuye a disminuir las cargas en estas tareas.  MDA no ofrece solución a todas las problemáticas inherentes al desarrollo de software. 52
  • 53. 4.Conclusiones MDA también es el resultado de reconocer que la interoperatibilidad es algo bueno y que el modelado también lo es. Mediante mapas, MDA especifica las reglas de transformación de un PIM a un PSM para una plataforma en concreto. Estos mapas incluyen la transformación MDA Bien utilizado y teniendo en cuenta los principios de diseño subyacentes, nos puede ahorrar la escritura y generación de muchas líneas de código. 53
  • 55. 5. Bibliografía  Corredera de Colsa, Luis Enrique: “Arquitectura dirigida por modelos para J2ME”. Universidad Pontificia de Salamanca en Madrid.  Quintero, Juan Bernardo. Anaya, Raquel: “Mda y el papel de los modelos en el proceso de desarrollo de software” Revista EIA (Escuela de Ingeniería de Antioquia) Número 8, p.131-146; Diciembre 2007.  López L., Edna D. González G., Moisés : “Proceso de Desarrollo de Software Mediante Herramientas MDA” Centro Nacional de Investigación y Desarrollo Tecnológico (CENIDET) , México. 55
  • 56. 5. Bibliografía  Ramírez Terry, José Luis. Bravo García, Emilio : “Model Driven Architecture”  Rodríguez Vicente, Jesús: “Ingeniería de Modelos con MDA”. Facultad de Informática de la Universidad de Murcia. Recursos electrónicos  Anacleto, Valerio Adrián. (2006, Octubre 5). “MDA: Reusabilidad Orientada al Negocio”. Recuperado el 7 de Noviembre de 2009, de: http://www.epidataconsulting.com/tikiwiki/tiki-read_article.php?articleId=55#  www.omg.org. (2009, Junio 18). “OMG Model Driven Architecture”. Recuperado el 7 de Noviembre de 2009, de: http://www.omg.org/mda/ 56
  • 57. 57