Diseño impulsado por dominios


El diseño dirigido por dominios ( DDD ) es un enfoque de diseño de software [1] que se centra en el software de modelado para que coincida con un dominio de acuerdo con la información proporcionada por los expertos de ese dominio. [2]

Un concepto es que la estructura y el lenguaje del código de software (nombres de clase , métodos de clase , variables de clase ) deben coincidir con el dominio empresarial . Por ejemplo, si un software procesa solicitudes de préstamos, puede tener clases como LoanApplication y Customer, y métodos como AcceptOffer y Withdraw.

Las críticas al diseño impulsado por dominios argumentan que los desarrolladores generalmente deben implementar una gran cantidad de aislamiento y encapsulación para mantener el modelo como una construcción pura y útil. Si bien el diseño impulsado por dominios brinda beneficios como la capacidad de mantenimiento, Microsoft lo recomienda solo para dominios complejos donde el modelo brinda beneficios claros en la formulación de una comprensión común del dominio. [4]

Lo más importante es el dominio , el área temática a la que el usuario aplica un programa es el dominio del software. El dominio de un software gobierna su contexto , el escenario en el que aparece una palabra o declaración que determina su significado. A partir de esto, los desarrolladores construyen un modelo de dominio : un sistema de abstracciones que describe aspectos seleccionados de un dominio y puede usarse para resolver problemas relacionados con ese dominio.

Estos aspectos del diseño impulsado por dominios tienen como objetivo fomentar un lenguaje ubicuo, lo que significa que el modelo de dominio debe formar un lenguaje común compartido por los expertos en el dominio para describir los requisitos del sistema, los usuarios comerciales, los patrocinadores y los desarrolladores.

En el diseño impulsado por dominios, la capa de dominio es una de las capas comunes en una arquitectura multicapa orientada a objetos .