• Ir a navegación principal
  • Ir al contenido principal

Time of Software

  • Productos
    • Aprende Python
    • Aprende Arduino
    • Aprende C#
    • Aprende HTML y CSS
  • Artículos
  • Ebooks gratis
  • Recursos
  • Sobre nosotros…
    • Quiénes somos
    • Contacto

Proceso MDA

By Alfredo on octubre 10, 2017 27

Proceso MDA
  • Acerca de
  • Últimas entradas
Alfredo
Sígueme!
Alfredo
Alfredo
Sígueme!
Últimas entradas de Alfredo (ver todo)
  • ¿Qué es una base de datos? - noviembre 7, 2020
  • ¿Es la programación una profesión para ti? - septiembre 3, 2020
  • Temporada 2020-2021 - julio 15, 2020

Proceso MDA

Introducción

En el artículo anterior te he hecho una introducción al metamodelado, mi consejo es que revises los conceptos que te presenté en ese artículo antes de empezar con éste: Introducción al Metamodelado.

En este artículo voy a explicarte en más detalle el proceso completo de MDA, adentrándome en los diferentes niveles de modelado que define la OMG, las transformaciones entre modelos, la representación de cada uno de los modelos, los roles en el proceso MDA y voy a indicarte los beneficios que tiene la utilización de MDA.

¡Estoy seguro de que te va a encantar este artículo! ¡Empecemos!

Diferentes niveles de modelo

Tal y como te expliqué en el artículo anterior, la OMG define 4 niveles de modelado en el que cada uno representa un nivel de abstracción diferente en el diseño del sistema.

Niveles de modelado

CIM

Computation Independent Model / Modelo independiente de la computación / M3
El CIM se corresponde con el metametamodelado y se le conoce como el modelo del dominio o del negocio, ya que está modelado en términos familiares a los expertos del negocio. Representa lo que se espera del sistema, sin abordar temas referentes a las tecnologías del mismo.

PIM

Platform Independent Model / Modelo independiente de la plataforma / M2
El PIM se corresponde con el metamodelado y permite mapear el sistema a diferentes plataformas. Esto lo consigue abstrayendo los detalles técnicos para que otros modelos especifiquen como será la implementación.

PSM

Platform Specific Model / Modelo específico de la plataforma / M1
El PSM se corresponde con el modelo del sistema y combina un modelo PIM con las tecnologías específicas de una plataforma particular.

Concreción del modelo

Es la implementación del PSM en un lenguaje de programación específico / M0
La concreción del modelo se corresponde con el propio sistema que se está modelando, es el nivel más bajo de abstracción que existe dentro del conjunto de niveles definidos por la OMG.

Transformaciones entre modelos

Las transformaciones son necesarias para la conversión entre modelos de un mismo sistema. El modelo origen expresado en el lenguaje origen es transformado en el modelo destino expresado en el lenguaje destino, esto se hace mediante la definición de un conjunto de reglas para llevar a cabo dicha transformación.

Transformación entre modelos

Todas las transformaciones entre modelos que pueden realizarse se agrupan en dos categorías principales:

  • Mappings verticales o refinamientos: Relacionan modelos situados en diferentes niveles de abstracción y pueden realizarse de manera bidireccional, es decir, de forma descendente o de forma ascendente. Las transformaciones ascendentes son el resultado de aplicar el proceso de ingeniería inversa.
  • Mappings horizontales: Relacionan modelos dentro de un mismo nivel de abstracción.

Existen diferentes lenguajes de transformación para la representación de las reglas de transformación entre diferentes modelos. La OMG ha propuesto un lenguaje estándar para la especificación de transformaciones que es QVT.

Representación de los modelos

Los diferentes niveles de modelado que te he explicado en el primer punto son representados con diferentes lenguajes.

Lenguajes por nivel

MOF

MOF (Meta-Object Facility) es un estándar del OMG que proporciona un sistema de tipos para una arquitectura y un conjunto de interfaces a través de las cuales esos objetos se pueden crear y manipular.

MOF se desarrollo como un conjunto de esquemas mediante los cuales se podrían definir la estructura, significado y comportamiento de los objetos junto a interfaces para crearlos y manipularlos.

MOF utiliza cinco construcciones básicas para definir un lenguaje de modelado:

  • Clases: Define tipos de elementos en un lenguaje de modelado.
  • Generalización: Define herencia entre clases.
  • Atributos: Define propiedades de elementos del modelo.
  • Asociaciones: Define relaciones entre clases. La asociación tiene dos extremos, cada uno de ellos puede tener definidos un nombre de rol, navegabilidad y multiplicidad.
  • Operaciones: Define operaciones dentro del ámbito de una clase, junto con una lista de parámetros.

