Model-Driven Architecture

Solve your problems or get new ideas with basic brainstorming

Get Started. It's Free
or sign up with your email address
Model-Driven Architecture by Mind Map: Model-Driven Architecture

1. Herramientas de MDA

1.1. La OMG provee de especificaciones para la creación de herramientas que se usaran para desarrollar, interpretar, comparar, alinear, medir, verificar y transformar modelos o metamodelos (Ej: modelo UML, metamodelo CWM.)

1.2. En este enfoque existen esencialmente dos tipos de modelos:

1.2.1. Modelos iniciales creados manualmente por humanos.

1.2.2. Modelos derivados creados automáticamente por programas.

1.3. Entre las herramientas necesarias definidas por la OMG se enumeran:

1.3.1. Herramienta de creación: Una herramienta usada para generar modelos iniciales y/o editar modelos derivados.

1.3.2. Herramienta de análisis: Una herramienta usada para medir la completitud, inconsistencias, errores y advertencias. También usada para medir las métricas del modelo.

1.3.3. Herramienta de transformación: Una herramienta para transformar modelos a otros modelos o código y documentación.

1.3.4. Herramienta de composición: Herramienta usada para componer varios modelos de base, preferentemente provenientes de un mismo metamodelo.

1.3.5. Herramienta de pruebas: Una herramienta usada para “probar” un modelo tal como es descrito en el testeo basado en modelos.

1.3.6. Herramienta de simulación: Una herramienta usada para simular la ejecución de un sistema representada por un modelo dado. Esto está relacionado con el tema de ejecución de modelos.

1.3.7. Herramienta de manejo de metadatos: Una herramienta ideada para manejar las relaciones generales entre diferentes modelos, incluyendo los metadatos de cada modelo (ej: autor, fecha de creación, fecha de modificación, transformaciones, etc.) y las mutuas relaciones entre estos modelos (ej: un metamodelo es la versión de otro, un modelo ha sido derivado de otro debido a una transformación, etc).

1.3.8. Herramienta de ingeniería reversa: Herramienta ideada para transformar datos de sistemas legacy o portafolio de artefactos a un modelo actual.

2. Resumen

2.1. El enfoque de la arquitectura dirigida por modelos define la funcionalidad de un sistema usando un modelo independiente de plataforma (PIM), al usar un apropiado lenguaje de dominio específico (DSL).

2.2. Idea 2Luego, dado un modelo de plataforma que puede ser: CORBA, .NET, la web y otros, el PIM es traducido a uno o más modelos de plataforma específica (PSMs) que un computador puede ejecutar. Esto requiere de mapeos y transformaciones que también deben ser modeladas.

2.3. El PSM puede usar diferentes DSLs o un lenguaje de propósito general. Herramientas automatizadas generalmente realizan esta traducción.

2.4. Los principios del MDA también se pueden aplicar a otras áreas como el modelado de procesos de negocios (BPM) donde el PIM es traducido a procesos automatizados o manuales.

3. Introducción

3.1. La arquitectura dirigida por modelos (Model-Driven Architecture o MDA) es un enfoque de diseño para el desarrollo de sistemas de software.

3.2. Provee de una serie de recomendaciones para la estructuración de especificaciones, que luego son expresadas como modelos.

3.3. MDA es un tipo de ingeniería de dominio, y soporta ingeniería dirigida por modelos de sistemas de software. Fue lanzado por el Object Management Group (OMG) en el año 2001.

4. Enfoque MDA

4.1. Model-driven architecture está enfocada en el concepto de “forward engineering” es decir, producir código de diagramas de modelado abstractos y elaborado por humanos.

4.2. Una parte de este enfoque es la llamada ingeniería reversa (que para este modelo, es llamada modernización dirigida por arquitectura o ADM). El objetivo de ADM es producir estándares para ingeniería reversa basada en modelos de sistemas antiguos.

4.3. Uno de los enfoques principales del MDA es separar el diseño de la arquitectura. Debido a que los conceptos y tecnologías usados para realizar diseños y arquitecturas evolucionan a su propio ritmo, desasociarlos permite que los desarrolladores de sistemas elijan lo que más les conviene de ambos dominios.

4.4. El MDA asume que el modelo independiente de plataforma (PIM) sobrevivirá a los cambios realizados en las tecnologías y arquitecturas de software.

4.5. Una particular importancia para el MDA es la noción de transformación de modelos. Un lenguaje específico para la transformación de modelos fue definido por la OMG llamado QVT.

5. Problemáticas del MDA

5.1. Algunos conceptos claves de problemáticas del MDA son:

5.1.1. Estándares incompletos: El enfoque MDA está basado en la interoperabilidad de una variedad de estándares técnicos, varios de los cuales aún no están totalmente desarrollados (lenguaje de acción semántica para xtUML) o aun no están implementados de manera general (transformaciones QVT o un PIM en un ambiente virtual de ejecución).

5.1.2. Modelo Idealista: MDA está enfocado en “forward engineering” y de esta manera, genera modelos unidireccionalmente paso a paso, esto es un problema debido a las posteriores modificaciones a los artefactos (ej. posterior optimización de base de datos), esto constituye un problema a las post transformaciones y adaptaciones.

5.1.3. Habilidades especializadas: Los usuarios de MDA requieren de un alto nivel de expertise en sus campos. Actualmente los usuarios expertos de MDA (usualmente llamados modeladores/arquitectos) son escasos en comparación a los desarrolladores tradicionales.