Académique Documents
Professionnel Documents
Culture Documents
1. Introducción. .............................................................................................................................1
1. Introducción.
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)
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.
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:
3
4. Tipos de Transformaciones
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.
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.
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.
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”.
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
6
MDA Transf
Enterprise Architect
GReAT
AndroMDA
Referencias