Modelo - impulsado por la arquitectura (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 impulsada por modelos es un tipo de ingeniería de dominio y admite la ingeniería impulsada por modelos de sistemas de software. Fue lanzado por Object Management Group (OMG) en 2001. [1]
Descripción general
Luego, dado un modelo de plataforma correspondiente a CORBA , .NET , la Web, etc., el modelo independiente de plataforma (PIM) se traduce a uno o más modelos específicos de plataforma (PSM) que las computadoras pueden ejecutar. Esto requiere mapeos y transformaciones y también debe modelarse.
La organización OMG proporciona especificaciones aproximadas en lugar de implementaciones, a menudo como respuestas a las solicitudes de propuestas (RFP). Las implementaciones provienen de empresas privadas o grupos de código abierto.
Estándares relacionados
El modelo MDA está relacionado con múltiples estándares, incluido el Lenguaje de modelado unificado (UML), el Meta-Object Facility (MOF), XML Metadata Interchange (XMI), Enterprise Distributed Object Computing (EDOC), Software Process Engineering Metamodel (SPEM) y el metamodelo de almacén común (CWM). Tenga en cuenta que el término "arquitectura" en la arquitectura basada en modelos no se refiere a la arquitectura del sistema que se está modelando, sino a la arquitectura de los diversos estándares y formas de modelo que sirven como base tecnológica para MDA.
UML ejecutable fue el perfil UML utilizado cuando nació MDA. Ahora, el OMG está promoviendo fUML , en su lugar. (El lenguaje de acción para fUML es ALF).
Marca comercial
El Grupo de Gestión de Objetos sostiene las marcas registradas en el término Model Driven Architecture y sus siglas MDA, así como marcas comerciales registradas de términos tales como: Basado en Modelos de desarrollo de aplicaciones, desarrollo de aplicaciones Model Driven, Modelo desarrollo de aplicaciones basadas, programación basada en modelo, Model Driven Systems, y otros. [2]
Temas de arquitectura basada en modelos
Enfoque MDA
OMG se centra en la arquitectura basada en 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 ingeniería inversa. ADM decodifica a Modernización impulsada por la arquitectura. El objetivo de ADM es producir estándares para la ingeniería inversa basada en modelos de sistemas heredados. [3] Knowledge Discovery Metamodel (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.).
Dado que 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, desacoplarlos permite a los desarrolladores de sistemas elegir entre lo mejor y más adecuado en ambos dominios. El diseño aborda los requisitos funcionales ( casos de uso ) mientras que la arquitectura proporciona la infraestructura a través de la cual se realizan los requisitos no funcionales como escalabilidad, confiabilidad y rendimiento. MDA prevé que el modelo independiente de plataforma (PIM), que representa un diseño conceptual que da cuenta de 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 impulsada por modelos es la noción de transformación de modelos . OMG ha definido un lenguaje estándar específico para la transformación de modelos llamado QVT .
Herramientas MDA
La organización OMG proporciona especificaciones aproximadas en lugar de implementaciones, a menudo como respuestas a las 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 que se utiliza para desarrollar, interpretar, comparar, alinear, medir, verificar, transformar, etc. modelos o metamodelos. [4] 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 de 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 inicial de UML a partir de su observación de alguna situación empresarial flexible, mientras que un modelo Java puede derivarse automáticamente de este modelo UML mediante una operación de transformación del modelo .
Una herramienta MDA puede ser una herramienta que se utiliza para verificar modelos en busca de integridad, inconsistencias o condiciones de error y advertencia. También se usa para calcular métricas para el modelo. [5]
Algunas herramientas realizan más de una de las funciones enumeradas anteriormente. Por ejemplo, algunas herramientas de creación también pueden tener capacidades de transformación y prueba. Existen otras herramientas que son únicamente para la creación, únicamente para la presentación gráfica, únicamente para la transformación, etc.
Las implementaciones de las especificaciones de OMG provienen de empresas privadas o grupos de código abierto . Una fuente importante de implementaciones para las especificaciones OMG es Eclipse Foundation (EF). Muchas implementaciones de 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 de OMG a menudo no es estricto. Esto es cierto, por ejemplo, para el estándar EMOF de OMG, que EMF 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.
Se debe tener cuidado de no confundir la Lista de herramientas MDA y la Lista de herramientas UML , siendo la primera mucho más amplia. Esta distinción puede hacerse más general distinguiendo "herramientas de metamodelo variable" y "herramientas de metamodelo fijo". Una herramienta UML CASE es típicamente una 'herramienta de metamodelo fija' ya que ha sido programada para funcionar solo con una versión dada 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.
Por lo general, las herramientas de MDA se enfocan en la especificación de 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:
- Seleccionando una de varias arquitecturas de referencia compatibles , como Java EE o Microsoft .NET ,
- Especificar la arquitectura en 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 empresarial, la tecnología de persistencia y la tecnología de mapeo de persistencia (por ejemplo, mapeador relacional de objetos).
- Metadatos: información sobre datos.
Preocupaciones de la MDA
Algunos conceptos clave que sustentan el enfoque MDA (lanzado en 2001) fueron aclarados por primera vez por el método Shlaer-Mellor a fines de la década de 1980. De hecho, algunos proveedores han puenteado un estándar técnico clave ausente del enfoque MDA (el de una sintaxis de lenguaje de acción para UML ejecutable ) adaptando el lenguaje de acción Shlaer-Mellor original (modificado para UML) [ cita requerida ] . Sin embargo, durante este período, el enfoque de MDA no ha ganado la aceptación de la industria general; con el Grupo Gartner aún identificando MDA como una tecnología "en aumento" en su " Ciclo Hype " de 2006 , [6] y Forrester Research declarando MDA como "DOA" en 2006. [7] Posibles preocupaciones que se han planteado con el El enfoque OMG MDA incluye:
- Estándares incompletos: el enfoque MDA se basa en una variedad de estándares técnicos, algunos de los cuales aún no se han especificado (por ejemplo, un lenguaje semántico de acción para xtUML ), o aún no se han implementado de manera estándar (por ejemplo, un motor de transformación QVT o un PIM con un entorno de ejecución virtual). [8] [9]
- Vinculación 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. Tal resultado podría resultar en un bloqueo del proveedor para aquellos que persiguen un enfoque de MDA. [ cita requerida ]
- Idealista: MDA se concibe como un enfoque de ingeniería avanzada en el que los modelos que incorporan la programación del 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 mediante 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 total del dominio de un problema en UML (y estándares relacionados) con la transformación subsiguiente a una aplicación completa (ejecutable). [10] Este enfoque, sin embargo, implica que los cambios en los artefactos de implementación (por ejemplo, el ajuste del esquema de la base de datos) no son compatibles. 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 de los llamados "MDA pragmáticos". [11] Pragmatic MDA combina los estándares literales del MDA de OMG con mecanismos impulsados por modelos más tradicionales, como la ingeniería de ida y vuelta, que proporciona soporte para adaptar los artefactos de implementación.
- Habilidades especializadas: los profesionales de la ingeniería de software basada en MDA deben (al igual que con otros conjuntos de herramientas) tener un alto nivel de experiencia en su campo. Los practicantes expertos actuales de MDA (a menudo denominados Modeller / Architects) son escasos en relación con la disponibilidad de los desarrolladores tradicionales. [12]
- Registro de seguimiento de OMG: El consorcio OMG que patrocina el enfoque MDA (y es propietario de 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 (UVP): Como se discutió, 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 en particular (por ejemplo, .NET). Por lo tanto, una aplicación que se ha desarrollado con éxito a través de un enfoque MDA puro podría teóricamente ser portado a una plataforma .NET de versión más reciente (o incluso a una plataforma Java) de una manera determinista, aunque quedan preguntas importantes en cuanto a aspectos prácticos del mundo real durante la traducción (como como implementación de la interfaz de usuario). Si esta capacidad representa una propuesta de valor significativa sigue siendo una cuestión para los adoptantes particulares. Independientemente, los adoptantes de MDA que buscan valor a través de una "alternativa a la programación" deben tener mucho cuidado 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 que es 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 se ha respondido adecuadamente.
- La MDA fue reconocida como una forma posible de reunir varias soluciones estandarizadas desarrolladas de forma independiente. Para la comunidad de simulación, se recomendó como una alternativa empresarial e industrial a otro estándar obligatorio del Departamento de Defensa de EE. UU. [14]
Controversia de generación de código
La generación de código significa que el usuario modela soluciones de manera abstracta, que están connotadas por algunos datos del modelo, y luego una herramienta automatizada deriva de las partes del modelo o de todo el código fuente del sistema de software. En algunas herramientas, el usuario puede proporcionar un esqueleto del código fuente del programa, en forma de una plantilla de código fuente donde los tokens predefinidos luego se reemplazan con partes del código fuente del programa durante el proceso de generación del código.
Una crítica frecuentemente citada es que los diagramas UML simplemente carecen de los detalles necesarios para contener la misma información que se cubre con la fuente del programa. Algunos desarrolladores incluso afirman que "el Código es el diseño". [15] [16]
Ver también
- Lenguaje de transformación ATLAS
- Programacion automatica
- Diseño impulsado por dominios
- Planificación de recursos empresariales
- UML ejecutable
- Arquitectura ejecutable
- Facilidad de metaobjetos
- Metamodelado
- Ingeniería basada en modelos
- Integración impulsada por modelos
- Seguridad basada en modelos
- Interoperabilidad basada en modelos
- Aplicación basada en modelos
- Lenguaje de transformación de modelos
- Modelado de niveles de madurez
- Modelo independiente de la plataforma
- Modelo específico de plataforma
- Fábrica de software
- Lenguaje de modelado unificado
- Lenguaje de sistemas universales
- QVT
- Ingeniería web
- WebML
Referencias
- ^ "OMG persigue una nueva dirección estratégica para aprovechar el éxito de los esfuerzos anteriores" Archivado 2006-09-24 en Wayback Machine
- ^ http://www.omg.org/legal/tm_list.htm
- ^ adm sitio web http://adm.omg.org
- ^ Bézivin, J, Gérard, S, Muller, PA y Rioux, L (2003). "Componentes de MDA: desafíos y oportunidades" (PDF) . En: Metamodelado para MDA. Archivado desde el original (PDF) el 2006-12-06. Cite journal requiere
|journal=
( ayuda )CS1 maint: varios nombres: lista de autores ( enlace ) - ^ Monperrus, Martin; Jézéquel, Jean-Marc; Champeau, Joël; Hoeltzener, Brigitte (2008). "Un enfoque de medición basado en modelos". Sistemas y lenguajes de ingeniería basados en modelos . Apuntes de conferencias en Ciencias de la Computación. 5301 . págs. 505–519. doi : 10.1007 / 978-3-540-87875-9_36 . ISBN 978-3-540-87874-2. ISSN 0302-9743 .
- ^ "Ciclo de bombo para las tecnologías emergentes, 2006" $ 495,00
- ^ "MDA es DOA, en parte gracias a SOA" Archivado el 13 de octubre de 2007 en la Wayback Machine.
- ^ "UML - ¿Lenguaje de modelado unificado o universal? UML2, OCL, MOF, EDOC - El emperador tiene demasiada ropa"
- ^ "MDA: Buena idea. Lástima de la ..."
- ^ "Llevando MDA a Eclipse, utilizando un enfoque pragmático"
- ^ "Una respuesta a Forrester"
- ^ "¿Está listo para la MDA?"
- ^ "El ascenso y la caída de CORBA" Archivado el 2 de diciembre de 2008 en la Wayback Machine.
- ^ "Evitar otro elefante verde"
- ^ http://www.developerdotstar.com/mag/articles/reeves_design_main.html por Jack W. Reeves
- ^ Borde difuminado
Otras lecturas
- Kevin Lano. "Desarrollo de software basado en modelos con UML y Java". Aprendizaje Cengage, ISBN 978-1-84480-952-3
- David S. Frankel . Arquitectura basada en modelos: aplicación de MDA 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 MDA, La arquitectura basada en modelos: práctica y promesa . Addison-Wesley. ISBN 0-321-19442-X
- Stephen J. Mellor (2004). MDA destilado, principios de la arquitectura basada en modelos . Addison-Wesley Professional. ISBN 0-201-78891-8
- Chris Raistrick. Arquitectura basada en modelos con UML ejecutable . Prensa de la Universidad de Cambridge, 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 (rústica), ISBN 9781608458837 (libro electrónico). http://www.mdse-book.com
- Stanley J. Sewall. Justificación ejecutiva para MDA
- Soylu A., De Causmaecker Patrick. La fusión de enfoques de desarrollo de sistemas impulsados por modelos y basados en ontologías desde la perspectiva de la computación generalizada , en el 24º Simposio Internacional de Computación y Ciencias de la Información de Proc. 2009, págs. 730–735.
enlaces externos
- Sitio web de la MDA de OMG
- Curso de desarrollo de software basado en modelos, B. Tekinerdogan, Bilkent University