Resumen del problema

Anuncio
Resumen del problema
Existen varios proyectos y a cada uno de esos proyectos se les puede asignar entre 1 y N usuarios.
El usuario al mismo tiempo puede estar matriculado en otro proyecto simultáneamente por lo que
un usuario tiene entre 1 y N proyectos asignados. Aquí aparece la opción de matricular a un
usuario en el sistema, matricular a un usuario en un proyecto y retirar un usuario de un
proyecto. Los cuales se pueden reunir todos bajo un caso de uso Gestionar Usuarios que
encapsula este CRUD.
Similar a los usuarios también debe aparecer una gestión de proyectos donde se puede generar un
proyecto nuevo, retirar un proyecto, activar o desactivar un proyecto (Puede ser basado en una
fecha de vigencia para el proyecto), consultar un proyecto y actualizar un proyecto. En la
activación, desactivación, consulta y actualización entra a jugar la seguridad para que solo tengan
acceso a esta funcionalidad las personas que realmente están autorizadas a hacerlo. Esta gestión
de proyectos puede ser un poco superior a un CRUD debido a que se debe incluir el tema de
autenticación para poder que el caso de uso termine satisfactoriamente.
Funcionalidad del sistema de seguimiento de errores según Wikipedia
-
Autenticación para que no cualquier usuario pueda dar de alta un error.
-
Base de datos es fundamental
-
Un fallo contiene lo siguiente: Descripción detallada, Nivel de severidad, como se
reproduce (que debe suceder en el sistema para que el error aparezca), responsables,
fecha estimada de solución, código que corrige el error, estado del error (abierto, resuelto,
cerrado)
-
Ciclo de vida: Mas adelante se muestra el ciclo de vida adoptado.
Niveles de severidad
En el atributo nivel de severidad pueden ir los siguientes
-
Bloqueador: No deja continuar el desarrollo o las pruebas
-
Crítico: Hace a la aplicación colapsar, perder datos o permitir la fuga de memoria (Memory
Leak)
-
Mayor: Perdida de funcionalidad que hace que el programa se comporte erráticamente.
-
Normal: Parte menor que no es funcional
-
Menor: Una perdida menor de funcionalidad.
-
Trivial: Problema cosmético como ortografía o texto desalineado.
-
Mejora: Propuesta de mejora o nueva característica.
Ciclo de vida
El ciclo de vida se resume en la siguiente gráfica.
De aquí aparecen tres estados posibles para un problema: Abierto, resuelto y cerrado. Junto con
los demás atributos de un error, es conveniente agregar una descripción para el estado a modo de
observaciones que permitan entender mejor por qué el problema está en ese estado. De esta
parte puede surgir un caso de uso por cada estado del ciclo de vida ya que cada etapa genera valor
para el usuario y para el problema como tal. Caso de uso abrir caso, resolver caso y cerrar caso.
Manejo de archivos adjuntos
Un reporte puede tener cero, uno o varios archivos adjuntos. Esto genera un nuevo caso de uso
que puede ser opcional al momento de entrar un nuevo reporte en el caso de uso abrir caso y que
al mismo tiempo puede tener limitaciones como por ejemplo los tipos de archivo que se pueden
agregar o el máximo de archivos que se pueden adjuntar. Todo esto entra como un sub flujo y
posibles excepciones dentro del caso de uso abrir caso.
Estadísticas
Esta es una vista consolidada y por lo tanto le retorna algo útil al usuario por lo que aquí también
surge un nuevo caso de uso Generar Estadísticas. La vista consolidada incluye por proyecto:
-
Número de hechos reportados en el proyecto.
-
Número de hechos por cada estado del ciclo de vida (para ver cuántos hechos están
apenas reportados, cuantos se han resuelto pero esperan aprobación final y cuáles han
sido cerrados).
-
Número de hechos por responsable asignado.
Búsqueda mediante filtros
Esta es una búsqueda paramétrica que se puede hacer por atributos del proyecto. Es decir, se
muestra una lista de atributos disponibles para un reporte y esto acompañado de un String de
búsqueda hace el filtrado en la tabla. Aquí se tiene interacción directa con el DAO y la base de
datos que se usa para la capa de persistencia. Esto genera un nuevo caso de uso para la
búsqueda.
Exportar Datos
Se exporta la tabla generada de la búsqueda con los resultados a Excel. Aquí se genera un caso de
uso para Exportar Datos ya que se le entrega algo útil al usuario. Un formato común para exportar
a Excel es el uso de CVS.
Visualización de la historia de un error
En esta parte se genera un nuevo caso de uso para que el usuario pueda obtener el historial de
un error. Por cada cambio de estado que se haga se debe asociar ese nuevo evento al error de
manera que cuando se consulte se pueda ver cómo ha evolucionado el error en el tiempo.
Notificación por correo
Este caso de uso es particular porque es el sistema quien inicia la acción al reportar mediante
correo electrónico algún cambio que haya hecho en el error algún otro integrante del proyecto.
Notificación por RSS
Este es un caso de uso bastante similar al de notificación por correo. Por cada proyecto generado
debe surgir un enlace RSS para permitir la suscripción al proyecto por parte de sus participantes.
Es importante que el enlace RSS aparezca después de que el usuario se autentique en el sistema
para controlar el acceso y la suscripción a personas realmente autorizadas. Este caso de uso
también inicia por acción del sistema y no del usuario.
Soporte a cualquier base de datos
Este es un tema más a nivel de estructura del sistema y su arquitectura. En los casos de uso no
aparecerá por ser un requisito no funcional. Se debe proporcionar los DAO necesarios para el
acceso a las bases de datos y que las llamadas a las bases de datos se construyan de una manera
estándar para reducir el impacto de estos cambios.
LDAP
El sistema para autenticación de usuarios aunque debe darse soporte a cualquier sistema de
autenticación.
Listado de casos de uso

Gestionar usuarios: Precondicion exista un proyecto

Gestionar proyectos:

Abrir caso: validaciones datos: nombre, id,

Resolver Caso

Cerrar caso

Adjuntar archivos (puede ser parte de abrir caso)

Generar estadísticas: mio

Realizar búsqueda: mio

Exportar búsqueda a Excel: CU extendido Realizar búsqueda. mio

Visualizar historia de un error: mio

Notificar por correo: mio

Notificar por RSS: mío

Subscripcion a RSS

Validar información de ingreso
Descargar