Sistema de Gestión de Reservas Hotel
Esta página presenta los requerimientos funcionales y no funcionales del sistema de gestión de reservas, así como los distintos casos de uso que permiten entender cómo interactúan los usuarios con el sistema. El propósito es ofrecer una vista estructurada del comportamiento esperado de la aplicación.
Diagrama de Casos de Uso
Caso de Uso 1: Carga archivos CSV
Nombre |
Carga archivos CSV |
Propósito |
Permitir al Recepcionista importar datos iniciales o actualizados de habitaciones y reservas desde archivos en formato CSV al sistema, asegurando la integridad y disponibilidad de la información. |
Actores |
El Recepcionista |
Precondición |
Los archivos CSV con los datos de habitaciones y/o reservas deben estar disponibles y descargados localmente en el computador del Recepcionista. |
Evento |
Inicio del proceso de importación de datos de habitaciones y/o reservas a través de archivos CSV seleccionados por el Recepcionista. |
Curso normal |
Actor |
Sistema |
1. El Recepcionista selecciona la opción "Archivo -> Cargar Habitaciones" o "Archivo -> Cargar Reservas" en el menú de la aplicación. |
2. El Sistema abre una ventana de diálogo para que el Recepcionista pueda seleccionar el archivo deseado. |
3. El Recepcionista busca y selecciona el archivo .CSV que contiene los datos válidos de habitaciones y/o reservas que desea cargar. |
4. El Sistema valida la estructura interna y el formato de los datos del archivo CSV seleccionado para asegurar su compatibilidad. |
|
5. El Sistema lee los datos línea por línea del archivo CSV y almacena esta información en memoria. |
|
6. El Sistema actualiza las tablas de habitaciones y/o reservas en la base de datos con los datos importados. |
Curso alternativo de eventos |
Actor |
Sistema |
1A1. El Recepcionista selecciona un archivo con una extensión o formato general inválido (ej. .txt, .pdf). |
2A1. El Sistema notifica con un mensaje de error claro durante el intento de carga, indicando que el formato del archivo no es compatible. |
1A2. El Recepcionista selecciona un archivo .CSV que tiene una estructura interna de datos inválida (ej. columnas incorrectas, datos faltantes). |
2A2. El Sistema notifica con un mensaje de error específico que la estructura del archivo no es válida y detiene el proceso de carga. |
1A3. El Recepcionista intenta cargar un archivo CSV que contiene datos (habitaciones o reservas) que ya existen en el sistema. |
2A3. El Sistema procede a reemplazar los registros existentes con los nuevos datos del archivo CSV. |
Requisitos no funcionales |
La carga de archivos debe ser eficiente, procesando grandes volúmenes de datos en un tiempo aceptable. El sistema debe proporcionar mensajes de error claros y útiles para guiar al usuario. La interfaz de usuario para la selección de archivos debe ser intuitiva. |
Caso de Uso 2: Consultar estado de todas las habitaciones
Nombre |
Consultar estado de todas las habitaciones |
Propósito |
Permitir al Recepcionista verificar la disponibilidad de habitaciones para un rango de fechas específico |
Actores |
El Recepcionista |
Precondición |
Datos de habitaciones cargadas y disponibles en el sistema. |
Evento |
El Recepcionista inicia la búsqueda de habitaciones disponibles ingresando un rango de fechas. |
Curso normal |
Actor |
Sistema |
1. El Recepcionista ingresa las fechas de inicio y fin de la búsqueda (ej. Desde: DD/MM/AAAA, Hasta: DD/MM/AAAA) y pulsa el botón "Mostrar todas las habitaciones". |
2. El Sistema verifica que el rango de fechas ingresado es válido y coherente. |
|
3. El Sistema recupera todas las habitaciones registradas en la base de datos. |
|
4. Para cada habitación, el Sistema verifica su estado de ocupación dentro del rango de fechas especificado. |
|
5. El Sistema actualiza y muestra una tabla de habitaciones, indicando claramente si cada habitación está disponible o no para el rango de fechas consultado. |
Curso alternativo de eventos |
Actor |
Sistema |
1A1. Se ingresa un rango de fechas inválido (ej. fecha de fin anterior a fecha de inicio, formato incorrecto) y se pulsa el botón. |
2A1. El Sistema notifica al Recepcionista con un mensaje de error detallado sobre el rango de fechas inválido. |
Requisitos no funcionales |
La consulta debe ser rápida y eficiente, incluso con un gran número de habitaciones y reservas. La interfaz de visualización de resultados debe ser clara y fácil de interpretar. |
Caso de Uso 3: Consultar solo habitaciones disponibles
Nombre |
Consultar solo habitaciones disponibles |
Propósito |
Permitir al Recepcionista buscar y visualizar las habitaciones que se encuentran disponibles para un rango de fechas específico, optimizando el proceso de reserva. |
Actores |
El Recepcionista |
Precondición |
Los datos de las habitaciones deben estar previamente cargados y disponibles en el sistema. |
Evento |
El Recepcionista inicia la consulta para identificar habitaciones que no tienen reservas activas en un periodo dado. |
Curso normal |
Actor |
Sistema |
1. El Recepcionista ingresa las fechas de búsqueda (ej. Desde: [DD/MM/AAAA], Hasta: [DD/MM/AAAA]) y pulsa el botón "Mostrar habitaciones disponibles". |
2. El Sistema verifica que el rango de fechas ingresado es válido y lógicamente correcto. |
|
3. El Sistema recupera toda la información de las habitaciones registradas. |
|
4. Para cada habitación, el Sistema verifica si está ocupada o disponible dentro del rango de fechas especificado por el Recepcionista. |
|
5. El Sistema actualiza la tabla de habitaciones en la interfaz, mostrando exclusivamente aquellas que se encuentran disponibles para el período seleccionado. |
Curso alternativo de eventos |
Actor |
Sistema |
1A1. El Recepcionista ingresa un rango de fechas inválido (ej. fecha de fin anterior a la de inicio, formato incorrecto) y pulsa el botón. |
2A1. El Sistema notifica al Recepcionista con un mensaje de error claro, indicando la invalidez del rango de fechas ingresado. |
Requisitos no funcionales |
La interfaz debe ser intuitiva y fácil de usar para la selección de fechas y visualización de resultados. |
Caso de Uso 4: Consultar habitaciones disponibles por calendario
Nombre |
Consultar habitaciones disponibles por calendario |
Propósito |
Permitir al Recepcionista consultar la disponibilidad de habitaciones para un rango específico de fechas mediante una interfaz visual basada en calendario. |
Actores |
El Recepcionista |
Precondición |
Datos de habitaciones cargados en el sistema. |
Evento |
El Recepcionista utiliza el calendario para seleccionar un rango de fechas y verificar la disponibilidad de habitaciones. |
Curso normal |
Actor |
Sistema |
1. El Recepcionista selecciona la ventana "Calendario" en la interfaz de usuario. |
4. El Sistema verifica que el rango de fechas seleccionado es válido y coherente. |
2. El Recepcionista selecciona la fecha de inicio de la reserva en el primer calendario. |
5. El Sistema recupera todas las habitaciones registradas en la base de datos. |
3. El Recepcionista selecciona la fecha de fin de la reserva en el segundo calendario. |
6. Para cada habitación, el Sistema verifica si está ocupada en el rango de fechas seleccionado. |
|
7. El Sistema redirige a la ventana "Habitaciones" y actualiza la tabla, mostrando únicamente aquellas que están disponibles para el rango de fechas elegido. |
Curso alternativo de eventos |
Actor |
Sistema |
1A1. El Recepcionista ingresa un rango de fechas inválido (ej. fecha de fin anterior a fecha de inicio) y pulsa el botón. |
2A1. El Sistema notifica al Recepcionista con un mensaje de error, indicando la invalidez del rango de fechas. |
Requisitos no funcionales |
Interfaz intuitiva y visualmente cómoda para facilitar la selección de fechas y visualización de disponibilidad. |
Caso de Uso 5: Agregar Reservaciones
Nombre |
Agregar Reservaciones |
Propósito |
Permitir al usuario registrar una nueva reserva y calcular el costo asociado |
Actores |
Recepcionista |
Precondición |
Datos de habitaciones existentes |
Rango de fechas ingresado correcto |
Evento |
Registro de una nueva reserva de habitación y cálculo de su costo. |
Curso normal |
Actor |
Sistema |
1. El Recepcionista selecciona una fila de la tabla de habitaciónes disponible a reservar y presiona el botón correspondiente. |
2. El Sistema abre un formulario con los datos (número de habitación, rango de fechas inicio/fin) definidos en la interfaz principal. |
3. El Recepcionista ingresa el "Nombre" del responsable y selecciona si agrega cargos adicionales. |
4. El Sistema calcula y modifica el precio final de la reserva. |
5. El Recepcionista pulsa "Aceptar". |
6. El Sistema vuelve a verificar si la habitación está disponible para las fechas y crea la reserva. |
|
7. El Sistema actualiza la tabla de habitaciones y reservas. |
Curso alternativo de eventos |
Actor |
Sistema |
1A1. El Recepcionista no selecciona una habitación y pulsa el botón. |
2A1. El Sistema envía un mensaje de error pidiendo seleccionar una habitación en la tabla. |
1A2. El Recepcionista selecciona una habitación ocupada y pulsa el botón. |
2A2. El Sistema envía un mensaje de error pidiendo seleccionar una habitación disponible. |
1A3. El Recepcionista selecciona una habitación ocupada y pulsa el botón (la tabla no está actualizada para las fechas seleccionadas y se muestra como disponible). |
2A3. El Sistema abre un formulario con los datos (número de habitación, rango de fechas inicio/fin) definidos en la interfaz principal. |
3A3. El Recepcionista ingresa el "Nombre" del responsable y selecciona si agrega cargos adicionales. |
4A3. El Sistema calcula y modifica el precio final de la reserva. |
5A3. El Recepcionista pulsa "Aceptar". |
6A3. El Sistema verifica que la habitación está ocupada y envía un mensaje de error confirmando su ocupación, por lo que no se procede a crear la reserva. |
Requisitos no funcionales |
Comodidad / Actualización de precio frente a modificaciones de selección de cargos adicionales. |
Caso de Uso 6: Eliminación reserva
Nombre |
Eliminación reserva |
Propósito |
Permitir al Recepcionista eliminar una reserva existente en caso de error, duplicación u otro motivo justificado, manteniendo la coherencia de los datos. |
Actores |
El Recepcionista |
Precondición |
Deben existir reservas previamente registradas en el sistema. |
Evento |
El Recepcionista inicia el proceso para remover una reserva del sistema. |
Curso normal |
Actor |
Sistema |
1. El Recepcionista selecciona la ventana "Reservaciones" en la interfaz de usuario. |
4. El Sistema solicita confirmación al Recepcionista antes de proceder con la eliminación irreversible de la reserva. |
2. El Recepcionista selecciona en la tabla la fila correspondiente a la reserva que desea eliminar. |
6. El Sistema busca la reserva en la base de datos verificando el piso de la habitación y el rango de fechas asociados (evitando eliminar una reserva equivocada). |
3. El Recepcionista pulsa el botón "Eliminar". |
7. El Sistema elimina la reserva de la base de datos. |
5. El Recepcionista confirma la eliminación de la reserva cuando el sistema lo solicita. |
8. El Sistema actualiza la tabla de reservas mostrada en la interfaz. |
Curso alternativo de eventos |
Actor |
Sistema |
1A1. El Recepcionista intenta eliminar sin haber seleccionado previamente una fila de reserva en la tabla. |
2A1. El Sistema notifica con un mensaje de error solicitando seleccionar una reserva para eliminar. |
1A2. El Recepcionista no confirma la eliminación de la reserva cuando el sistema lo solicita. |
2A2. El Sistema no realiza cambios y mantiene la reserva sin modificar, cancelando la operación de eliminación. |
Requisitos no funcionales |
La interfaz debe reflejar instantáneamente la eliminación de la reserva. |
Caso de Uso 7: Guardado archivos CSV
Nombre |
Guardado archivos CSV |
Propósito |
Permitir al Recepcionista guardar los datos de las reservas en un archivo CSV local para asegurar la persistencia y respaldo de la información. |
Actores |
El Recepcionista |
Precondición |
Deben existir reservas registradas en el sistema para poder ser guardadas. |
Evento |
El Recepcionista inicia la acción de exportar las reservas actuales a un archivo CSV. |
Curso normal |
Actor |
Sistema |
1. El Recepcionista hace clic en la opción de menú "Archivo" y luego selecciona "Guardar Reservas". |
2. El Sistema muestra un diálogo para que el Recepcionista seleccione la ubicación y el nombre del archivo donde se guardará. |
3. El Recepcionista selecciona la ubicación deseada, ingresa un nombre para el archivo y confirma la operación. |
4. El Sistema valida el nombre y la ubicación, y agrega automáticamente la extensión ".csv" si no está presente. |
|
5. El Sistema crea un nuevo archivo CSV o sobrescribe uno existente con el formato de datos de reservas establecido. |
|
6. El Sistema muestra un mensaje de confirmación "Reservas guardadas correctamente". |
Curso alternativo de eventos |
Actor |
Sistema |
1A1. El Recepcionista cancela el diálogo para guardar el archivo. |
2A1. El Sistema no realiza ninguna acción y la operación de guardado se aborta. |
Requisitos no funcionales |
El archivo CSV generado debe ser compatible con software de hojas de cálculo estándar. |
Caso de Uso 8: Guardar arhcivo CSV al cerrar aplicación
Nombre |
Guardar arhcivo CSV al cerrar aplicación |
Propósito |
Prevenir la pérdida de datos de reservas que no han sido guardadas permanentemente, ofreciendo al Recepcionista la opción de guardarlas antes de cerrar la aplicación. |
Actores |
El Recepcionista |
Precondición |
Deben existir datos de reservas, modificados o nuevos, que no hayan sido guardados. |
El Recepcionista intenta cerrar la aplicación. |
Evento |
El Recepcionista intenta salir de la aplicación y se le presenta la opción de guardar cambios. |
Curso normal |
Actor |
Sistema |
1. El Recepcionista intenta cerrar la aplicación (ej. haciendo clic en la "X" de la ventana). |
2. El Sistema muestra un diálogo preguntando "¿Desea guardar los datos antes de salir?". |
3. El Recepcionista selecciona la opción "Sí" en el diálogo de confirmación. |
4. El Sistema muestra un diálogo para que el Recepcionista seleccione la ubicación y el nombre del archivo para guardar las reservas. |
|
5. El Sistema valida el nombre y agrega la extensión ".csv" si es necesario. |
|
6. El Sistema crea o sobrescribe el archivo CSV con los datos de las reservas. |
|
7. El Sistema cierra la aplicación. |
Curso alternativo de eventos |
Actor |
Sistema |
1A1. El Recepcionista selecciona la opción "No" en el diálogo de confirmación. |
2A1. El Sistema cierra la aplicación sin guardar los cambios en las reservas. |
1A2. El Recepcionista selecciona la opción "Cancelar" en el diálogo de confirmación. |
2A2. El Sistema aborta la operación de cierre y regresa a la aplicación. |
Requisitos no funcionales |
El diálogo de confirmación debe ser claro y prominente. La operación de guardado debe ser rápida para no retrasar el cierre del programa. |