Para construir un modelo de dominio primero debemos descubrir qué conceptos existen en el negocio. Esos conceptos no aparecen mágicamente: se obtienen escuchando a los expertos, leyendo documentos, revisando requerimientos, analizando casos de uso, observando procesos reales y estudiando ejemplos concretos.
Descubrir conceptos del dominio no significa copiar todos los sustantivos que encontramos. Significa identificar qué elementos tienen significado para el negocio, qué reglas dependen de ellos, cómo se relacionan y qué papel cumplen dentro del sistema que se desea construir.
El conocimiento del dominio puede obtenerse de varias fuentes. Ninguna fuente aislada suele ser suficiente. Las entrevistas permiten escuchar explicaciones y detectar vocabulario. Los documentos muestran reglas, formularios, reportes y procedimientos. La observación permite ver cómo se trabaja realmente. Los sistemas existentes revelan datos y procesos ya implementados, aunque no siempre estén bien modelados.
El analista debe combinar estas fuentes y contrastarlas. Cuando dos fuentes contradicen algo, aparece una oportunidad para aprender más sobre el dominio.
Las entrevistas son una de las técnicas más importantes para descubrir conceptos. En ellas, el equipo conversa con personas que conocen el trabajo real: usuarios, responsables de área, administradores, operadores, especialistas o cualquier participante que entienda reglas y excepciones del negocio.
Una buena entrevista no se limita a preguntar "qué pantallas necesita". Debe buscar significado: qué conceptos existen, cómo se usan, qué estados tienen, qué reglas se aplican, qué excepciones ocurren y qué decisiones toman las personas.
Algunas preguntas ayudan a descubrir conceptos y reglas:
Las respuestas suelen revelar términos candidatos para el modelo de dominio.
Durante una entrevista, es importante prestar atención al vocabulario que usan los expertos. Las palabras que repiten con frecuencia suelen indicar conceptos relevantes. También conviene detectar frases como "siempre que", "salvo que", "depende de", "no se permite", "cuando ocurre" o "antes de". Estas expresiones suelen anunciar reglas de negocio.
Por ejemplo, si un experto dice: "Un paciente puede cancelar un turno, pero si lo hace fuera de término queda registrada una inasistencia", aparecen varios conceptos y reglas posibles: Paciente, Turno, Cancelación, Fuera de término e Inasistencia.
El vocabulario natural es una entrada valiosa para construir el lenguaje ubicuo visto en el tema anterior.
Los documentos existentes son otra fuente importante. Pueden incluir formularios, planillas, reportes, contratos, reglamentos, manuales, facturas, comprobantes, correos, políticas internas, procedimientos y documentación de sistemas anteriores.
Estos materiales suelen contener nombres de conceptos, atributos, estados, reglas y relaciones. Por ejemplo, un formulario de reserva puede mostrar datos de paciente, profesional, especialidad, fecha, hora, estado y observaciones. Un reglamento puede indicar restricciones sobre cancelaciones o prioridades.
Sin embargo, los documentos deben analizarse con cuidado. Pueden estar desactualizados, usar nombres antiguos o reflejar una solución técnica anterior en lugar del dominio real.
Una técnica inicial consiste en revisar documentos y marcar términos relevantes. Los sustantivos suelen sugerir conceptos, atributos o documentos del dominio. Los verbos suelen sugerir acciones, procesos o eventos. Las frases condicionales suelen sugerir reglas.
Por ejemplo, en la frase "El paciente confirma el turno hasta 24 horas antes de la atención", podemos detectar Paciente, Turno, Confirmación, Atención y una regla de anticipación. Luego habrá que decidir si Confirmación es una entidad, un evento, un estado o simplemente una acción dentro de un proceso.
La extracción inicial produce candidatos, no verdades definitivas. Cada candidato debe validarse.
A veces lo que las personas dicen que hacen no coincide exactamente con lo que ocurre en la práctica. La observación permite ver el trabajo real: cómo se completan formularios, qué atajos se usan, qué decisiones se toman, qué problemas aparecen y qué información se consulta.
En un sistema de turnos, observar una recepción puede revelar que existen sobreturnos, bloqueos de agenda, pacientes que llaman por teléfono, turnos reservados por familiares, cancelaciones de último momento o reglas informales para profesionales específicos.
La observación es especialmente útil para descubrir excepciones que no aparecen en un proceso idealizado.
Cuando ya existe un sistema, sus pantallas, reportes, bases de datos y manuales pueden aportar información. Pero hay que tener cuidado: un sistema existente no siempre refleja bien el dominio. Puede contener decisiones técnicas antiguas, nombres incorrectos, duplicaciones o soluciones improvisadas.
El sistema existente sirve como pista, no como autoridad absoluta. Si una tabla se llama clientes, todavía debemos preguntar qué significa cliente en el negocio. Si una pantalla muestra "estado = 3", debemos descubrir qué estado representa y qué reglas tiene asociadas.
Los ejemplos concretos ayudan a validar si entendimos bien un concepto. Un experto puede explicar qué es un turno, pero los ejemplos muestran situaciones reales: un turno reservado, un turno cancelado, un turno reasignado, un paciente que no asiste, un profesional ausente o una franja bloqueada por mantenimiento.
Los contraejemplos son igual de importantes. Sirven para delimitar el concepto. Por ejemplo: ¿una consulta telefónica sin horario asignado es un turno?, ¿un bloqueo de agenda es un turno?, ¿una solicitud pendiente sin confirmación es una reserva?, ¿un paciente sin usuario registrado puede tener turno?
Estas preguntas ayudan a evitar modelos demasiado amplios o demasiado pobres.
Después de revisar entrevistas y documentos, conviene armar una lista inicial de candidatos a conceptos. Esta lista puede contener entidades, objetos de valor, estados, eventos, documentos, roles y reglas. No es necesario clasificar todo desde el primer momento.
Para un sistema de turnos, una lista inicial podría ser:
Luego se revisa cada término para decidir si realmente pertenece al dominio, si es sinónimo de otro, si necesita una definición más precisa o si pertenece a una etapa técnica posterior.
No todo término debe convertirse en concepto del modelo. Algunos criterios útiles son:
Una dificultad frecuente es decidir si un término debe ser concepto independiente, atributo de otro concepto o valor simple. La respuesta depende del significado y de las reglas asociadas.
Por ejemplo, "especialidad" podría ser un simple texto en un sistema pequeño, pero en un dominio médico puede tener reglas, profesionales asociados, duración de atención, requisitos, nomenclatura y disponibilidad. En ese caso, conviene modelarla como concepto. En cambio, un color decorativo de una pantalla no pertenece al dominio.
Si un término tiene identidad, reglas, relaciones o comportamiento relevante, probablemente merece aparecer como concepto. Si solo describe una característica simple de otro elemento, quizá sea un atributo.
La lista de conceptos debe validarse con expertos del dominio. No alcanza con que el equipo técnico la considere razonable. Los expertos deben reconocer los términos, corregir definiciones, señalar diferencias y agregar excepciones.
Una forma práctica de validar es presentar el modelo con ejemplos: "Este paciente reserva este turno con este profesional en esta franja horaria. Si cancela fuera de término, se registra una inasistencia". Si el experto detecta que algo no coincide con la realidad, el modelo debe ajustarse.
Al descubrir conceptos del dominio, suelen aparecer estos errores:
Descubrir conceptos del dominio es una tarea de investigación y análisis. Requiere escuchar, leer, observar, comparar fuentes y validar con ejemplos. Las entrevistas y documentos son puntos de partida valiosos, pero deben complementarse con preguntas profundas y revisión continua.
En este tema vimos cómo identificar candidatos a conceptos y cómo decidir si realmente pertenecen al modelo de dominio. En el próximo tema estudiaremos cómo separar sustantivos, verbos y reglas para distinguir conceptos, acciones y políticas del negocio.