Los casos de uso describen interacciones entre actores y sistema. El modelado de dominio describe los conceptos importantes del negocio y las relaciones entre ellos. Ambos enfoques se complementan.
Un caso de uso puede revelar conceptos como Paciente, Turno, Médico, Agenda, Especialidad, Sede y Confirmación. El modelo de dominio organiza esos conceptos y ayuda a entender cómo se relacionan.
Trabajar con ambos permite evitar especificaciones superficiales. Los casos de uso muestran comportamiento; el modelo de dominio muestra el vocabulario y la estructura conceptual del problema.
El modelado de dominio consiste en identificar conceptos relevantes del negocio, sus atributos importantes y sus relaciones. No se trata todavía de diseñar tablas de base de datos ni clases de implementación, sino de comprender el problema.
Por ejemplo, en un sistema de turnos médicos, el dominio incluye pacientes, profesionales, especialidades, agendas, turnos, sedes y horarios disponibles.
Los casos de uso ayudan a descubrir conceptos del dominio porque describen acciones, datos, reglas y resultados. Al leer el flujo principal, las alternativas y las reglas, aparecen sustantivos y relaciones que deben entenderse.
Por ejemplo, si el caso de uso dice "el paciente selecciona un profesional y un horario disponible", aparecen al menos tres conceptos: Paciente, Profesional y Horario disponible.
Los conceptos del dominio pueden descubrirse leyendo cuidadosamente los casos de uso. Los sustantivos suelen indicar posibles conceptos; los verbos y reglas ayudan a entender relaciones; las restricciones muestran condiciones importantes del negocio.
En Solicitar turno, pueden aparecer conceptos como:
Estos conceptos pueden formar parte del modelo de dominio si son relevantes para comprender el negocio.
El modelo de dominio no solo enumera conceptos. También muestra cómo se relacionan.
Ejemplos:
Muchas reglas de negocio se entienden mejor cuando existe un modelo de dominio. Por ejemplo, la regla "un médico no puede tener dos turnos en el mismo horario" depende de entender Médico, Turno y Horario.
El modelo de dominio ayuda a precisar esas reglas y a evitar términos ambiguos.
Un beneficio importante del modelado de dominio es construir un vocabulario común. Si usuarios, analistas y desarrolladores usan las mismas palabras con el mismo significado, se reducen errores de comunicación.
Por ejemplo, si "profesional", "médico" y "prestador" se usan como sinónimos o con diferencias, el equipo debe aclararlo. Esa decisión afecta casos de uso, reglas, datos y pantallas.
El modelo de dominio no es necesariamente el modelo de base de datos. Puede inspirar el diseño de datos, pero su objetivo principal es comprender conceptos del negocio.
Una base de datos incluye decisiones técnicas como claves, índices, tablas intermedias y optimizaciones. El modelo de dominio se concentra en significado y relaciones conceptuales.
El modelo de dominio tampoco es automáticamente un diagrama de clases de implementación. Algunos conceptos del dominio pueden convertirse en clases, pero otros pueden representarse de otra manera en el diseño.
La prioridad del modelo de dominio es entender el problema, no definir la solución técnica final.
Para extraer conceptos, se puede seguir este método:
Fragmento del caso de uso:
Conceptos posibles: Paciente, Especialidad, Fecha, Profesional, Horario disponible, Reserva, Turno y Confirmación.
Una tabla inicial de conceptos puede ayudar antes de dibujar el modelo:
| Concepto | Significado | Relaciones posibles |
|---|---|---|
| Paciente | Persona que solicita atención médica. | Tiene turnos. |
| Turno | Reserva de atención en fecha y horario determinados. | Corresponde a un paciente y a un profesional. |
| Profesional | Persona que atiende consultas médicas. | Tiene agenda y especialidades. |
| Agenda | Organización de disponibilidad de un profesional. | Contiene horarios disponibles o bloqueados. |
| Especialidad | Área médica de atención. | Puede estar asociada a profesionales. |
Los casos de uso también ayudan a descubrir atributos de los conceptos. Si el flujo necesita mostrar fecha, hora, sede y profesional, esos datos probablemente son atributos o relaciones importantes del Turno.
Sin embargo, no todos los datos de una pantalla deben convertirse automáticamente en atributos del dominio. Hay que distinguir información esencial del negocio de datos puramente visuales o temporales.
Algunos casos de uso muestran estados importantes. Por ejemplo, un Turno puede estar solicitado, confirmado, cancelado, ausente o atendido.
Estos estados pueden aparecer en flujos, reglas y postcondiciones. Identificarlos ayuda a modelar correctamente el ciclo de vida de los conceptos.
El modelo de dominio se construye de manera iterativa. Al analizar nuevos casos de uso, pueden aparecer conceptos nuevos o relaciones que obligan a ajustar el modelo.
Esto es normal. El modelo mejora a medida que se entienden mejor los procesos y reglas del negocio.
Al relacionar casos de uso y dominio, suelen aparecer estos errores:
Antes de cerrar una versión del modelo de dominio, conviene revisar:
Los casos de uso y el modelado de dominio se complementan. Los casos de uso muestran cómo se usa el sistema; el modelo de dominio ayuda a comprender los conceptos que hacen posible ese comportamiento.
Cuando ambos se mantienen coherentes, el análisis gana claridad y el diseño posterior tiene una base más sólida. En el próximo tema estudiaremos la relación entre casos de uso y diseño de clases, servicios y componentes.