Tendencias y HERRAMIENTAS de
MDA y MDD
Aproximación mda
En primer lugar, de la aproximación MDA podemos extraer varios aportes. El principal de ellos es la abstracción promovida por la aproximación. Los sistemas se pueden definir y diseñar desde un alto grado de abstracción, lo que permite a los desarrolladores aislarse de los detalles técnicos.
El procedimiento de diseño se hace mediante modelos especificados en un lenguaje de modelado preferentemente no textual. Esto simplifica la generación, entendimiento y modificación de los modelos a desarrollar.
Aproximación MDA
-
Facilitan la comunicación con los usuarios y a la vez son el germen del código de la aplicación.
- Se deriva de las transformaciones sucesivas sobre los mismos.
-
Pueden ser procesados por un computador, por lo que las transformaciones se pueden hacer de forma automática.
- Resuelven los problemas de la portabilidad y de la interoperabilidad.
- Resuelve el problema de la productividad, derivado del desarrollo de software tradicional. MDA permite aumentarla básicamente por dos motivos:
Aproximación MDA
● La agilidad en la generación y
actualización de los modelos
● La generación automática de
transformaciones sucesivas cuyo resultado final es el código de la aplicación
en un lenguaje determinado.
El Ciclo de Vida del Desarrollo al utilizar MDA consta de un modelo independiente de la plataforma (PIM), un modelo específico a la plataforma (PSM) y un Código.
MDA plantea que del análisis de requisitos se obtiene un Modelo Independiente de la Plataforma (PIM), posteriormente este modelo se transforma con la ayuda de herramientas en uno o varios Modelos
Específicos de la Plataforma (PSM), y por último los PSM se transforman en código.
ArcStyler
Es un sistema basado en uso de cartuchos
para descripción de transformaciones que permite generar aplicaciones de n
capas codificadas en java/J2EE y c#/.NET a partir de diagramas UML y la
especificación de los procesos del negocio.
Permite extender las capacidades de
transformación, generando nuevos cartuchos a partir de UML, cuyo objetivo sea
cualquier plataforma o lenguaje.
ArcStyler
Integra herramientas de modelado (UML) y
desarrollo (ingeniería inversa, explorador de modelos basado en MOF,
construcción y despliegue) con la arquitectura CARAT que permite la creación,
edición y mantenimiento de cartuchos MDA (MDA-Cartridge) que definen
transformaciones.
También incluye herramientas relacionadas con el modelado del
negocio y el modelado de requisitos por lo que cubre todo el ciclo de vida.
OptimalJ
Este es una herramienta producida por la
compañía Compuware, el cual genera aplicaciones J2EE partiendo de los modelos.
Implementa completamente la especificación MDA. Está desarrollado en Java, lo
que le hace portable a cualquier plataforma para su ejecución.
Se
trata de un entorno de desarrollo que permite generar aplicaciones J2EE
completas a partir de un PIM.
OptimalJ
Destaca:
-
Generación automática a partir del PIM de
los modelos PSM de la capa de presentación (web), capa de negocio EJB y base de
datos, estableciendo la conexión (puentes) entre las tres capas.
-
Distinción entre bloques libres y
protegidos en el código para impedir la modificación del código generado
Tendencias MDA
La investigación con respecto a MDA, es muy extensa. Existe un gran volumen de publicaciones y estudios sobre MDA que aportan conocimiento y experiencias de aplicación práctica de la misma, predominan los autores del entorno académico, existiendo en proporción, poca presencia de la industria como impulsores de estos estudios.
Se observa que la mayoría de las ponencias presentadas en conferencias o talleres realizados en el ámbito de MDA, suelen ser de autores del ámbito académico.
MoDELS
-
Una de las conferencias existentes a nivel internacional es la conferencia MoDELS que se realiza de de forma anual y se centra en la ingeniería dirigida por modelos propulsada por MDA.
-
Las conferencias MoDELS son un punto de encuentro para el intercambio y la innovación tecnológica entorno a ideas y experiencias relativas a la arquitectura MDA en desarrollo de sistemas Software.
Otras Conferencias
-
European Conference on Model Driven Architecture (EC-MDA) enfocada en la difusión del conocimiento y el impulso de la industrialización de la metodología
-
MDA
Modeling in Software Engineering (MiSE), taller que se celebra dentro del marco de la International Conference of Software Engeenering [ICSE], centrada sobre todo en la promoción del uso de modelos en los sistemas software.
Aplicaciones Prácticas en la Industria
Basándonos en los estudios realizados y presentados en las conferencias MODELS se pueden extraer como resumen, varias ideas básicas. En primer lugar, la industria está presente en conferencias sobre MDA, aunque se detecta que en muchos casos van de la mano de colaboradores del mundo académico. Así, se presentan ponencias en donde los autores no son exclusivamente del ámbito industrial.
Aplicaciones Prácticas en la Industria
El éxito de la aproximación MDA se ha circunscrito básicamente al ámbito académico, teniendo una repercusión en menor en entornos industriales. Bajo un punto de vista del impacto de las nuevas tecnologías, hoy por hoy las tecnologías aplicadas por la industria, evolucionan de forma vertiginosa.
Las comunidades de desarrolladores trabajan de forma colaborativa, avanzando, depurando y mejorando las mismas en un tiempo relativamente corto. En el caso de MDA, se observa que la comunidad Eclipse enseguida entendió que podía ser una metodología interesante.
Por otro lado el impacto que la aproximación MDA ha tenido sobre la industria no ha sido especialmente relevante. Sólo las grandes empresas dedican un esfuerzo en investigar para aplicar esta metodología a sus propios procesos productivos, sobre todo en el ámbito de sistemas empotrados o sistemas hardware, pero las ideas más importantes de la aproximación MDA, el metamodelado y las transformaciones, no parece que despierten interés en la industria.
MDD
Es un paradigma para el desarrollo de software que tiene los modelos como principal elemento del proceso del desarrollo.
Genera código (semi) automáticamente a partir de modelos.
Características
- Permite el desarrollo ágil
- Mejora la productividad
- Simplifica el proceso de diseño
- Aumenta la calidad del software
- Mejor comprensión del sistema a desarrollar
- Facilita evolución y mantenimiento
- Promueve la comunicación entre desarrolladores y arquitectos