Non essere in disaccordo con la maggior parte di quanto sopra, anche se forse vale la pena di espandersi un po '.
L'unico concetto più importante in DDD è quello di concentrarsi sul dominio del problema. Mettere da parte l'ossessione della tecnologia e concentrarsi principalmente sulla modellazione del problema che stai cercando di risolvere. Quindi metti in ajax, ORM, database, framework ecc. In background e assicurati prima di tutto di avere un modello completo e accurato del problema. (Certo, hai ancora bisogno dei componenti architettonici, ma sono esplicitamente asserviti al modello). DDD chiama questo "linguaggio Ubiquitous" - un modello espresso in termini sia di esperti di dominio che di sviluppatori che usano e comprendono. Un modello in cui i nomi di classi, metodi, ecc. Sono presi dal dominio del problema.
DDD non impone/come/si cattura quel modello, sebbene il libro implichi l'uso di un linguaggio OO per farlo.
MDA condivide la stessa nozione di modellazione del dominio del problema in primo luogo (il PIM, Platform-Independent Model). Al contrario di DDD, consiglia di creare quel modello con UML. Ma l'intento è lo stesso: comprendere il dominio del problema senza contaminarlo con problemi architettonici (software).
Il PSM di MDA (Platform-Specific Model) è in qualche modo analogo all'applicazione dei modelli architettonici in DDD (ad esempio aggregato, repository, ecc.). Anche in questo caso - pur differendo nelle specifiche - entrambi mirano a risolvere il problema della conversione di un modello di dominio problematico "puro" in un sistema software completo.
Quindi riassumendo, direi che sono simili in due modi:
- La centralità del modello (come dice @Rui) - in particolare il/modello/Domain.
- Applicazione di modelli architettonici al modello per realizzare il sistema di destinazione.
hth.
Potrebbe aiutare le persone a rispondere a questa domanda se si può fornire un po 'di background alla ricerca che hai già fatto. –