Caso de Uso "CU12 - Gestión de Sprint"
SIGMA · 3-BYTE Team · Adrián Portillo, Glenda Flores, Franco Rosas
Laboratorio de Desarrollo de Software · UNPA-UARG
No había especificación previa. El PDF prueba-cu11 corresponde a este CU (Sprint no es CU11; CU11 es Iteraciones de PCU). Ver verificación CU vs sistema.
Descripción
El caso de uso CU12 - Gestión de Sprint tiene como propósito ofrecer la funcionalidad necesaria para la creación, consulta, modificación, eliminación y cierre de sprints dentro de un proyecto cuyo tipo de estimación es PHU. El actor selecciona la opción correspondiente sobre el listado de sprints del proyecto y cada acción sigue su propio subflujo.
Un sprint en SIGMA es un registro con fecha de inicio, fecha de fin, estado, una velocidad estimada manual (opcional) y una velocidad calculada. La velocidad calculada se obtiene automáticamente al cerrar el sprint, sumando los puntos de historia (puntos_historia) de las historias en estado completada asignadas a ese sprint. Una vez cerrado, el sprint queda bloqueado: no se puede volver a editar su velocidad ni su estado a mano, y el tablero (ver CU del tablero) deja de permitir mover historias.
Especificación
| Caso de uso | CU12 - Gestión de Sprint |
|---|
| Actores | Usuario con permiso de sistema Sprints (hoy: Administrador). |
| Tipo | Primario: los casos primarios de uso representan los procesos comunes más importantes. |
| Propósito | Ofrecer la funcionalidad necesaria para crear, modificar, eliminar y consultar sprints de un proyecto PHU. |
| Resumen | El caso de uso se inicia cuando el actor ingresa a "Modificar Proyecto" de un proyecto con tipo de estimación PHU y presiona el botón "Gestionar Sprints", que abre el listado de sprints del proyecto. |
| Precondiciones | Haber ingresado al sistema con el permiso Sprints. Debe existir un proyecto con tipo_estimacion = 'PHU'. Para modificar o eliminar un sprint, este debe existir previamente en el sistema. |
| Poscondiciones | El sprint queda creado, modificado, cerrado o eliminado en la tabla sprint y el listado refleja el cambio. Si se cerró, velocidad_calculada queda fija y cerrado = 1. |
Flujo Principal
| Paso | Acción |
|---|
| 1 | El sistema despliega la pantalla sprints.php?id_proyecto=X, que contiene el listado de sprints del proyecto con: ID Proyecto, Estado (y badge "Cerrado" si corresponde), Velocidad (estimada o calculada) y Opciones. Sobre el listado: "Nuevo Sprint". Debajo: "Volver" al proyecto. |
| 2 | El actor presiona alguno de los botones: Nuevo Sprint, Ver detalle, Tablero, Modificar o Eliminar. |
| 3 | Si el actor selecciona "Nuevo Sprint", el caso de uso continúa en el paso 1 del Subflujo 1 (Crear Sprint). |
| 4 | Si el actor selecciona "Ver detalle", el caso de uso continúa en el paso 1 del Subflujo 2 (Ver Sprint). |
| 5 | Si el actor selecciona "Tablero", el caso de uso continúa en el Tablero de Sprint. |
| 6 | Si el actor selecciona "Modificar", el caso de uso continúa en el paso 1 del Subflujo 3 (Modificar Sprint). |
| 7 | Si el actor selecciona "Eliminar", el caso de uso continúa en el paso 1 del Subflujo 4 (Eliminar Sprint). |
| 8 | Si desde "Ver detalle" el actor selecciona "Cerrar Sprint" (disponible mientras el sprint no esté cerrado), el caso de uso continúa en el paso 1 del Subflujo 5 (Cerrar Sprint). |
Subflujo 1 — Crear Sprint
| Paso | Acción |
|---|
| 1 | El sistema despliega sprint.crear.php con el formulario: Fecha de Inicio (fecha, obligatorio), Fecha de Fin (fecha, obligatorio), Velocidad estimada (número, opcional, manual), Estado (lista: Planificado / En Progreso / Completado; por defecto Planificado). El campo id_proyecto viaja oculto. Botón "Crear Sprint". |
| 2 | El actor completa el formulario y presiona "Crear Sprint". |
| 3 | Si la operación es exitosa (Excepción 1), el sistema inserta el registro en sprint con el id_proyecto recibido. |
| 4 | Si la operación no es exitosa (Excepción 2), el sistema muestra el mensaje de error correspondiente. |
| 5 | El caso de uso finaliza. |
Subflujo 2 — Ver Sprint
| Paso | Acción |
|---|
| 1 | El sistema despliega sprint.ver.php en solo lectura, con: ID del Proyecto, Fecha de Inicio, Fecha de Fin, Estado, Velocidad calculada (o "Sprint aún no cerrado" si sigue abierto), y enlaces a "Ver Tablero" y, si no está cerrado, "Cerrar Sprint". |
| 2 | El actor presiona "Cancelar" para volver al listado. |
| 3 | El caso de uso finaliza. |
Subflujo 3 — Modificar Sprint
| Paso | Acción |
|---|
| 1 | El sistema despliega sprint.modificar.php con el formulario precargado: ID Proyecto, Fecha de Inicio, Fecha de Fin, Velocidad estimada, Estado. Si el sprint ya está cerrado, los campos Velocidad estimada y Estado se muestran deshabilitados, el botón "Modificar Sprint" queda deshabilitado y aparece un aviso con la velocidad calculada. Desde la interfaz no se puede guardar ningún cambio de un sprint cerrado. |
| 2 | El actor edita los campos y presiona "Modificar Sprint". |
| 3 | Si la operación es exitosa (Excepción 1), el sistema actualiza el registro en sprint. Si alguien envía el formulario de un sprint cerrado por fuera de la interfaz, el servidor igual ignora velocidad y estado y solo acepta id_proyecto, fecha_inicio y fecha_fin. |
| 4 | Si la operación no es exitosa (Excepción 3), el sistema muestra el mensaje "Ha ocurrido un error." |
| 5 | El caso de uso finaliza. |
Subflujo 5 — Cerrar Sprint
| Paso | Acción |
|---|
| 1 | El sistema despliega sprint.cerrar.php con el total de puntos de las historias en estado completada asignadas al sprint, y el botón "Confirmar cierre del Sprint". Si el sprint ya estaba cerrado, en cambio muestra la velocidad calculada y no permite volver a cerrarlo. |
| 2 | El actor presiona "Confirmar cierre del Sprint". |
| 3 | El sistema calcula la velocidad sumando puntos_historia de las historias en estado completada del sprint, actualiza sprint.velocidad_calculada, marca sprint.cerrado = 1 y sprint.estado = 'Completado'. |
| 4 | El sistema muestra "Sprint cerrado correctamente. Velocidad calculada: {n} puntos." |
| 5 | El caso de uso finaliza. |
Subflujo 4 — Eliminar Sprint
| Paso | Acción |
|---|
| 1 | El sistema despliega sprint.eliminar.php con el ID del sprint seleccionado y el mensaje de advertencia "ATENCIÓN. Esta operación no puede deshacerse." |
| 2 | Si el actor presiona "Sí, deseo eliminar" (Excepción 4), el sistema elimina el registro dentro de una transacción. |
| 3 | Si el actor presiona "NO (Salir de esta pantalla)" (Excepción 3), el sistema vuelve al listado sin realizar cambios. |
| 4 | El caso de uso finaliza. |
Excepciones
| Excepción | Acción |
|---|
| 1 | Operación exitosa. El sistema muestra "Operación realizada con éxito." y ofrece el botón "Salir" hacia el listado de sprints. |
| 2 | Operación no exitosa (alta). El sistema muestra "Ha ocurrido un error: {mensaje de la excepción}" en la pantalla de resultado. |
| 3 | Cancelar operación. El sistema vuelve al listado de sprints sin modificar la base. |
| 4 | Confirmación de baja. El sistema ejecuta el DELETE dentro de una transacción (BEGIN / COMMIT); si falla, hace ROLLBACK y detiene la ejecución. Al eliminar un sprint, las historias que lo tenían asignado no se desvinculan automáticamente (ver nota de implementación). |
Diagramas Asociados
Diagrama de Casos de Uso
Diagrama de Secuencia — Crear Sprint
Diagrama de Secuencia — Modificar Sprint
Diagrama de Secuencia — Eliminar Sprint
Diagrama de Secuencia — Cerrar Sprint
Observaciones
- La velocidad estimada es manual y opcional; la velocidad real (
velocidad_calculada) se obtiene sumando los puntos de las historias completadas al momento del cierre.
- El cierre es una acción de un solo sentido: una vez
cerrado = 1, la pantalla de modificación deshabilita Velocidad y Estado, y el tablero deja de aceptar movimientos.
- El listado muestra el
id_proyecto, el estado (con badge "Cerrado" si corresponde) y la velocidad (estimada o calculada, según el caso) en cada fila.
- El alta usa consulta preparada. La modificación y la baja arman el SQL con los valores recibidos.
- No se valida que la fecha de fin sea posterior a la de inicio.
- Al eliminar un sprint, las historias que lo tenían asignado conservan el
id_sprint.
- No hay ítem en el menú. La entrada es Modificar Proyecto, si el tipo de estimación es PHU.