Saltar al contenido principal

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 usoCU12 - Gestión de Sprint
ActoresUsuario con permiso de sistema Sprints (hoy: Administrador).
TipoPrimario: los casos primarios de uso representan los procesos comunes más importantes.
PropósitoOfrecer la funcionalidad necesaria para crear, modificar, eliminar y consultar sprints de un proyecto PHU.
ResumenEl 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.
PrecondicionesHaber 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.
PoscondicionesEl 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​

PasoAcción
1El 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.
2El actor presiona alguno de los botones: Nuevo Sprint, Ver detalle, Tablero, Modificar o Eliminar.
3Si el actor selecciona "Nuevo Sprint", el caso de uso continúa en el paso 1 del Subflujo 1 (Crear Sprint).
4Si el actor selecciona "Ver detalle", el caso de uso continúa en el paso 1 del Subflujo 2 (Ver Sprint).
5Si el actor selecciona "Tablero", el caso de uso continúa en el Tablero de Sprint.
6Si el actor selecciona "Modificar", el caso de uso continúa en el paso 1 del Subflujo 3 (Modificar Sprint).
7Si el actor selecciona "Eliminar", el caso de uso continúa en el paso 1 del Subflujo 4 (Eliminar Sprint).
8Si 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​

PasoAcción
1El 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".
2El actor completa el formulario y presiona "Crear Sprint".
3Si la operación es exitosa (Excepción 1), el sistema inserta el registro en sprint con el id_proyecto recibido.
4Si la operación no es exitosa (Excepción 2), el sistema muestra el mensaje de error correspondiente.
5El caso de uso finaliza.

Subflujo 2 — Ver Sprint​

PasoAcción
1El 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".
2El actor presiona "Cancelar" para volver al listado.
3El caso de uso finaliza.

Subflujo 3 — Modificar Sprint​

PasoAcción
1El 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.
2El actor edita los campos y presiona "Modificar Sprint".
3Si 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.
4Si la operación no es exitosa (Excepción 3), el sistema muestra el mensaje "Ha ocurrido un error."
5El caso de uso finaliza.

Subflujo 5 — Cerrar Sprint​

PasoAcción
1El 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.
2El actor presiona "Confirmar cierre del Sprint".
3El 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'.
4El sistema muestra "Sprint cerrado correctamente. Velocidad calculada: {n} puntos."
5El caso de uso finaliza.

Subflujo 4 — Eliminar Sprint​

PasoAcción
1El sistema despliega sprint.eliminar.php con el ID del sprint seleccionado y el mensaje de advertencia "ATENCIÓN. Esta operación no puede deshacerse."
2Si el actor presiona "Sí, deseo eliminar" (Excepción 4), el sistema elimina el registro dentro de una transacción.
3Si el actor presiona "NO (Salir de esta pantalla)" (Excepción 3), el sistema vuelve al listado sin realizar cambios.
4El caso de uso finaliza.

Excepciones​

ExcepciónAcción
1Operación exitosa. El sistema muestra "Operación realizada con éxito." y ofrece el botón "Salir" hacia el listado de sprints.
2Operación no exitosa (alta). El sistema muestra "Ha ocurrido un error: {mensaje de la excepción}" en la pantalla de resultado.
3Cancelar operación. El sistema vuelve al listado de sprints sin modificar la base.
4Confirmació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.