En una especificación de caso de uso, las precondiciones y los disparadores ayudan a definir cuándo puede comenzar la interacción. Aunque están relacionados con el inicio del caso de uso, no significan lo mismo.
Una precondición indica qué debe ser verdadero antes de iniciar. Un disparador indica qué evento pone en marcha el caso de uso. Distinguirlos evita ambigüedades y permite escribir flujos más claros.
Por ejemplo, para Solicitar turno, una precondición puede ser que el paciente esté registrado. El disparador puede ser que el paciente seleccione la opción de solicitar un nuevo turno.
Una precondición es una condición que debe cumplirse antes de que el caso de uso pueda comenzar correctamente. No es un paso del flujo, sino un estado previo que se asume verdadero.
Si la precondición no se cumple, el caso de uso no debería iniciar como está especificado, o debería ejecutarse otro caso de uso previo para preparar el contexto.
Un disparador es el evento que inicia el caso de uso. Puede ser una acción del actor, una señal de un sistema externo, una fecha programada, una condición del entorno o una decisión automática.
El disparador no describe todo el flujo; solo indica qué hecho hace que el caso de uso comience.
La precondición describe el estado necesario antes de comenzar. El disparador describe el evento que inicia la interacción. En Solicitar turno, que el paciente esté registrado puede ser una precondición; que el paciente elija solicitar un turno puede ser el disparador.
Algunos ejemplos de precondiciones son:
Estas condiciones describen un estado previo, no una acción que ocurre dentro del flujo principal.
Algunos ejemplos de disparadores son:
El disparador indica el hecho que inicia el caso de uso.
Un error frecuente es escribir como precondición algo que el sistema debe verificar durante el flujo. Si el sistema debe pedir un dato y validarlo, eso suele formar parte del flujo principal o de una excepción.
Por ejemplo, en Solicitar turno, "el horario seleccionado está disponible" no debería ser precondición si el sistema lo determina durante la búsqueda. Puede ser una validación dentro del flujo.
La precondición tampoco debe confundirse con el objetivo del caso de uso. "El paciente obtiene un turno reservado" no es una precondición; es un resultado esperado o postcondición.
La precondición se ubica antes del inicio. El objetivo se alcanza al finalizar correctamente.
El disparador más común es una acción del actor principal. Por ejemplo, el Paciente selecciona Solicitar turno o la Recepcionista elige Registrar turno presencial.
En estos casos, el disparador suele estar muy relacionado con la intención del actor. Aun así, conviene escribirlo de forma concreta para que el inicio del flujo quede claro.
No todos los casos de uso comienzan por una acción humana directa. Algunos se inician automáticamente por tiempo, eventos externos o condiciones del sistema.
Ejemplos:
Para el caso de uso Solicitar turno, podríamos documentar:
Esta redacción separa claramente el estado previo del evento que inicia la interacción.
Para el caso de uso Enviar recordatorio de turno, podríamos documentar:
En este ejemplo, el disparador no es una acción del paciente, sino un evento temporal.
La siguiente tabla resume la diferencia:
| Elemento | Pregunta que responde | Ejemplo |
|---|---|---|
| Precondición | ¿Qué debe ser verdadero antes de iniciar? | El paciente está registrado. |
| Disparador | ¿Qué evento inicia el caso de uso? | El paciente selecciona Solicitar turno. |
| Flujo principal | ¿Qué ocurre después de iniciado? | El sistema muestra horarios disponibles. |
| Postcondición | ¿Qué queda verdadero al finalizar? | El turno queda reservado. |
Para redactar buenas precondiciones, conviene:
Para redactar buenos disparadores, conviene:
Al documentar precondiciones y disparadores, suelen aparecer estos errores:
Las precondiciones y los disparadores permiten definir con precisión el inicio de un caso de uso. Las precondiciones explican qué debe estar preparado; el disparador explica qué evento pone en marcha la interacción.
Separar correctamente estos conceptos ayuda a escribir flujos más claros, detectar dependencias previas y preparar mejores pruebas. En el próximo tema estudiaremos postcondiciones y resultados observables.