Vous êtes sur la page 1sur 8

Contenido

I. Arquitectura Dirigida por Modelos (MDA) ........................................................................1

1. Introducción. .............................................................................................................................1

2. Modelos MDA. ..........................................................................................................................1

3. Importancia de los modelos en MDA. .................................................................................3

4. Tipos de Transformaciones ....................................................................................................4

5. Transformaciones de Tipos de Modelos .............................................................................4

6. Transformaciones de Instancias de Modelos ....................................................................5

7. Capas del Modelado MDA .....................................................................................................5

8. Ventajas del uso del MDA ......................................................................................................6

9. Herramientas MDA ..................................................................................................................6


I. Arquitectura Dirigida por Modelos (MDA)

1. Introducción.

En el año 2001, el OMG (grupo de administración de objetos) estableció la metodología


MDA como arquitectura para el desarrollo de aplicaciones. Mientras que la anterior
especificación propuesto por OMG, formado por las especificaciones OMA (Object
Management Architecture) y CORBA, estaba destinado al desarrollo de aplicaciones
distribuidas, MDA representa un nuevo paradigma de desarrollo de software en el que
los modelos guían todo al proceso de desarrollo (Salas, 2015).

La MDA aparece como respuesta a dos problemas fundamentales dentro de la industria


informática. La diversidad de plataformas y tecnologías: en la actualidad se escucha
hablar con frecuencia de los objetos distribuidos, los componentes, los aspectos o la
web servicies, entre otras tantas estrategias tecnológicas en las que no hay mucha
interoperabilidad y que tienen tendencia a aumentar.

Este enfoque de desarrollo de software llamado MDA (Model Driven Architecture)


Arquitectura dirigida por modelos, es un nuevo paradigma que surge a partir de las
tecnologías que están siendo estandarizadas por la OMG (Object Management Group).
MDA concibe la construcción de modelos de software, a distintos niveles de abstracción,
como artefactos principales en el desarrollo de software. También la arquitectura juega
un papel importante en la transformación de modelos para automatizar la derivación de
un modelo a otro y, total o parcialmente, la derivación a código ejecutable.

Por lo tanto, la MDA permite transformar o convertir los modelos independientes de la


plataforma para producir modelos específicos de la plataforma mediante asignaciones.
Dentro del proceso de ciclo de vida de desarrollo del sistema, la MDA se aplica modelos
independientes de la plataforma y los modelos específicos de la plataforma para
sostener y aprovechar las inversiones en los requisitos, las tecnologías y el ciclo de vida
que sirve de puente entre ellos, ya que independientemente cambian.

2. Modelos 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.
Tradicionalmente, el OOAD (Object Oriented Analysis and Design) contiene, entre otros,
una vista de análisis, una vista de diseño detallado y código, representando la vista de
negocios de un sistema, la vista de arquitectura y la vista de implementación. MDA

1
agrega una capa de abstracción más, que representa el contexto de negocio del sistema.
(Anacleto, 2006)

 En este proceso se plantea el uso de tres modelos de desarrollo:

o CIM: Representa los modelos independientes de la computación


(Computationally-Independent Model) Modelos de casos de uso que capturan
los requisitos del sistema. Según (Armas, 2012), en pocas palabras se refiere a:
representar exactamente lo que se espera del sistema, sin contemplar
toda la información relacionada con la tecnología con el objetivo de
mantenerse independiente de cómo será implementado el sistema. Este
modelo salva el abismo existente entre los expertos del negocio y los
responsables de las tecnologías de información.

o PIM: Representa los modelos que describen una solución de software que no
contiene detalles de la plataforma concreta en que la solución va a ser
implementada, de ahí su nombre de modelos independientes de la plataforma
(Platform-Independent Models). Estos modelos surgen como resultado del
análisis y diseño.

o PSM: Son los modelos derivados de la categoría anterior, que contienen los
detalles de la plataforma o tecnología con que se implementará la solución, de
ahí su nombre de modelos específicos de la plataforma (Platform-
SpecificModels).

2
Según (Salas, 2015) “La especificación MDA está basada en un conjunto de otros
estándares provistos por la OMG como UML (Lenguaje Unificado de Modelado), MOF
(Meta Object Facility) y XMI (Metadata Interchange) son tres tecnologías clave para el
desarrollo de software bajo el enfoque de MDA. Usadas de forma conjunta proporcionan
grandes ventajas que hacen que los modelos sean más claros y fácilmente mantenibles.
Estas tecnologías definen una forma estándar de almacenar e intercambiar modelos, bien
sean de negocio o de diseño. Esto permite a los constructores de herramientas CASE
establecer un lenguaje común que proporcione grandes beneficios para el desarrollador.

3. Importancia de los modelos en MDA.

El concepto del modelado, como una de las estrategias básicas del desarrollador para
entender un problema y proponer una solución, es ampliamente aceptado en la ingeniería
de software, mucho antes del surgimiento de MDA. Sin embargo, la aplicación del
modelado en la práctica diaria presenta problemas como los enunciados a continuación:
 Los modelos se usan solo como documentación. Los modelos no funcionan como
un artefacto activo que contribuya en el proceso de desarrollo.
 Existen vacíos entre el modelo y la implementación de los sistemas. Los cambios
en el modelo no se reflejan en el código y los cambios en el código no se reflejan
en los modelos, sólo se genera el código de los modelos la primera vez y nunca se
actualiza.
 No hay una adecuada mezcla de modelos. Vistas desconectadas de un sistema
