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

Mapa conceptual sobre la Ingeniería de Software

A continuación se muestra un mapa conceptual que rescata los principales conceptos relacionados a la Ingeniería de Software como tema central. Agradezco tus comentarios y aportaciones, puedes sugerir otros conceptos que creas importantes relacionados a la Ingeniería de Software y comentarlo.

Modelo de Casos de Uso de Negocio

El Modelo de Casos de Uso de Negocio es un modelo aplicado por RUP (Rational Unified Process) como uno de los artefactos de la disciplina de Modelado de Negocio . Este modelo se usa en las primeras fases del desarrollo de software, principalmente en la fase de Inicio. Nos sirve para representar los procesos de negocio como casos de uso de negocio y su relación con los actores de negocio. Identificar los actores de negocio y los procesos de negocio con los que interactúa, es parte de la tarea de análisis del negocio que se debe realizar antes de pretender analizar los requisitos del sistema y diseñarlo.

Caso 1: MarketSoft y Procesos

El caso de estudio describe los procesos de negocio que se realizan en un SuperMarket. Por lo tanto, sirve de ejemplo para comprender el modelado de negocio usando el mapa de procesos, la jerarquía de los procesos y el diagrama de procesos en UML Business.