La arquitectura basada en modelos ( MDA ) es un enfoque de diseño de software para el desarrollo de sistemas de software. Proporciona un conjunto de pautas para la estructuración de especificaciones, que se expresan como modelos. La arquitectura basada en modelos es un tipo de ingeniería de dominio y admite la ingeniería basada en modelos de sistemas de software. Fue lanzada por Object Management Group (OMG) en 2001. [1]
Descripción general
La arquitectura basada en modelos (MDA®) "ofrece un enfoque para obtener valor de los modelos y la arquitectura en apoyo del ciclo de vida completo de los sistemas físicos, organizacionales y de TI". Un modelo es una (representación de) una abstracción de un sistema. La MDA® proporciona valor al producir modelos en distintos niveles de abstracción, desde una visión conceptual hasta el más mínimo detalle de implementación. La literatura de OMG habla de tres de estos niveles de abstracción, o puntos de vista arquitectónicos: el modelo independiente de la computación (CIM), el modelo independiente de la plataforma (PIM) y el modelo específico de la plataforma (PSM). El CIM describe un sistema conceptualmente, el PIM describe los aspectos computacionales de un sistema sin hacer referencia a las tecnologías que se pueden utilizar para implementarlo, y el PSM proporciona los detalles técnicos necesarios para implementar el sistema. La Guía OMG señala, sin embargo, que estos tres puntos de vista arquitectónicos son útiles, pero son solo tres de los muchos puntos de vista posibles. [2]
La organización OMG proporciona especificaciones en lugar de implementaciones, a menudo como respuestas a solicitudes de propuestas (RFP). Las implementaciones provienen de empresas privadas o grupos de código abierto.
Normas relacionadas
El modelo MDA está relacionado con múltiples estándares, entre ellos el Lenguaje de modelado unificado (UML), la Herramienta de metaobjetos (MOF), el Intercambio de metadatos XML (XMI), la Computación de objetos distribuidos empresariales (EDOC), el Metamodelo de ingeniería de procesos de software (SPEM) y el Metamodelo de almacén común (CWM). Tenga en cuenta que el término "arquitectura" en Arquitectura basada en modelos no se refiere a la arquitectura del sistema que se modela, sino a la arquitectura de los diversos estándares y formas de modelo que sirven como base tecnológica para MDA. [ cita requerida ]
El perfil UML ejecutable era el que se utilizaba cuando nació MDA. Ahora, OMG está promoviendo fUML en su lugar. (El lenguaje de acción para fUML es ALF).
Marca
Object Management Group posee marcas registradas del término Model Driven Architecture y su acrónimo MDA, así como marcas comerciales para términos como: Model Based Application Development, Model Driven Application Development, Model Based Application Development, Model Based Programming, Model Driven Systems y otros. [3]
Temas de arquitectura basada en modelos
Enfoque MDA
OMG centra la Arquitectura Dirigida por Modelos® en la ingeniería avanzada, es decir, en la producción de código a partir de diagramas de modelado abstractos elaborados por humanos (por ejemplo, diagramas de clases) [ cita requerida ] . El grupo ADTF (Grupo de Trabajo de Análisis y Diseño) de OMG lidera este esfuerzo. Con algo de humor, el grupo eligió ADM (MDA al revés) para nombrar el estudio de la ingeniería inversa. ADM decodifica a Modernización Dirigida por Arquitectura. El objetivo de ADM es producir estándares para la ingeniería inversa basada en modelos de sistemas heredados. [4] El Metamodelo de Descubrimiento de Conocimiento (KDM) es el más avanzado de estos esfuerzos y describe los sistemas de información en términos de varios activos (programas, especificaciones, datos, archivos de prueba, esquemas de bases de datos, etc.).
Como los conceptos y tecnologías utilizados para realizar diseños y los conceptos y tecnologías utilizados para realizar arquitecturas han cambiado a su propio ritmo, disociarlos permite a los desarrolladores de sistemas elegir entre los mejores y más adecuados en ambos dominios. El diseño aborda los requisitos funcionales ( caso de uso ), mientras que la arquitectura proporciona la infraestructura a través de la cual se realizan los requisitos no funcionales como la escalabilidad, la confiabilidad y el rendimiento. MDA prevé que el modelo independiente de la plataforma (PIM), que representa un diseño conceptual que realiza los requisitos funcionales, sobrevivirá a los cambios en las tecnologías de realización y las arquitecturas de software .
De particular importancia para la arquitectura basada en modelos es el concepto de transformación de modelos . OMG ha definido un lenguaje estándar específico para la transformación de modelos denominado QVT .
Herramientas MDA
La organización OMG proporciona especificaciones aproximadas en lugar de implementaciones, a menudo como respuestas a solicitudes de propuestas (RFP). La OMG documenta el proceso general en un documento llamado Guía MDA.
Básicamente, una herramienta MDA es una herramienta utilizada para desarrollar, interpretar, comparar, alinear, medir, verificar, transformar, etc. modelos o metamodelos. [5] En la siguiente sección, "modelo" se interpreta como cualquier tipo de modelo (por ejemplo, un modelo UML) o metamodelo (por ejemplo, el metamodelo CWM). En cualquier enfoque MDA tenemos esencialmente dos tipos de modelos: los modelos iniciales son creados manualmente por agentes humanos, mientras que los modelos derivados son creados automáticamente por programas. Por ejemplo, un analista puede crear un modelo UML inicial a partir de su observación de alguna situación empresarial poco definida, mientras que un modelo Java puede derivarse automáticamente de este modelo UML mediante una operación de transformación de modelo .
Una herramienta MDA puede ser una herramienta utilizada para verificar modelos en busca de integridad, inconsistencias o errores y condiciones de advertencia.
Algunas herramientas realizan más de una de las funciones mencionadas anteriormente. Por ejemplo, algunas herramientas de creación también pueden tener capacidades de transformación y prueba. Hay otras herramientas que son únicamente para creación, únicamente para presentación gráfica, únicamente para transformación, etc.
Las implementaciones de las especificaciones OMG provienen de empresas privadas o grupos de código abierto . Una fuente importante de implementaciones para las especificaciones OMG es la Fundación Eclipse (EF). Muchas implementaciones de los estándares de modelado OMG se pueden encontrar en Eclipse Modeling Framework (EMF) o Graphical Modeling Framework (GMF); la fundación Eclipse también está desarrollando otras herramientas de varios perfiles como GMT. El cumplimiento de Eclipse con las especificaciones OMG a menudo no es estricto. Esto es cierto, por ejemplo, para el estándar EMOF de OMG, al que EMF se aproxima con su implementación Ecore. Se pueden encontrar más ejemplos en el proyecto M2M que implementa el estándar QVT o en el proyecto M2T que implementa el estándar MOF2Text.
Hay que tener cuidado de no confundir la Lista de herramientas MDA y la Lista de herramientas UML , ya que la primera es mucho más amplia. Esta distinción se puede hacer más general si se distingue entre "herramientas de metamodelo variable" y "herramientas de metamodelo fijo". Una herramienta UML CASE es típicamente una "herramienta de metamodelo fijo", ya que ha sido programada para funcionar únicamente con una versión determinada del metamodelo UML (por ejemplo, UML 2.1). Por el contrario, otras herramientas tienen capacidades genéricas internas que les permiten adaptarse a metamodelos arbitrarios o a un tipo particular de metamodelos.
Generalmente, las herramientas MDA se centran en la especificación de una arquitectura rudimentaria, aunque en algunos casos las herramientas son independientes de la arquitectura (o de la plataforma).
Algunos ejemplos simples de especificaciones de arquitectura incluyen:
- Seleccionar una de varias arquitecturas de referencia compatibles, como Java EE o Microsoft .NET ,
- Especificación de la arquitectura a un nivel más fino, incluida la elección de la tecnología de la capa de presentación, la tecnología de la capa de lógica de negocios, la tecnología de persistencia y la tecnología de mapeo de persistencia (por ejemplo, mapeador relacional de objetos).
- Metadatos: información sobre los datos.
Preocupaciones de la MDA
Algunos conceptos clave que sustentan el enfoque MDA (lanzado en 2001) fueron elucidados por primera vez por el método Shlaer-Mellor a fines de la década de 1980. De hecho, algunos proveedores han superado un estándar técnico clave ausente del enfoque MDA (el de una sintaxis de lenguaje de acción para UML ejecutable ) al adaptar el lenguaje de acción Shlaer-Mellor original (modificado para UML) [ cita requerida ] . Sin embargo, durante este período, el enfoque MDA no ha ganado la aceptación general de la industria; el Grupo Gartner todavía identifica a MDA como una tecnología "en ascenso" en su " Ciclo de Hype " de 2006, [6] y Forrester Research declaró que MDA estaba "DOA" en 2006. [7] Las posibles preocupaciones que se han planteado con el enfoque MDA de OMG incluyen:
- Estándares incompletos: el enfoque MDA está respaldado por una variedad de estándares técnicos, algunos de los cuales aún deben especificarse (por ejemplo, un lenguaje semántico de acción para xtUML ) o aún deben implementarse de manera estándar (por ejemplo, un motor de transformación QVT o un PIM con un entorno de ejecución virtual). [8] [9]
- Dependencia del proveedor: aunque MDA se concibió como un enfoque para lograr la independencia (técnica) de la plataforma, los proveedores actuales de MDA se han mostrado reacios a diseñar sus conjuntos de herramientas de MDA para que sean interoperables. Un resultado de este tipo podría resultar en dependencia del proveedor para aquellos que busquen un enfoque de MDA. [ cita requerida ]
- Idealista: MDA se concibe como un enfoque de ingeniería avanzada en el que los modelos que incorporan programación de lenguaje de acción se transforman en artefactos de implementación (por ejemplo, código ejecutable, esquema de base de datos) en una dirección a través de un paso de "generación" total o parcialmente automatizado. Esto se alinea con la visión de OMG de que MDA debería permitir el modelado de la complejidad completa de un dominio de problemas en UML (y estándares relacionados) con la posterior transformación a una aplicación completa (ejecutable). [10] Este enfoque, sin embargo, implica que no se admiten cambios en los artefactos de implementación (por ejemplo, ajuste del esquema de base de datos). Esto constituye un problema en situaciones en las que se considera necesaria dicha "adaptación" posterior a la transformación de los artefactos de implementación. La evidencia de que el enfoque MDA completo puede ser demasiado idealista para algunas implementaciones del mundo real se ha visto en el surgimiento del llamado "MDA pragmático". [11] El MDA pragmático combina los estándares literales del MDA de OMG con enfoques impulsados por modelos más tradicionales, como la ingeniería de ida y vuelta que brinda soporte para adaptar los artefactos de implementación (aunque no sin desventajas sustanciales).
- Conjuntos de habilidades especializadas: los profesionales de la ingeniería de software basada en MDA deben (como en el caso de otros conjuntos de herramientas) tener un alto nivel de experiencia en su campo. Los profesionales expertos en MDA actuales (a menudo denominados modeladores/arquitectos) son escasos en relación con la disponibilidad de desarrolladores tradicionales. [12]
- Historial de OMG: El consorcio OMG que patrocina el enfoque MDA (y posee la marca registrada MDA) también introdujo y patrocinó el estándar CORBA, que en sí mismo no logró materializarse como un estándar ampliamente utilizado. [13]
- Propuesta de valor incierta (PVU): como se ha comentado, la visión de MDA permite la especificación de un sistema como un modelo abstracto, que puede realizarse como una implementación concreta (programa) para una plataforma informática particular (por ejemplo, .NET). Por lo tanto, una aplicación que se ha desarrollado con éxito mediante un enfoque MDA puro podría teóricamente trasladarse a una plataforma .NET de versión más reciente (o incluso a una plataforma Java) de manera determinista, aunque quedan preguntas importantes sobre aspectos prácticos del mundo real durante la traducción (como la implementación de la interfaz de usuario). Si esta capacidad representa una propuesta de valor significativa sigue siendo una pregunta para los adoptantes particulares. De todos modos, los adoptantes de MDA que buscan valor a través de una "alternativa a la programación" deben ser muy cuidadosos al evaluar este enfoque. La complejidad de cualquier dominio de problema dado siempre permanecerá, y la programación de la lógica empresarial debe realizarse en MDA como con cualquier otro enfoque. La diferencia con MDA es que el lenguaje de programación utilizado (por ejemplo, xtUML) es más abstracto (que, por ejemplo, Java o C#) y existe entretejido con artefactos UML tradicionales (por ejemplo, diagramas de clases). Si la programación en un lenguaje más abstracto que los lenguajes 3GL convencionales dará como resultado sistemas de mejor calidad, menor costo o entrega más rápida es una pregunta que aún no ha sido respondida adecuadamente.
- Se reconoció a MDA como una forma posible de reunir varias soluciones estandarizadas desarrolladas de forma independiente. Para la comunidad de simulación, se recomendó como una alternativa comercial e industrial a otro estándar exigido por el Departamento de Defensa de los EE. UU. [14]
Véase también
- Lenguaje de transformación ATLAS
- Programación automática
- Diseño impulsado por dominio
- Planificación de recursos empresariales
- UML ejecutable
- Arquitectura ejecutable
- Instalación de meta-objetos
- Metamodelado
- Ingeniería basada en modelos
- Integración basada en modelos
- Seguridad basada en modelos
- Interoperabilidad basada en modelos
- Aplicación basada en modelos
- Lenguaje de transformación de modelos
- Niveles de madurez de modelado
- Modelo específico de la plataforma
- Fábrica de software
- Lenguaje de modelado unificado
- Lenguaje de sistemas universales
- QVT
- Ingeniería web
- WebML
- Lenguaje de diseño de programas
Referencias
- ^ "OMG busca una nueva dirección estratégica para aprovechar el éxito de esfuerzos anteriores" Archivado el 24 de septiembre de 2006 en Wayback Machine.
- ^ "Guía OMG MDA rev. 2.0". OMG | Object Management Group . El Object Management Group . Consultado el 4 de septiembre de 2021 .
- ^ "Marcas OMG | Grupo de Gestión de Objetos".
- ^ Sitio web de adm http://adm.omg.org
- ^ Bézivin, J; Gérard, S; Muller, PA; Rioux, L (2003). "Componentes de la MDA: desafíos y oportunidades" (PDF) . En: Metamodelling for MDA. Archivado desde el original (PDF) el 2006-12-06.
- ^ "Ciclo de promoción de las tecnologías emergentes, 2006" $495.00
- ^ "MDA está muerta, en parte gracias a SOA" Archivado el 13 de octubre de 2007 en Wayback Machine
- ^ "UML - ¿Lenguaje de modelado unificado o universal? UML2, OCL, MOF, EDOC - El emperador tiene demasiada ropa"
- ^ "MDA: Buena idea. Lástima lo de..."
- ^ "Cómo incorporar MDA a Eclipse mediante un enfoque pragmático"
- ^ "Una respuesta a Forrester"
- ^ "¿Estás listo para la MDA?"
- ^ "El ascenso y la caída de CORBA" Archivado el 2 de diciembre de 2008 en Wayback Machine.
- ^ "Cómo evitar otro elefante verde"
Lectura adicional
- Kevin Lano. "Desarrollo de software basado en modelos con UML y Java". CENGAGE Learning, ISBN 978-1-84480-952-3
- David S. Frankel . Arquitectura basada en modelos: aplicación de la arquitectura basada en modelos a la informática empresarial . John Wiley & Sons, ISBN 0-471-31920-1
- Meghan Kiffer The MDA Journal: Arquitectura basada en modelos directamente de los maestros . ISBN 0-929652-25-8
- Anneke Kleppe (2003). Explicación de la arquitectura basada en modelos: práctica y promesa . Addison-Wesley. ISBN 0-321-19442-X
- Stephen J. Mellor (2004). MDA Distilled, Principios de la arquitectura basada en modelos . Addison-Wesley Professional. ISBN 0-201-78891-8
- Chris Raistrick. Arquitectura basada en modelos con UML ejecutable . Cambridge University Press, ISBN 0-521-53771-1
- Marco Brambilla, Jordi Cabot, Manuel Wimmer, Model Driven Software Engineering in Practice , prólogo de Richard Soley ( presidente de OMG ), Morgan & Claypool, EE. UU., 2012, Synthesis Lectures on Software Engineering #1. 182 páginas. ISBN 9781608458820 (libro de bolsillo), ISBN 9781608458837 (libro electrónico). http://www.mdse-book.com
- Stanley J. Sewall. Justificación ejecutiva de la ley MDA
- Soylu A., De Causmaecker Patrick. Fusionando enfoques de desarrollo de sistemas basados en modelos y ontologías desde la perspectiva de la computación generalizada , en Proc 24th Intl Symposium on Computer and Information Sciences. 2009, págs. 730–735.
Enlaces externos
- Sitio web de la MDA de OMG
- Curso de desarrollo de software basado en modelos, B. Tekinerdogan, Universidad Bilkent