¿Qué es un ‘modelo de dominio’ en una aplicación de software?

Estrictamente hablando, es la representación del problema de dominio en consideración . Es independiente de conceptos como la persistencia de datos, la interfaz de usuario y otras tuberías técnicas.

El problema actual es que el modelo de dominio generalmente se considera una combinación de conceptos y servicios de bases de datos relacionales, en lugar de un modelo de objeto independiente que representa el dominio del problema. Las preocupaciones técnicas y la plomería son el foco, más que el complejo problema del sistema o sistema a representar. Esto no es importante si su problema es trivial o simple, o si su problema puede ser la adición, edición y eliminación de entidades de bases de datos. Toda una generación de nuevos programadores de software no conoce otra forma que este clavo para golpear con su martillo.

En un mundo donde los programadores solo pueden abordar un problema en términos de una interfaz de usuario o persistencia de datos, el modelo de dominio se convierte necesariamente en esos, junto con un poco de script de traducción / transformación en el medio.

Un modelo de dominio es una representación conceptual y visual (a menudo se muestra como un diagrama de objetos) que detalla todos los modelos (u objetos de datos) necesarios para admitir una aplicación. Con frecuencia, una representación del modelo de dominio también mostrará las relaciones entre los objetos de datos.

Por ejemplo, el modelo de dominio para una aplicación ToDo básica podría ser:

En este caso, hay dos modelos (u objetos) TODOLists y TODOEntries que comprenden el modelo de dominio.

En general, un modelo de dominio incorpora todo lo necesario para almacenar datos y admitir ciertos comportamientos en la interfaz de usuario.

Vea Modelo de dominio – Wikipedia para ver un ejemplo de un modelo de dominio más grande.