REQUISITOS DEL SISTEMA
馃摎 Requisitos del Punto de Venta (PDV) de Librer铆a Digital
Este documento detalla los requisitos funcionales y no funcionales del Punto de Venta (PDV) de la Librer铆a Digital. Su prop贸sito es servir como una gu铆a clara y completa para el desarrollo, las pruebas y la validaci贸n del PDV, asegurando que las funcionalidades implementadas satisfagan las necesidades de los usuarios y administradores en el entorno de la librer铆a.
Requisitos Funcionales (RF)
Los requisitos funcionales describen las funciones espec铆ficas que el Punto de Venta debe realizar para satisfacer las necesidades del usuario y del negocio.
RF1: Gesti贸n de Acceso y Roles
RF1.1: Autenticaci贸n de Usuario: El sistema de PDV debe permitir a los usuarios (est谩ndar/clientes y administradores/personal) iniciar sesi贸n proporcionando un nombre de usuario y una contrase帽a. RF1.2: Roles Diferenciados: El sistema debe distinguir entre dos tipos de usuarios: RF1.2.1: Usuario Est谩ndar (Cliente): Acceso a funcionalidades de consulta, compra en el PDV y alquiler de libros. RF1.2.2: Administrador (Personal): Acceso a todas las funcionalidades del sistema, incluyendo la gesti贸n de inventario, usuarios y reportes financieros.
RF2: Gesti贸n de Libros (Inventario del PDV)
El sistema debe permitir al administrador gestionar el cat谩logo de libros del Punto de Venta. RF2.1: Visualizaci贸n de Libros: El sistema debe mostrar una lista completa de todos los libros disponibles en el inventario del PDV, incluyendo su ID, t铆tulo, autor, precio de venta y cantidad en stock. RF2.2: Alta de Libros: El administrador debe poder agregar nuevos libros al inventario proporcionando el t铆tulo, autor, precio de venta y cantidad inicial. El sistema debe generar autom谩ticamente un ID 煤nico para cada libro. RF2.2.1: El precio de venta no debe ser negativo. RF2.2.2: La cantidad en stock debe ser un valor no negativo y no exceder las 10,000 unidades. RF2.3: Actualizaci贸n de Libros: El administrador debe poder modificar la informaci贸n de un libro existente (t铆tulo, autor, precio de venta, cantidad en stock) utilizando su ID. Se debe permitir mantener los valores actuales si no se proporciona una nueva entrada. RF2.3.1: Las validaciones de precio y cantidad (RF2.2.1, RF2.2.2) deben aplicarse tambi茅n en la actualizaci贸n. RF2.4: Baja de Libros: El administrador debe poder eliminar un libro del inventario utilizando su ID.
RF3: Funcionalidades para Clientes (Usuarios Est谩ndar)
El sistema de PDV debe permitir a los usuarios finales realizar transacciones relacionadas con libros. RF3.1: Consulta de Libros: Los clientes deben poder ver la lista de libros disponibles en el inventario (RF2.1). RF3.2: Compra de Libros (Transacci贸n de Venta): Los clientes deben poder comprar uno o m谩s ejemplares de un libro. RF3.2.1: El sistema debe verificar que haya suficiente stock antes de confirmar la compra. RF3.2.2: La compra debe reducir la cantidad en stock del libro. RF3.2.3: El sistema debe mostrar el costo total de la compra. RF3.3: Alquiler de Libros (Transacci贸n de Renta): Los clientes deben poder alquilar libros. RF3.3.1: El sistema debe verificar que haya stock disponible para el alquiler. RF3.3.2: Un cliente no debe poder alquilar m谩s de 3 libros activos a la vez. RF3.3.3: Un cliente no debe poder alquilar la misma copia de un libro si ya la tiene activa. RF3.3.4: El costo de la renta debe ser el 50% del precio de venta del libro. RF3.3.5: La renta debe registrarse con la fecha actual y una fecha de devoluci贸n estimada (7 d铆as despu茅s). RF3.3.6: El alquiler debe reducir la cantidad en stock del libro en 1 unidad. RF3.4: Devoluci贸n de Libros: Los clientes deben poder devolver un libro alquilado. RF3.4.1: La devoluci贸n debe marcar la renta como "DEVUELTA" y registrar la fecha real de devoluci贸n. RF3.4.2: La devoluci贸n debe aumentar la cantidad en stock del libro en 1 unidad. RF3.4.3: El sistema debe notificar al cliente si la devoluci贸n se realiza despu茅s de la fecha estimada. RF3.5: Consulta de Alquileres Propios: Los clientes deben poder ver un historial de todos sus alquileres (activos y devueltos), incluyendo el costo de cada renta.
RF4: Gesti贸n de Usuarios (Administrador)
El sistema debe permitir al administrador gestionar las cuentas de usuario est谩ndar (clientes). RF4.1: Visualizaci贸n de Clientes: El administrador debe poder ver una lista de todos los usuarios (clientes) registrados en el sistema. RF4.2: Alta de Clientes: El administrador debe poder agregar nuevos usuarios al sistema, proporcionando un nombre de usuario y una contrase帽a. RF4.2.1: El nombre de usuario no debe estar vac铆o. RF4.2.2: El nombre de usuario no debe exceder los 10 caracteres. RF4.2.3: El nombre de usuario debe ser 煤nico (no debe existir ya como usuario o administrador). RF4.2.4: La contrase帽a no debe estar vac铆a. RF4.2.5: La contrase帽a no debe exceder los 10 caracteres. RF4.3: Baja de Clientes: El administrador debe poder eliminar un usuario existente del sistema.
RF5: Reportes y Alertas (Administrador)
El Punto de Venta debe proporcionar herramientas de reporte y alerta para el administrador (personal). RF5.1: Historial de Ventas (Transacciones de Compra): El administrador debe poder ver un historial detallado de todas las ventas realizadas, incluyendo la informaci贸n del libro, cantidad, precio unitario, total de la venta y fecha/hora. RF5.1.1: El sistema debe calcular y mostrar la ganancia total acumulada de todas las ventas registradas. RF5.2: Alertas de Stock Bajo: El sistema debe poder identificar y mostrar una lista de libros cuyo stock actual es inferior a un umbral predefinido (actualmente 5 unidades). RF5.3: Rentas Activas: El administrador debe poder ver una lista de todas las rentas que se encuentran en estado "ACTIVA" (libros que a煤n no han sido devueltos). RF5.3.1: El sistema debe calcular y mostrar la ganancia total acumulada de las rentas activas. RF5.4: Historial Completo de Rentas: El administrador debe poder ver un historial completo de todas las rentas, incluyendo las activas y las ya devueltas, con todos sus detalles (fechas, estado, costo). RF5.4.1: El sistema debe calcular y mostrar la ganancia total acumulada de todas las rentas registradas en el historial completo.
Requisitos No Funcionales (RNF)
Los requisitos no funcionales describen los atributos de calidad del Punto de Venta, c贸mo debe funcionar y las restricciones que debe cumplir.
RNF1: Usabilidad
RNF1.1: Interfaz Intuitiva: El sistema debe ofrecer una interfaz de usuario basada en consola que sea clara, f谩cil de entender y navegar mediante men煤s num茅ricos para las operaciones del PDV. RNF1.2: Claridad en Mensajes: Los mensajes del sistema (confirmaciones, errores, instrucciones de compra/alquiler) deben ser claros y concisos. RNF1.3: Manejo de Entradas: El sistema debe manejar robustamente las entradas de usuario, solicitando reintentos para entradas num茅ricas inv谩lidas y permitiendo "CANCELAR" la operaci贸n en la mayor铆a de los puntos de entrada de transacciones.
RNF2: Rendimiento
RNF2.1: Tiempo de Respuesta: Las operaciones b谩sicas del PDV (listar libros, registrar venta/renta, agregar/actualizar/eliminar) deben ejecutarse en un tiempo de respuesta r谩pido (menos de 1 segundo) para un volumen razonable de datos en memoria (hasta unos pocos cientos de libros y transacciones). RNF2.2: Eficiencia en Memoria: El sistema debe gestionar el uso de memoria de manera eficiente, evitando fugas de memoria significativas para una aplicaci贸n de consola en Java.
RNF3: Fiabilidad
RNF3.1: Manejo de Errores: El sistema debe gestionar errores internos (ej., NumberFormatException al parsear entradas de compra/venta) de manera elegante, informando al usuario sin terminar abruptamente la ejecuci贸n.
RNF3.2: Consistencia de Datos: La informaci贸n de inventario (stock de libros) y transacciones (ventas, rentas) debe ser consistente despu茅s de cada operaci贸n del PDV.
RNF4: Mantenibilidad
RNF4.1: Modularidad del C贸digo: El c贸digo fuente debe estar organizado en clases (Libro, Usuario, Admin, Venta, Renta, Inventario, PuntoVentaDigital) con responsabilidades claras, facilitando la comprensi贸n y futuras modificaciones.
RNF4.2: Comentarios en el C贸digo: El c贸digo debe estar adecuadamente comentado para explicar la l贸gica compleja, el prop贸sito de las clases, atributos y m茅todos del PDV.
RNF4.3: Facilidad de Debugging: El dise帽o modular y la claridad del c贸digo deben permitir una f谩cil identificaci贸n y correcci贸n de errores.
RNF5: Escalabilidad (Consideraci贸n Futura)
RNF5.1: Extensibilidad de Funcionalidades: La arquitectura del sistema debe permitir la f谩cil adici贸n de nuevas funcionalidades del PDV (ej., b煤squeda avanzada, gesti贸n de proveedores, sistema de recargos por mora en rentas). RNF5.2: Potencial de Persistencia: Aunque la versi贸n actual no lo incluye, la estructura de datos orientada a objetos deber铆a facilitar la integraci贸n futura con mecanismos de persistencia (ej., base de datos, archivos JSON/CSV) sin requerir cambios dr谩sticos en la l贸gica de negocio del PDV.
RNF6: Seguridad (B谩sica)
RNF6.1: Autenticaci贸n de Usuarios: El acceso a las funcionalidades del Punto de Venta debe estar restringido mediante un proceso de inicio de sesi贸n con validaci贸n de credenciales. RNF6.2: Separaci贸n de Privilegios: Las funcionalidades sensibles de administraci贸n (CRUD de libros, gesti贸n de clientes, reportes financieros) deben ser accesibles solo por usuarios con rol de administrador. RNF6.3: Sin Almacenamiento Cifrado: En la versi贸n actual, las contrase帽as se almacenan en texto plano en memoria. Para una aplicaci贸n en producci贸n, se requerir铆a cifrado de contrase帽as.
Anexos y Referencias
Anexo A: Historias de Usuario: Lista detallada de las historias de usuario que sirvieron como base para estos requisitos del PDV. Anexo B: Diagrama de Clases UML: Representaci贸n visual de la estructura de las clases y sus relaciones
Comentarios
Publicar un comentario