Caso de Uso "Tablero de Sprint"
SIGMA · 3-BYTE Team · Adrián Portillo, Glenda Flores, Franco Rosas
Laboratorio de Desarrollo de Software · UNPA-UARG
Caso de uso nuevo, agregado junto con Story Points y velocidad calculada. No existía en el corpus 2024. Ver verificación CU vs sistema.
Descripción
El caso de uso Tablero de Sprint tiene como propósito ofrecer una vista simple tipo Kanban de las historias de usuario asignadas a un sprint, agrupadas en tres columnas por estado (Pendiente, En progreso, Completada), con botones para mover cada historia a la columna anterior o siguiente. No implementa arrastrar y soltar (drag-and-drop); el movimiento es siempre por botón y siempre de a un paso (no se puede saltar de Pendiente a Completada directamente).
Mientras el sprint no esté cerrado, el actor puede mover libremente las historias entre estados desde el tablero. Una vez cerrado el sprint (ver CU12 - Gestión de Sprint), el tablero pasa a ser de solo lectura.
Especificación
| Caso de uso | Tablero de Sprint |
|---|---|
| Actores | Usuario con permiso de sistema Sprints (hoy: Administrador). |
| Tipo | Secundario: apoya a CU12 - Gestión de Sprint, no se accede de forma independiente. |
| Propósito | Ofrecer una vista de tablero por sprint donde se pueda ver y cambiar el estado de cada historia de usuario asignada, sin necesidad de entrar a modificarla una por una. |
| Resumen | El caso de uso se inicia cuando el actor presiona "Ver Tablero" desde el listado de sprints o desde el detalle de un sprint (sprint.ver.php). |
| Precondiciones | Haber ingresado al sistema con el permiso Sprints. Debe existir el sprint indicado por id. |
| Poscondiciones | El estado (historia_usuario.estado) de las historias movidas queda actualizado. La velocidad del sprint no se modifica hasta que este se cierre desde CU12. |
Flujo Principal
| Paso | Acción |
|---|---|
| 1 | El sistema despliega sprint_tablero.php?id={id_sprint}, con tres columnas: Pendiente, En progreso y Completada, cada una con la cantidad de historias entre paréntesis. |
| 2 | Cada columna muestra una tarjeta por historia asignada a ese sprint en ese estado, con: Título y Puntos. |
| 3 | Si el sprint no está cerrado, cada tarjeta muestra hasta dos botones: "← {estado anterior}" (si existe un estado anterior) y "{estado siguiente} →" (si existe un estado siguiente). |
| 4 | Si el sprint está cerrado, las tarjetas no muestran botones y se ve el badge "Sprint cerrado - Velocidad: {n} puntos" en el encabezado. |
| 5 | Si el actor presiona un botón de movimiento, el caso de uso continúa en el paso 1 del Subflujo 1 (Mover Historia). |
| 6 | El actor presiona "Volver al Sprint" para salir del tablero. |
| 7 | El caso de uso finaliza. |
Subflujo 1 — Mover Historia
| Paso | Acción |
|---|---|
| 1 | El actor presiona el botón de movimiento de una tarjeta (por ejemplo, "En progreso →"). |
| 2 | El formulario envía id_sprint, id_historia y nuevo_estado a sprint_tablero.mover.php. |
| 3 | Si el sprint está cerrado o nuevo_estado no es uno de los tres valores válidos (Excepción 1), el sistema redirige al tablero sin modificar nada. |
| 4 | Si el sprint no está cerrado y el estado es válido (Excepción 2), el sistema actualiza historia_usuario.estado para esa historia, validando que pertenezca al sprint indicado. |
| 5 | El sistema redirige de vuelta a sprint_tablero.php?id={id_sprint}, mostrando la historia en su nueva columna. |
| 6 | El caso de uso finaliza. |
Excepciones
| Excepción | Acción |
|---|---|
| 1 | Movimiento rechazado. Sprint cerrado o estado destino inválido: el sistema no ejecuta ningún UPDATE y vuelve al tablero tal como estaba. |
| 2 | Movimiento aceptado. El sistema ejecuta UPDATE historia_usuario SET estado = ? WHERE id = ? AND id_sprint = ? con consulta preparada. |
Diagramas Asociados
Diagrama de Casos de Uso
Diagrama de Secuencia — Mover Historia en el Tablero
Observaciones
- El tablero es de solo cambio de estado por botones, sin drag-and-drop, como pidió la cátedra para mantenerlo simple.
- Los estados solo se pueden mover de a un paso (Pendiente ↔ En progreso ↔ Completada); no hay botón para saltar directamente de Pendiente a Completada.
- El acceso es siempre desde
sprints.phposprint.ver.phpde un sprint puntual; no hay una pantalla que liste todos los tableros. - La velocidad del sprint no cambia al mover historias en el tablero; solo se calcula al cerrar el sprint desde CU12.