En pocas palabras, MOF es un lenguaje específico del dominio (DSL) utilizado para definir modelos.

UML

Lenguaje de modelado que utiliza las facilidades que MOF proporciona para declarar lenguajes orientados a objetos.

UML incluye los siguientes diagramas para representar modelos:

  • Diagrama de casos de uso
  • Diagrama de clases
  • Diagrama de secuencia
  • Diagrama de colaboración
  • Diagrama de estado
  • Diagrama de actividad
  • Diagrama de componentes
  • Diagrama de implementación
  • Diagrama de relación de entidad

Cada uno de ellos define diferentes aspectos en el modelo.

Ejemplo

A continuación te expongo un ejemplo íntegro de transformación desde un MOF a un PIM y posteriormente a un PSM. El ejemplo consiste en la definición de clases para un videoclub.

El último nivel no voy a incluirlo, ya que es únicamente la instanciación del PSM en un ejemplo en concreto.

MOF

En la capa de meta-metamodelado (M3) están las definiciones que pueden instanciarse desde la capa de metamodelado.

En este caso tendremos la definición de Clase MOF, Atributo MOF y Operación MOF.

Nivel M3

PIM

En la capa de metamodelado (M2) instanciaremos las clases de meta-metamodelo (M3) para hacer la definición del metamodelo.

En este caso, UML se define utilizando MOF. Gracias al metamodelo en UML podremos definir la capa de modelo (M1) instanciando las clases del metamodelo (M2).

Nivel M2

PSM

En la capa de modelado (M1) instanciaremos las clases del metamodelo (M2) para hacer la definición del modelo. En esta capa están definidas todas las clases del modelo completamente.

Nivel M1

Roles

En el mundo del desarrollo de software existen diferentes roles dentro de cada equipo y la elaboración de cada uno de los modelos que te he expuesto en los puntos anteriores recae en un rol diferente.

Los roles má relevantes dentro de un equipo de desarrollo de software son:

  • Analistas de negocio.
  • Arquitectos
  • Diseñadores
  • Desarrolladores
  • Testers

La responsabilidad de elaboración de cada uno de los modelos recae en los siguientes roles:

Roles en MDA

Beneficios del proceso MDA

La utilización del proceso de MDA en el desarrollo de software proporciona los siguientes beneficios.

  • Productividad: Una vez realizada la transformación del PIM al PSM puede usarse en múltiples desarrollos. Además, aísla de problemas específicos de cada plataforma.
  • Portabilidad: Al realizar las definiciones en modelos independientes de la plataforma será totalmente portable por la propia definición.
  • Interoperabilidad: Los PSMs generados a partir de un mismo PIM se pueden comunicar a través de puentes (relaciones), por lo cual, pueden pertenecer a diferentes tecnologías.
  • Documentación: El PIM desempeña el papel de la documentación de alto nivel que se necesita en cualquier sistema software.
  • Mantenimiento: Los cambios realizados en el sistema se reflejarán en todos los niveles, mediante la regeneración de los PSMs y del propio código.

Además de los beneficios anteriores, el proceso de MDA aporta otros beneficios, que, aunque no son tan importantes y críticos como los anteriores, son muy relevantes:

  • Dinamiza el proceso de integración.
  • Soporte completo para el ciclo de vida de la aplicación.
  • Escalabilidad y robustez.
  • Está predestinado a ser un estándar.
  • Disminución de costes.
  • Mejoras de calidad de los modelos y procesos.

Resumen y conclusiones

En este artículo te he explicado todo el proceso al completo de MDA, estoy seguro que ahora mismo tienes un montón de conceptos nuevos en tu cabeza. El consejo que te doy es que, con el artículo delante, hagas un ejemplo al completo de como sería aplicar el proceso MDA.

¡Si tienes alguna duda, no dudes en ponerte en contacto con nosotros y te ayudaremos!

14
SHARES
CompartirTweet

Interacciones con los lectores

