A medida que un dominio crece, aparece un problema frecuente: las mismas palabras no siempre significan lo mismo para todas las áreas. Un "paciente" puede tener un significado para admisión, otro para atención médica y otro para facturación. Un "turno" puede verse como disponibilidad en agenda, como atención pendiente en recepción o como prestación facturable en administración.
Un contexto delimitado permite separar esos significados. En lugar de forzar un único modelo enorme para todo el negocio, definimos límites donde un vocabulario y unas reglas tienen sentido claro.
Un contexto delimitado es un límite dentro del cual un modelo de dominio y su lenguaje ubicuo tienen un significado consistente. Dentro de ese contexto, los conceptos se interpretan de una manera determinada, con reglas y relaciones propias.
Por ejemplo, en el contexto de Turnos, el concepto Turno puede enfocarse en agenda, disponibilidad, reserva y cancelación. En el contexto de Facturación, puede interesar como prestación cobrada o pendiente de cobro.
En dominios pequeños, un único modelo puede ser suficiente. Pero en dominios medianos o grandes, intentar que un solo modelo represente todos los significados suele generar confusión. Los conceptos acumulan atributos, reglas y relaciones que pertenecen a áreas distintas.
El resultado puede ser un modelo demasiado grande, difícil de comprender y lleno de excepciones. Separar contextos permite que cada área tenga un modelo más simple y preciso.
Un contexto delimitado es útil cuando la misma palabra cambia de significado. Por ejemplo, "cliente" puede ser quien compra en ventas, quien recibe soporte en atención al cliente y quien debe pagar en facturación. Cada área puede necesitar datos, reglas y estados diferentes.
En un sistema de salud, "paciente" puede significar persona registrada para atención, titular de cobertura, responsable de pago o persona incluida en una historia clínica. Si mezclamos todos esos significados, el modelo se vuelve ambiguo.
El lenguaje ubicuo no siempre es global. Es ubicuo dentro de un contexto. Esto significa que todas las personas que trabajan dentro de ese límite deberían usar los mismos términos con el mismo significado.
Fuera del contexto, el mismo término puede tener otro sentido. Por eso, una palabra no debe analizarse sola: siempre conviene preguntar en qué contexto se está usando.
En el contexto de Turnos, los conceptos principales pueden ser Profesional, Agenda, Franja horaria, Turno, Reserva, Cancelación, Confirmación y Ausencia. Las reglas se enfocan en disponibilidad, superposición de horarios, estados del turno, anticipación para cancelar y asignación de pacientes.
Este contexto no necesita modelar todos los detalles contables de una prestación. Puede saber que un turno fue atendido, pero no necesariamente calcular impuestos, facturas o pagos.
En el contexto de Atención médica, el foco puede estar en Consulta, Diagnóstico, Tratamiento, Historia clínica, Profesional de salud y Evolución. Aunque se relacione con turnos, el significado principal cambia: lo importante ya no es solo reservar una franja, sino registrar atención clínica.
Un Turno atendido puede convertirse en una Consulta realizada, pero no son exactamente el mismo concepto. Pertenecen a contextos distintos y responden a reglas diferentes.
En Facturación, los conceptos pueden ser Prestación facturable, Factura, Cobertura, Importe, Pago, Deuda y Comprobante. Un turno puede importar solo si genera una prestación que debe cobrarse.
Este contexto no necesita saber todos los detalles de agenda o diagnóstico. Necesita saber qué se cobra, a quién, con qué cobertura, con qué importe y bajo qué reglas administrativas.
Definir un contexto implica decidir qué queda dentro y qué queda fuera. Dentro están los conceptos, reglas y vocabulario que se modelan con detalle. Fuera quedan otros modelos que pueden relacionarse, pero no se mezclan.
El límite no siempre coincide con una pantalla, una tabla, un módulo técnico o un equipo. Puede coincidir, pero debe definirse principalmente por significado del negocio.
Algunas señales indican que conviene separar contextos:
Los contextos no viven aislados. Pueden intercambiar información, eventos o referencias. Por ejemplo, el contexto de Turnos puede informar que un Turno fue atendido, y el contexto de Facturación puede usar ese hecho para crear una Prestación facturable.
La clave es no mezclar modelos internos. Cada contexto traduce la información recibida a sus propios conceptos y reglas.
La siguiente tabla muestra cómo cambia el significado según el contexto:
| Término | Contexto | Significado principal |
|---|---|---|
| Turno | Turnos | Reserva de una franja horaria con un profesional. |
| Turno | Atención médica | Origen de una consulta o atención realizada. |
| Turno | Facturación | Posible prestación facturable. |
| Paciente | Turnos | Persona que reserva o recibe un turno. |
| Paciente | Facturación | Persona asociada a una deuda, cobertura o comprobante. |
Estas preguntas ayudan a descubrir contextos delimitados:
Al trabajar con contextos delimitados, suelen aparecer estos errores:
Los contextos delimitados ayudan a manejar dominios complejos sin forzar un modelo único y ambiguo. Permiten que cada área del negocio use conceptos y reglas con significado claro, mientras se definen relaciones controladas con otros contextos.
En el próximo tema estudiaremos los mapas de contexto, que permiten representar relaciones entre áreas, equipos y modelos.