23. Contextos delimitados: separar significados según el área del negocio

23.1 Introducción

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.

23.2 Imagen conceptual de contextos delimitados

Contextos delimitados separando significados de conceptos del dominio según áreas del negocio como turnos, atención médica y facturación

23.3 Qué es un contexto delimitado

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.

Un contexto delimitado responde: ¿en qué parte del negocio este vocabulario y este modelo tienen este significado?

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.

23.4 Por qué no alcanza un único modelo

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.

23.5 El mismo término con distintos significados

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.

23.6 Lenguaje ubicuo dentro de un contexto

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.

23.7 Ejemplo: contexto de Turnos

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.

23.8 Ejemplo: contexto de Atención médica

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.

23.9 Ejemplo: contexto de Facturación

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.

23.10 Límites del contexto

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.

23.11 Señales de que hacen falta contextos

Algunas señales indican que conviene separar contextos:

  • La misma palabra genera discusiones porque distintas áreas la interpretan diferente.
  • Un concepto acumula demasiados atributos y reglas no relacionadas.
  • Un modelo se vuelve difícil de explicar a expertos de un área específica.
  • Los cambios de un área afectan injustificadamente a otras.
  • Hay procesos del negocio con vocabularios y objetivos claramente distintos.
  • Las reglas parecen contradictorias, pero en realidad pertenecen a contextos diferentes.

23.12 Relaciones entre 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.

23.13 Tabla de ejemplos

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.

23.14 Preguntas para delimitar contextos

Estas preguntas ayudan a descubrir contextos delimitados:

  • ¿Qué áreas usan este término y con qué significado?
  • ¿Qué reglas pertenecen claramente a esta área?
  • ¿Qué conceptos no necesita conocer este contexto en detalle?
  • ¿Qué información debe intercambiarse con otros contextos?
  • ¿Qué cambios deberían quedar aislados dentro de este límite?
  • ¿Qué expertos del negocio validan este modelo?
  • ¿El lenguaje ubicuo es consistente dentro de este contexto?

23.15 Errores frecuentes

Al trabajar con contextos delimitados, suelen aparecer estos errores:

  • Forzar un único modelo para todo el negocio.
  • Separar contextos solo por tecnología o tablas, no por significado.
  • Usar el mismo término en varios contextos sin aclarar diferencias.
  • Duplicar datos sin entender qué significado tienen en cada contexto.
  • Mezclar reglas de facturación, agenda y atención médica en una sola entidad.
  • No definir cómo se comunican los contextos entre sí.
  • No validar cada contexto con los expertos adecuados.

23.16 Qué debes recordar de este tema

  • Un contexto delimitado define dónde un modelo y un lenguaje tienen significado consistente.
  • La misma palabra puede significar cosas distintas en áreas diferentes.
  • No siempre conviene construir un único modelo para todo el negocio.
  • El lenguaje ubicuo funciona dentro de un contexto específico.
  • Cada contexto debe tener reglas, conceptos y expertos claramente identificados.
  • Los contextos pueden comunicarse sin mezclar sus modelos internos.
  • Separar contextos reduce ambigüedad y mejora la evolución del sistema.

23.17 Conclusión

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.