Ir al contenido principal

El Modelo de Dominio


Cuando se va a desarrollar un software es esencial estudiar y analizar el problema que se desea resolver. Este problema puede estar enfocado por ejemplo a la automatización de un proceso de negocio de alguna empresa. El software a desarrollar seguramente permitirá registrar información que necesite el proceso de negocio y generar resultados de valor para sus usuarios. También deberá permitir validar o hacer cumplir muchas reglas de negocio. Por lo tanto, los ingenieros de software necesitan usar algunas técnicas que les ayuden a entender mejor la problemática que están analizando antes de iniciar con la implementación del software. 


Una de estas técnicas es elaborar modelos conceptuales que representan los conceptos y sus relaciones que participan en el contexto de estudio o dominio de problema. Los conceptos se entienden como las entidades de información que representan objetos físicos o lógicos del dominio de problema. Para elaborar un modelo conceptual se usa el diagrama de clases de UML en donde se deben representar sólo el nombre de las clases y sus atributos junto con las relaciones entre clases, pero no las operaciones de las clases. El RUP como metodología de desarrollo de software recomienda el uso de esta técnica y lo define como el Modelo de Dominio. Por lo tanto, un modelo de dominio es un diagrama de clases UML que no representa un diseño de software si no un modelo conceptual.

El modelo de dominio sirve para:
  • Identificar y representar conceptos del dominio de problema.
  • Establecer y entender las relaciones entre los conceptos.
  • Identificar atributos de cada concepto.
  • Representar entidades de negocio en el modelado de procesos.
  • Apoyar en el análisis de los requisitos.
  • Elaborar un diccionario de datos.
  • Elaborar un glosario de términos.
  • Evolucionar hacia un modelo de diseño y modelo de datos.

Para que el ingeniero de software pueda elaborar un modelo de dominio se necesita de la colaboración de un experto del dominio. Este experto del dominio deberá ser alguien que conoce muy bien la problemática que se está analizando o el proceso de negocio que se desea automatizar. Gracias a la colaboración del experto del dominio se podrá elaborar buenos modelos conceptuales y evolucionar hacia un adecuado modelo de diseño que finalmente concluirá con su implementación del software.

La elaboración del modelo de dominio puede iniciar desde la primera fase del desarrollo del proyecto y ser refinado durante la fase siguiente. En RUP se puede trabajar con este modelo en la fase de inicio y la fase de elaboración. En sí, este modelo debe servir de inspiración para el modelo de diseño en las primeras fases y no se necesita que se siga actualizando o refinando en todas las fases. Cuando ya se tenga un modelo de diseño se debe dejar de lado el modelo de dominio y seguir evolucionado el software sólo con el modelo de diseño.

Por último, se puede aplicar el enfoque Domain Driven Design (DDD) para el desarrollo de software de dominios complejos y ya en la etapa de diseño e implementación definir una Arquitectura de software basado en un patrón N-Capas con orientación al Dominio o también llamado N-Capas DDD.

En la próxima publicación se presentará un ejemplo de modelo de dominio.


Gracias por visitar este blog y espero sus comentarios.

Comentarios

  1. Cuando habla de un experto en el dominio, ¿Quien podría ser la persona ideal? o ¿Como identificarías a esa persona?

    ResponderEliminar
    Respuestas
    1. Hola, el experto en el Dominio es aquel que conoce del proceso de negocio que se está analizando, es quien domina el tema o lo que se necesita para el Sistema que se desea desarrollar. Por lo general es un usuario del negocio, pero el de mayor conocimiento del tema o contexto de problema. Por ejemplo, si se desea desarrollar un Sistema para la Gestión de Contabilidad de un negocio, entonces el experto del dominio seguro será el Contador.

      Saludos.

      Eliminar

Publicar un comentario

Gracias por comentar.

Entradas populares de este blog

Técnicas para elaborar el Modelo de Dominio

El Modelo de Dominio definido en la publicación anterior nos describe la importancia de utilizarlo como artefacto en un proceso de desarrollo de software. Ahora describiremos algunas técnicas que se pueden usar para poderlo elaborar.

Caso 2: MarketSoft y Actividades

El caso de estudio describe en detalle el proceso de gestionar venta para el SuperMarket. Por lo tanto, sirve de ejemplo para comprender el modelado de negocio usando el diagrama de actividad en UML.