Modelado específico de dominio


El modelado específico de dominio ( DSM ) es una metodología de ingeniería de software para diseñar y desarrollar sistemas, como software de computadora . Implica el uso sistemático de un lenguaje específico de dominio para representar las diversas facetas de un sistema.

Los lenguajes de modelado de dominio específico tienden a admitir abstracciones de mayor nivel que los lenguajes de modelado de propósito general , por lo que requieren menos esfuerzo y menos detalles de bajo nivel para especificar un sistema determinado.

El modelado específico del dominio a menudo también incluye la idea de generación de código : automatizar la creación de código fuente ejecutable directamente desde los modelos de lenguaje específicos del dominio. Estar libre de la creación manual y el mantenimiento del código fuente significa que el lenguaje específico del dominio puede mejorar significativamente la productividad del desarrollador. [1] La confiabilidad de la generación automática en comparación con la codificación manual también reducirá la cantidad de defectos en los programas resultantes, mejorando así la calidad.

El lenguaje específico de dominio difiere de los intentos anteriores de generación de código en las herramientas CASE de la década de 1980 o las herramientas UML de la década de 1990. En ambos, los proveedores de herramientas crearon los generadores de código y los lenguajes de modelado. [ cita requerida ] Si bien es posible que un proveedor de herramientas cree un lenguaje y generadores específicos de dominio, es más normal que ocurra un lenguaje específico de dominio dentro de una organización. Uno o unos pocos desarrolladores expertos crean el lenguaje de modelado y los generadores, y el resto de los desarrolladores los utilizan.

Tener el lenguaje de modelado y el generador creado por la organización que los utilizará permite un ajuste perfecto con su dominio exacto y en respuesta a los cambios en el dominio.

Los lenguajes específicos de dominio generalmente pueden cubrir una variedad de niveles de abstracción para un dominio en particular. Por ejemplo, un lenguaje de modelado específico de dominio para teléfonos móviles podría permitir a los usuarios especificar abstracciones de alto nivel para la interfaz de usuario , así como abstracciones de bajo nivel para almacenar datos como números de teléfono o configuraciones. Del mismo modo, un lenguaje de modelado específico de dominio para servicios financieros podría permitir a los usuarios especificar abstracciones de alto nivel para los clientes, así como abstracciones de bajo nivel para implementar algoritmos de negociación de acciones y bonos. El modelado específico de dominio también es útil para razonar sobre artefactos de software de bajo nivel. [2]