Arquitectura dirigida por modelos

Introducción

Usando la metodología MDA, la funcionalidad del sistema será definida en primer lugar como un modelo independiente de la plataforma (Platform-Independent Model o PIM) a través de un lenguaje específico para el dominio del que se trate. Dado un modelo de definición de la plataforma (Platform Definition Model o PDM) correspondiente a CORBA, .NET, web, etcétera, el modelo PIM puede traducirse entonces a uno o más modelos específicos de la plataforma (Platform-Specific Models o PSM) para la implementación correspondiente, usando diferentes lenguajes específicos del dominio, o lenguajes de propósito general como Java, C#, Python, etc. La traducción entre el PIM y los PSM se realizan normalmente utilizando herramientas automatizadas, como herramientas de transformación de modelos (por ejemplo aquellas herramientas que cumplen con el nuevo estándar de OMG denominado Query/View/Transformation o QVT). El proceso completo se encuentra documentado en un documento que actualiza y mantiene OMG denominado "MDA guide".[1]

Los principios de MDA pueden aplicarse a otras áreas como el modelado de procesos de negocios donde el PIM, independiente de la tecnología y de la arquitectura es adaptado tanto a los sistemas como a los procesos manuales. También puede aplicarse el MDA como soporte para diseñar componentes funcionales del software, en especial cuando los cambios representan una alta volatilidad.[2]​ El modelo MDA está relacionado con múltiples normas, incluyendo el lenguaje de modelado unificado (Unified Modeling Language o UML), Meta-Object Facility (MOF), XML Metadata Interchange (XMI), Enterprise Distributed Object Computing (EDOC), el Software Process Engineering Metamodel (SPEM) y el Common Warehouse Metamodel (CWM). El término "arquitectura" en los metamodelos no se refiere a la arquitectura del sistema modelizado sino más bien a la arquitectura de los distintos estándares y formas del modelo que sirven de base tecnológica al MDA.

El OMG mantiene la marca registrada sobre MDA, así como sobre varios términos similares incluyendo MDD (Model Driven Development), Model Driven Application Development, Model Based Application Development, Model Based Programming y otros similares. El acrónimo principal que aún no ha sido depositado por OMG hasta ahora es MDE. A consecuencia de esto, el acrónimo MDE es usado actualmente por la comunidad investigadora internacional cuando se refieren a ideas relacionadas con la ingeniería de modelos sin centrarse exclusivamente en los estándares OMG.