El diagrama de casos de uso muestra una vista general del sistema, pero no alcanza para explicar el comportamiento completo. Para describir con precisión qué ocurre en una funcionalidad se utiliza la especificación textual del caso de uso.
La especificación textual detalla el objetivo, los actores, las condiciones, el flujo principal, las alternativas, las excepciones y los resultados esperados. Es el documento que permite pasar de una elipse en un diagrama a una comprensión clara de cómo debe comportarse el sistema.
Este tipo de especificación es útil para analistas, usuarios, desarrolladores, testers y responsables del proyecto, porque convierte una funcionalidad en una descripción revisable y verificable.
Una especificación textual es una descripción ordenada de un caso de uso. Explica cómo interactúan el actor y el sistema para lograr un objetivo, qué condiciones deben cumplirse y qué resultados deben obtenerse.
No es una novela, ni una lista desordenada de comentarios. Debe tener una estructura clara para que diferentes personas puedan leerla, validarla y usarla como base de trabajo.
El diagrama permite ver que un actor participa en un caso de uso, pero no explica los detalles. Por ejemplo, una elipse llamada Solicitar turno no dice qué datos ingresa el paciente, cómo se valida la disponibilidad, qué ocurre si no hay horarios o cómo se confirma la reserva.
La especificación textual completa esa información. El diagrama ayuda a entender el alcance general; la especificación permite comprender el comportamiento concreto.
Una especificación textual suele organizarse como una ficha con campos definidos. No todas las organizaciones usan exactamente la misma plantilla, pero los campos más importantes suelen repetirse: identificador, nombre, actor principal, objetivo, precondiciones, flujo principal, flujos alternativos, excepciones y postcondiciones.
Una plantilla completa puede incluir los siguientes campos:
Un ejemplo básico para el caso de uso Solicitar turno podría ser:
Este ejemplo todavía no desarrolla todos los flujos, pero muestra cómo la especificación agrega información que el diagrama no contiene.
El flujo principal describe el camino normal o más esperado para completar el caso de uso. Se redacta como una secuencia de pasos numerados donde alternan acciones del actor y respuestas del sistema.
Ejemplo:
Los flujos alternativos describen variantes válidas del flujo principal. No son errores necesariamente; son caminos distintos que también permiten cumplir el objetivo o llegar a un resultado aceptable.
Por ejemplo, el paciente puede buscar por profesional en lugar de buscar por especialidad. Ese comportamiento puede documentarse como alternativa si modifica el camino normal de interacción.
Las excepciones describen problemas que impiden completar el caso de uso de la manera esperada o que requieren una respuesta especial del sistema.
Ejemplos en Solicitar turno:
Las precondiciones indican qué debe ser verdadero antes de iniciar el caso de uso. Las postcondiciones indican qué debe ser verdadero cuando termina correctamente.
Ejemplo:
| Elemento | Ejemplo |
|---|---|
| Precondición | El paciente está registrado y habilitado para solicitar turnos. |
| Postcondición | El turno queda reservado y ya no aparece como disponible. |
La especificación debe tener suficiente detalle para evitar ambigüedades, pero no debe convertirse en una descripción de implementación. No conviene incluir consultas SQL, nombres de clases, detalles de framework o decisiones internas que pertenecen al diseño técnico.
El nivel adecuado depende de la complejidad del caso de uso. Un caso simple puede requerir una especificación breve. Un proceso con reglas, excepciones e integraciones necesita más detalle.
La redacción debe ser precisa y fácil de revisar. Conviene usar frases cortas, evitar ambigüedades y separar claramente lo que hace el actor de lo que responde el sistema.
En lugar de escribir "se cargan los datos y se guarda", es mejor escribir "El paciente ingresa los datos solicitados" y luego "El sistema valida los datos y registra la reserva".
Una especificación textual bien escrita facilita la creación de pruebas. El flujo principal puede convertirse en pruebas de camino exitoso. Los flujos alternativos y excepciones pueden convertirse en pruebas adicionales.
Por ejemplo, si la especificación dice que el sistema debe informar cuando no hay horarios disponibles, debe existir una prueba que verifique ese comportamiento.
La especificación textual también ayuda a derivar y organizar requisitos funcionales. Cada comportamiento importante del sistema puede convertirse en un requisito verificable.
Por ejemplo, del caso de uso Solicitar turno pueden derivarse requisitos como mostrar horarios disponibles, impedir reservas duplicadas, registrar confirmación y enviar aviso al paciente.
Al escribir especificaciones textuales, suelen aparecer estos errores:
Antes de considerar completa una especificación, conviene revisar:
La especificación textual convierte un caso de uso en una descripción precisa del comportamiento esperado. Es el complemento natural del diagrama y una herramienta fundamental para reducir ambigüedades.
Cuando está bien escrita, permite validar requisitos con usuarios, orientar el diseño, implementar con mayor claridad y derivar pruebas. En el próximo tema estudiaremos con más detalle el identificador, el nombre, el resumen y el actor principal.