Comentarios

  1. film modu dice

    diciembre 10, 2020 en 5:01 pm

    Hello and thank you for this blog is a true inspiration.. Kathe Tucker Motteo

    Responder
  2. erotik izle dice

    diciembre 14, 2020 en 9:26 pm

    Having read this I believed it was very informative. Ethelda Griz Buckie

    Responder
  3. bahis dice

    diciembre 17, 2020 en 9:08 am

    Way cool! Some extremely valid points! I appreciate you writing this write-up plus the rest of the website is very good. Ardith Burke Terryn

    Responder
  4. bahis dice

    diciembre 17, 2020 en 10:25 pm

    I conceive you have remarked some very interesting details, thank you for the post. Dolorita Abbe Drud

    Responder
  5. erotik dice

    diciembre 18, 2020 en 5:11 am

    Great work! That is the kind of info that should be shared across the web. Sunshine Siward Ibby

    Responder
  6. bahis dice

    diciembre 18, 2020 en 8:46 am

    Wow! In the end I got a weblog from where I can really obtain useful information concerning my study and knowledge. Carley Jeffy Hinkle

    Responder
  7. bahis dice

    diciembre 18, 2020 en 10:36 am

    Your method of explaining everything in this paragraph is genuinely fastidious, all be capable of without difficulty kknow it, Thanks a lot. Leoline Rudd Templeton

    Responder
  8. sikis dice

    diciembre 18, 2020 en 12:56 pm

    Helloo Dear, are you in fact visiting this site daily, if so then you will without doubt obtain fastidious experience. Ally Egor Joanna

    Responder
  9. erotik dice

    diciembre 18, 2020 en 2:41 pm

    Thanks-a-mundo for the blog article. Really looking forward to read more. Great. Abagail Winnie Trelu

    Responder
  10. sikis dice

    diciembre 18, 2020 en 3:54 pm

    I really like and appreciate your post. Much thanks again. Much obliged. Deb Davis Neille

    Responder
  11. sikis dice

    diciembre 18, 2020 en 6:08 pm

    Incredible points. Sound arguments. Keep up the good work. Lyn Beau Smiga

    Responder
  12. erotik dice

    diciembre 19, 2020 en 5:34 am

    Hi mates, its wonderful paragraph about educationand fully defined, keep it up all the time. Kimmi Farris Keligot

    Responder
  13. sikis dice

    diciembre 19, 2020 en 9:09 am

    Muchos Gracias for your blog article. Thanks Again. Really Cool. Lucy Isadore Nelan

    Responder
  14. bahis dice

    diciembre 19, 2020 en 10:35 am

    Check out the latest news on her website:Hi there, I am Evelynn Panek. Shawn Hanan Corabelle

    Responder
  15. sikis dice

    diciembre 19, 2020 en 12:34 pm

    I enjoy reading and I conceive this website got some truly utilitarian stuff on it! . Mollie Dell Maribeth

    Responder
  16. bahis dice

    diciembre 19, 2020 en 1:51 pm

    Good post. I am dealing with some of these issues as well.. Michele Gerek Carlynn

    Responder
  17. sikis dice

    diciembre 19, 2020 en 3:44 pm

    Thanks so much for your kind response. The experience will always be choice for us. Shari Ave Artur

    Responder
  18. indir dice

    diciembre 20, 2020 en 10:24 am

    What a information of un-ambiguity and preserveness of precious experience about unpredicted feelings. Aubine Minor Beatrix

    Responder
  19. indir dice

    diciembre 20, 2020 en 2:48 pm

    Yes! Finally something about situs online judi terbaik. Ariela Lief Hearn

    Responder
  20. bedava dice

    diciembre 20, 2020 en 4:22 pm

    Paragraph writing is also a excitement, if you know afterward you can write or else it is difficult to write. Lena Miller Patrich

    Responder
  21. ucretsiz dice

    diciembre 20, 2020 en 7:46 pm

    I enjoyed reading what you had to say. You are obviously very knowledgeable. You appear to know a lot about this. I enjoyed your post. Thank you. Leoline Dudley Seleta

    Responder
  22. yify dice

    diciembre 20, 2020 en 9:32 pm

    Looking forward to reading more. Great blog article. Much thanks again. Great. Heddie Quillan Marven

    Responder
  23. yify dice

    diciembre 20, 2020 en 10:56 pm

    Well I sincerely liked studying it. This tip procured by you is very practical for proper planning. Ariadne Kristoffer Sue

    Responder
  24. bluray dice

    diciembre 21, 2020 en 5:48 am

    This is my first time visit at here and i am in fact pleassant to read all at alone place. Rianon Dore Seow

    Responder
  25. bedava dice

    diciembre 21, 2020 en 9:37 pm

    Way cool! Some extremely valid points! I appreciate you penning this article plus the rest of the website is also very good. Brandice Dene Jovitta

    Responder
  26. bluray dice

    diciembre 22, 2020 en 12:17 pm

    You made some respectable factors there. I viewed on the net for the issue as well as discovered most individuals will accompany with your website. Cathie Mikey Bauer

    Responder
  27. bluray dice

    diciembre 23, 2020 en 4:24 am

    Right now it appears like Drupal is the preferred blogging platform out there right now. Clarette Allard Lail

    Responder

Deja una respuesta Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Copyright © 2021 Time Of Software

Descarga nuestro ebook GRATIS

x