SlideShare une entreprise Scribd logo
1  sur  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

Contenu connexe

Tendances

Herramientas CASE
Herramientas CASEHerramientas CASE
Herramientas CASEI R
 
Metodologia incremental
Metodologia incrementalMetodologia incremental
Metodologia incrementalAnel Sosa
 
Enfoque estructurado y Enfoque OO - Ingenieria de software
Enfoque estructurado y Enfoque OO  - Ingenieria de softwareEnfoque estructurado y Enfoque OO  - Ingenieria de software
Enfoque estructurado y Enfoque OO - Ingenieria de softwareKola Real
 
Tareas de ingenieria de requerimientos
Tareas de ingenieria de requerimientosTareas de ingenieria de requerimientos
Tareas de ingenieria de requerimientosnenyta08
 
ADMINISTRACION DE LA CONFIGURACION
ADMINISTRACION DE LA CONFIGURACIONADMINISTRACION DE LA CONFIGURACION
ADMINISTRACION DE LA CONFIGURACIONHERNAN JIMENEZ
 
Modelos de proceso de desarrollo de software
Modelos de proceso de desarrollo de softwareModelos de proceso de desarrollo de software
Modelos de proceso de desarrollo de softwareUriel Ramos
 
Proceso de Software Personal - PSP
Proceso de Software Personal - PSPProceso de Software Personal - PSP
Proceso de Software Personal - PSPChristian Mora
 
Tecnicas de estimacion de software
Tecnicas de estimacion de softwareTecnicas de estimacion de software
Tecnicas de estimacion de softwareAdes27
 
Modelo de desarrollo de software
Modelo de desarrollo de softwareModelo de desarrollo de software
Modelo de desarrollo de softwareSaul mendoza valdez
 
Conceptos basicos de ensamblador mapa
Conceptos basicos de ensamblador mapaConceptos basicos de ensamblador mapa
Conceptos basicos de ensamblador mapaItzelRodriguezFuentes
 

Tendances (20)

Mitos de-software.
Mitos de-software.Mitos de-software.
Mitos de-software.
 
Herramientas CASE
Herramientas CASEHerramientas CASE
Herramientas CASE
 
Metodologia incremental
Metodologia incrementalMetodologia incremental
Metodologia incremental
 
Fundamentos de ingenieria del software (2)
Fundamentos de ingenieria del software (2)Fundamentos de ingenieria del software (2)
Fundamentos de ingenieria del software (2)
 
Enfoque estructurado y Enfoque OO - Ingenieria de software
Enfoque estructurado y Enfoque OO  - Ingenieria de softwareEnfoque estructurado y Enfoque OO  - Ingenieria de software
Enfoque estructurado y Enfoque OO - Ingenieria de software
 
Tareas de ingenieria de requerimientos
Tareas de ingenieria de requerimientosTareas de ingenieria de requerimientos
Tareas de ingenieria de requerimientos
 
ADMINISTRACION DE LA CONFIGURACION
ADMINISTRACION DE LA CONFIGURACIONADMINISTRACION DE LA CONFIGURACION
ADMINISTRACION DE LA CONFIGURACION
 
Modelos de proceso de desarrollo de software
Modelos de proceso de desarrollo de softwareModelos de proceso de desarrollo de software
Modelos de proceso de desarrollo de software
 
Modelos de desarrollo de software
Modelos de desarrollo de softwareModelos de desarrollo de software
Modelos de desarrollo de software
 
Rup (iteraciones)
Rup (iteraciones)Rup (iteraciones)
Rup (iteraciones)
 
Conceptos basicos calidad software
Conceptos basicos calidad softwareConceptos basicos calidad software
Conceptos basicos calidad software
 
Estimación de Proyectos de Software
Estimación de Proyectos de SoftwareEstimación de Proyectos de Software
Estimación de Proyectos de Software
 
Estimacion de costos del Software
Estimacion de costos del SoftwareEstimacion de costos del Software
Estimacion de costos del Software
 
Proceso de Software Personal - PSP
Proceso de Software Personal - PSPProceso de Software Personal - PSP
Proceso de Software Personal - PSP
 
Modelo evolutivo
Modelo evolutivoModelo evolutivo
Modelo evolutivo
 
Ingenieria de requisitos
Ingenieria de requisitosIngenieria de requisitos
Ingenieria de requisitos
 
Tecnicas de estimacion de software
Tecnicas de estimacion de softwareTecnicas de estimacion de software
Tecnicas de estimacion de software
 
Tipos de Software
Tipos de SoftwareTipos de Software
Tipos de Software
 
Modelo de desarrollo de software
Modelo de desarrollo de softwareModelo de desarrollo de software
Modelo de desarrollo de software
 
Conceptos basicos de ensamblador mapa
Conceptos basicos de ensamblador mapaConceptos basicos de ensamblador mapa
Conceptos basicos de ensamblador mapa
 

Similaire à 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
 

Similaire à 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
 

Dernier

Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 

Dernier (16)

Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 

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