No está en desacuerdo con la mayoría de las anteriores, aunque tal vez valga la pena ampliar un poco.
El concepto más importante en DDD es centrarse en el dominio del problema. Poner la obsesión de la tecnología a un lado y concentrarse principalmente en modelar el problema que estás tratando de resolver. Así que pon a un lado los ajax, los ORM, las bases de datos, los marcos, etc. en su lugar y asegúrate primero de tener un modelo completo y preciso del problema. (Por supuesto, todavía necesita los componentes arquitectónicos, pero están subordinados explícitamente al modelo). DDD llama a esto "Lenguaje ubicuo", un modelo expresado en términos que los expertos en el dominio 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/captura ese modelo, aunque el libro implica usar un lenguaje OO para hacerlo.
MDA comparte esa 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: comprender el dominio del problema sin mancharlo con preocupaciones arquitectónicas (de software).
MDA's PSM (Platform-Specific Model) es algo similar a la aplicación de los patrones arquitectónicos en DDD (por ejemplo, agregado, repositorio, etc.). De nuevo, aunque diferentes en detalles, ambos intentan resolver el problema de convertir un modelo de dominio de problema "puro" en un sistema de software completo.
Así que resumiendo, yo diría que son similares en dos formas:
- La centralidad del modelo (como dice @Rui) - específicamente el/dominio/modelo.
- Aplicación de patrones arquitectónicos al modelo para realizar el sistema de destino.
hth.
Podría ayudar a las personas a responder esta pregunta si pudiera proporcionar un poco de información básica sobre la investigación que ya ha realizado. –