Diseño Basado en Dominios vs Arquitectura Basada en Modelos


Tengo curiosidad, ¿cuáles son las diferencias entre el Diseño Impulsado por el Dominio y la Arquitectura Impulsada por el Modelo? Tengo la impresión de que tienen ciertas similitudes.

¿Podrías iluminarme?

Gracias

Author: DaJackal, 2010-11-12

3 answers

No estoy en desacuerdo con la mayoría de lo anterior, aunque quizás valga la pena expandirlo un poco.

El concepto más importante en DDD es centrarse en el dominio del problema. Dejar de lado la obsesión por la tecnología y concentrarnos principalmente en modelar el problema que estamos tratando de resolver. Así que pon ajax ,Mss, bases de datos, frameworks, etc. en segundo plano y en su lugar asegúrese de tener un modelo completo y preciso del problema en primer lugar. (Por supuesto que todavía necesita la componentes arquitectónicos-pero están explícitamente subordinados al modelo). DDD llama a este" Lenguaje ubicuo", un modelo expresado en términos que los expertos en dominios y los desarrolladores usan y entienden por igual. Un modelo donde los nombres de clases, métodos, etc. se toman del dominio del problema.

DDD no ordena /cómo/ capturar ese modelo, aunque el libro implica usar un lenguaje OO para hacerlo.

MDA comparte la misma noción de modelar el dominio del problema en primer lugar (el PIM, Modelo Independiente de la Plataforma). A diferencia de DDD, recomienda crear ese modelo con UML. Pero la intención es la misma: entender el dominio del problema sin contaminarlo con preocupaciones arquitectónicas (de software).

El PSM (Modelo Específico de Plataforma) de MDA es algo análogo a la aplicación de los patrones arquitectónicos en DDD (por ejemplo, agregado, repositorio, etc.). Una vez más, aunque son diferentes en detalles, ambos tienen como objetivo resolver el problema de convertir un modelo de dominio de problemas 'puro' en un sistema de software.

Resumiendo, diría que son similares de dos maneras:

  1. La centralidad del Modelo (como dice @Rui) - específicamente el /Domain/ model.
  2. Aplicar patrones arquitectónicos al modelo para realizar el sistema objetivo.

Hth.

 31
Author: sfinnie,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-07-25 15:04:13

La raíz del Diseño Basado en Dominios (DDD) y la Arquitectura Basada en Modelos (MDA) es la Ingeniería Basada en Modelos(MDE), también conocida como Desarrollo de Software Basado en Modelos (MDSD) si se limita al dominio de desarrollo de software. Ver Wikipedia: http://en.wikipedia.org/wiki/Model-driven_development

Todos los enfoques que caen bajo el paraguas de MDE tienen una cosa en común: un modelo. La forma en que se materializa este modelo depende del sabor específico del MDE.

MDA se considera excesivamente complejo. DDD es considerado por algunos como demasiado abstracto. Mis implementaciones MDE favoritas son DSM y ABSE (no incluidas en el artículo de Wikipedia).

 4
Author: Rui Curado,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-11-12 18:23:14

DDD se trata de abordar una solución de software desde una perspectiva empresarial con la intención de mantener el diseño lo más cerca posible del mundo real. Esto es más un arte que ingeniería.

MDA resuelve diferentes conjuntos de problemas. Más detalles aquí: http://xml.coverpages.org/OMG-MDAFAQfinal1.pdf

 3
Author: Aravind R. Yarram,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-11-12 18:47:16