(desconexión horizontal) y grupos de modelos desconectados (desconexión
vertical).
 No hay transformación de modelos. Pocos lenguajes de transformación populares
y pocas herramientas que soporten estas transformaciones.

Lo anterior les atribuye a los modelos la fama de una costosa y pesada carga que
complica la labor de los participantes en el proceso de desarrollo. La MDA rescata la
importancia de los modelos como estrategia clave para entender y especificar una
solución de software y progresivamente obtener la solución final. Las siguientes son
algunas definiciones de modelo de la comunidad de MDA:

 Un modelo es la descripción de un sistema (o de una parte) en un lenguaje bien


definido.
 Un lenguaje bien definido es un lenguaje con una forma definida (sintaxis) y
significado (semántica) que sea apropiado para ser interpretado automáticamente
por un computador.
 Un modelo se presenta con frecuencia como una combinación de dibujos y de
texto.

3
4. Tipos de Transformaciones

La guía oficial de MDA, distingue dos tipos de transformaciones:

 Transformaciones de Tipos de Modelos (Model Type Transformation)


 Transformaciones de Instancias de Modelos (Model Instance Transformation)

5. Transformaciones de Tipos de Modelos

Este tipo de transformaciones mapean instancias de metamodelos fuente (definiendo tipos fuente) a
instancias de metamodelos destino (definiendo tipos destino). Las siguientes figuras ilustran el proceso
de transformación y las relaciones entre modelos, metamodelos y transformaciones. Un importante
aspecto es que las transformaciones por si solas son modelos, esto permite realizar transformaciones
de alto nivel, por ejemplo transformaciones que generan transformaciones. Todos los metamodelos
comparten el mismo meta-metamodelo (MOF). Nótese que las transformaciones pueden ser
bidireccionales, pero en las implementaciones prácticas solo se soportan transformaciones
unidireccionales.

Transformación de MetaModelos.

Patrón para Transformación de Tipos de Modelos.

4
6. Transformaciones de Instancias de Modelos

Este tipo de transformaciones es un tipo especial de las transformaciones de Tipos de Modelos donde
se usan marcas adicionales para seleccionar elementos del modelo origen, de tal forma, que estas
marcas guían la transformación. El marcado puede realizarse directamente en el modelo origen si
el metamodelo origen soporta conceptos apropiados de marcado, por ejemplo se pueden usar como
marcas estereotipos UML y valores de tags UML. Alternativamente, un modelo de marcado
independiente puede ser usado para asignarle marcas a los elementos del modelo origen. Otra clase de
marcas más abstractas es la selección de patrones en el modelo origen. Frecuentemente, se especifica
un conjunto de marcas para una plataforma en particular (definidos como perfiles de UML) y el
marcado de la plataforma independiente del modelo origen corresponde a la selección de mapeos a un
concepto dependiente de una plataforma específica, por ejemplo el estereotipo <> ejecuta una
transformación que permite crear elementos de modelado para la plataforma especifica de EJB.

Marcado de un Modelo.

7. Capas del Modelado MDA

La especificación MDA usa una arquitectura de 4 niveles o capas de modelado. En la terminología del
OMG estas capas son llamadas M0, M1, M2 y M3.

 La capa M3, representa a la raíz de la jerarquía de capas y corresponde al Meta-Metamodelo,


este meta-metamodelo es llamado Meta Object Facility (MOF) y define el lenguaje para especificar
metamodelos. MOF es reflexivo, esto quiere decir que se puede definir así mismo.
 La capa M2, corresponde al Metamodelo, o al lenguaje especifico de modelado, un ejemplo
de este tipo de lenguaje es el UML.
 La capa M1, representa al modelo en si del sistema de software.

5
 La capa M0, es la instancia de un modelo es decir a las clases y objetos que representan el
sistema de software.
La siguiente figura ilustra las relaciones de las capas del metamodelado, para elementos de modelado
se utiliza UML, es decir “clases” e “instancias”.

Ejemplo de jerarquía de MetaModelado OMG.

8. Ventajas del uso del MDA

Los desarrolladores no tienen que escribir mucho código ya que parte de ello lo generan
los modelos PIM. Portabilidad e independencia de la plataforma. Aumentar el nivel de
abstracción. Mayor facilidad de mantenimiento. Cada fase de desarrollo puede ser
desempeñado por distintos expertos.

9. Herramientas MDA

Las herramientas MDA deberían proveer la capacidad de transformar modelos de


negocios puro (CIMs) en aplicaciones completas, desplegables y capaces de ejecutar con
un mínimo de decisiones técnicas. Lamentablemente, nos encontramos muy lejos de que
MDA o alguna herramienta MDA provea todas estas facilidades para cualquier negocio
y problemática a desarrollar. Tampoco existe un líder en herramientas MDA, debido a
que son muy sofisticadas. Algunas de las herramientas más conocidas son:

 ATL ATLAS Transformation Language


 OptimalJ
 ArcStyler
 UMT UML Model Transformation
 ArgoUML
 Codagen
 Rational Architect

6
 MDA Transf
 Enterprise Architect
 GReAT
 AndroMDA

Referencias

Anacleto, V. (05 de 9 de 2006). Epiwiki. Obtenido de https://bit.ly/2znGwgw

Armas, M. (junio de 2012). Microsoft Community. Obtenido de https://bit.ly/2Hc2xSd

Salas, M. (15 de 8 de 2015). Obtenido de https://bit.ly/2yY1fbx

Vous aimerez peut-être aussi