Inicio¶
Se pueden ver detalladamente todas las funcionalidades propuestas desde Requisitos funcionales y Requisitos no funcionales.
Alcance¶
Los requisitos definidos en esta sección abarcan las funcionalidades y restricciones principales de la plataforma Ilicitan Airlines, incluyendo la aplicación web, la aplicación móvil, el backend y la gestión de los datos.
Los requisitos contemplan tanto las operaciones realizadas por los usuarios como las funciones disponibles para los administradores.
Identificación¶
Los requisitos se identifican mediante un código único:
- RF-XX - Requisito funcional.
- RNF-XX - Requisito no funcional.
- RN-XX - Regla de negocio.
El identificador permite referenciar un requisito desde otras partes de la documentación, como el análisis, la implementación y las pruebas.
Lista de funciones¶
En la siguiente lista se marcarán las funcionalidades que se hayan implementado, para ello, puede visitar cómo se van a implementar sobre el sistema propuesto en Implementación.
| Estado | ID | Requisito |
|---|---|---|
| RF-01 | El sistema permitirá a los usuarios crear una cuenta mediante correo electrónico y contraseña. | |
| RF-02 | El sistema permitirá registrarse e iniciar sesión mediante una cuenta de Google. | |
| RF-03 | El sistema permitirá registrarse e iniciar sesión mediante una cuenta de Apple. | |
| RF-04 | El usuario podrá iniciar y cerrar sesión desde la aplicación web y móvil. | |
| RF-05 | El usuario podrá consultar y modificar los datos personales almacenados en su perfil. | |
| RF-06 | El usuario podrá establecer, modificar y eliminar su fotografía de perfil. | |
| RF-07 | El sistema utilizará los datos almacenados en el perfil para rellenar automáticamente los datos del pasajero durante una reserva. | |
| RF-08 | El sistema permitirá realizar reservas sin disponer de una cuenta de usuario. | |
| RF-09 | El usuario podrá seleccionar si desea realizar un viaje de ida o de ida y vuelta. | |
| RF-10 | El usuario podrá seleccionar un aeropuerto de origen y uno de destino entre los disponibles. | |
| RF-11 | El sistema mostrará únicamente los destinos para los que existan vuelos desde el aeropuerto de origen seleccionado. | |
| RF-12 | El usuario podrá seleccionar la fecha de salida y, en viajes de ida y vuelta, la fecha de regreso. | |
| RF-13 | El usuario podrá indicar el número de pasajeros, diferenciando entre adultos, niños y bebés. | |
| RF-14 | El sistema permitirá un máximo de 8 pasajeros por reserva. | |
| RF-15 | El usuario podrá seleccionar la clase de viaje disponible, como Economy o Business. | |
| RF-16 | El sistema mostrará los vuelos disponibles que coincidan con los criterios de búsqueda. | |
| RF-17 | El sistema mostrará inicialmente los resultados ordenados por hora de salida local, de más temprano a más tarde. | |
| RF-18 | El usuario podrá ordenar los resultados por criterios como precio, duración u hora de salida. | |
| RF-19 | El usuario podrá aplicar filtros a los resultados de búsqueda según las características disponibles de los vuelos. | |
| RF-20 | El sistema no mostrará como disponibles para la reserva los vuelos que hayan alcanzado la capacidad máxima de pasajeros. | |
| RF-21 | El sistema podrá mostrar un mapa con las ciudades desde las que la aerolínea dispone de vuelos, permitiendo seleccionar una de ellas como origen. | |
| RF-22 | El usuario podrá seleccionar la opción "Cualquier lugar" como destino. | |
| RF-23 | Al seleccionar "Cualquier lugar", el sistema podrá mostrar en un mapa los destinos disponibles desde el origen seleccionado. | |
| RF-24 | El sistema podrá mostrar junto a cada destino del mapa el precio más bajo disponible para la fecha seleccionada. | |
| RF-25 | El sistema podrá proporcionar una lista de aeropuertos cercanos al seleccionar un aeropuerto de origen. | |
| RF-26 | El usuario podrá seleccionar un vuelo de ida entre los resultados obtenidos. | |
| RF-27 | En una reserva de ida y vuelta, el usuario podrá seleccionar posteriormente el vuelo de regreso. | |
| RF-28 | El sistema permitirá introducir los datos correspondientes a cada pasajero de la reserva. | |
| RF-29 | El usuario autenticado podrá utilizar los datos de su perfil para rellenar automáticamente los datos del pasajero. | |
| RF-30 | El usuario podrá seleccionar el asiento de cada pasajero entre los asientos disponibles. | |
| RF-31 | El sistema determinará si la selección del asiento tiene un coste adicional según las condiciones aplicables a la reserva. | |
| RF-32 | El sistema asignará automáticamente el equipaje incluido en la tarifa según las condiciones establecidas. | |
| RF-33 | El usuario podrá añadir equipaje facturado adicional durante el proceso de reserva. | |
| RF-34 | El sistema mostrará las condiciones y dimensiones máximas correspondientes a cada tipo de equipaje. | |
| RF-35 | Antes de confirmar la compra, el sistema mostrará un resumen del viaje, pasajeros, asientos, equipaje, extras y precio total. | |
| RF-36 | El usuario podrá introducir los datos necesarios para la facturación de la compra. | |
| RF-37 | El usuario podrá seleccionar un método de pago durante el proceso de compra. | |
| RF-38 | El sistema permitirá completar la compra mediante un sistema de pago simulado sin realizar una transacción económica real. | |
| RF-39 | Una vez completado el proceso de compra, el sistema generará y confirmará la reserva. | |
| RF-40 | Las reservas realizadas por usuarios autenticados quedarán asociadas a sus cuentas. | |
| RF-41 | El usuario autenticado podrá consultar sus reservas desde el apartado "Mis reservas". | |
| RF-42 | El usuario podrá consultar el detalle de una reserva, incluyendo vuelos, pasajeros, asientos, equipaje, clase y condiciones. | |
| RF-43 | El usuario podrá solicitar la cancelación de una reserva cuando las condiciones del billete lo permitan. | |
| RF-44 | El usuario podrá modificar el asiento asignado cuando exista disponibilidad y las condiciones del billete lo permitan. | |
| RF-45 | El usuario podrá modificar los datos del pasajero que puedan cambiarse sin realizar una nueva reserva. | |
| RF-46 | Los usuarios sin cuenta podrán consultar y gestionar sus reservas mediante los mecanismos habilitados para ello. | |
| RF-47 | El usuario podrá consultar individualmente cada vuelo incluido en una reserva. | |
| RF-48 | El usuario registrado podrá iniciar el proceso de check-in desde el detalle del vuelo de una reserva asociada a su cuenta. | |
| RF-49 | El usuario sin cuenta podrá iniciar el proceso de check-in mediante un mecanismo de identificación basado en el código identificativo de la reserva y los apellidos correspondientes. | |
| RF-50 | El sistema verificará que el código identificativo y los apellidos introducidos correspondan con una reserva válida antes de permitir el check-in. | |
| RF-51 | El sistema permitirá realizar el check-in únicamente durante el periodo habilitado para el vuelo correspondiente. | |
| RF-52 | Para vuelos internacionales, el sistema permitirá realizar el check-in desde 48 horas antes de la hora prevista de salida hasta 2 horas antes de dicha salida. | |
| RF-53 | Para vuelos nacionales, el sistema permitirá realizar el check-in desde 24 horas antes de la hora prevista de salida hasta 2 horas antes de dicha salida. | |
| RF-54 | El sistema permitirá consultar la fecha y hora exactas de apertura del check-in cuando todavía no se encuentre disponible. | |
| RF-55 | El sistema impedirá iniciar el proceso de check-in cuando los datos de identificación proporcionados por un usuario sin cuenta no correspondan con la reserva. | |
| RF-56 | El sistema mostrará un resumen del vuelo y de los pasajeros antes de completar el check-in. | |
| RF-57 | El usuario podrá consultar y modificar los datos API/APIS de los pasajeros durante el proceso de check-in. | |
| RF-58 | El sistema realizará el check-in de todos los pasajeros de la reserva correspondientes al vuelo seleccionado. | |
| RF-59 | Si un pasajero no dispone de asiento asignado al realizar el check-in, el sistema le asignará uno entre los asientos disponibles. | |
| RF-60 | El sistema generará una tarjeta de embarque para cada pasajero incluido en el check-in. | |
| RF-61 | El sistema permitirá obtener las tarjetas de embarque correspondientes a todos los pasajeros del vuelo que haya sido facturado. | |
| RF-62 | El usuario podrá descargar en formato PDF las tarjetas de embarque generadas después del check-in. | |
| RF-63 | El sistema no permitirá realizar nuevamente el proceso de check-in sobre un vuelo que ya haya sido facturado. | |
| RF-64 | Si el usuario vuelve a acceder al check-in de un vuelo ya facturado, el sistema permitirá obtener nuevamente las tarjetas de embarque correspondientes. | |
| RF-65 | En la aplicación móvil, el sistema permitirá consultar la tarjeta de embarque del vuelo facturado para su utilización durante el embarque. | |
| RF-66 | En la aplicación móvil, el usuario podrá descargar las tarjetas de embarque en formato PDF. | |
| RF-67 | En la aplicación móvil, el usuario podrá añadir las tarjetas de embarque a servicios de cartera digital compatibles. | |
| RF-68 | El sistema realizará el check-in de cada vuelo de una reserva de forma independiente. | |
| RF-69 | En una reserva de ida y vuelta, el usuario podrá realizar inicialmente el check-in del vuelo cuya ventana de check-in se encuentre abierta y deberá realizar posteriormente el check-in del vuelo de regreso cuando se abra su correspondiente periodo. | |
| RF-70 | El administrador de usuarios podrá crear, consultar, modificar y eliminar usuarios. | |
| RF-71 | El administrador de usuarios podrá modificar los datos de los perfiles de los usuarios. | |
| RF-72 | El administrador de usuarios podrá consultar, crear, modificar y eliminar reservas. | |
| RF-73 | El administrador de usuarios podrá gestionar las reservas asociadas a cualquier usuario. | |
| RF-74 | El administrador de usuarios dispondrá de un panel independiente para gestionar usuarios y reservas. | |
| RF-75 | El administrador de vuelos podrá crear, consultar, modificar, desactivar y eliminar ciudades y aeropuertos. | |
| RF-76 | El administrador de vuelos podrá crear, consultar, modificar, desactivar y eliminar aeronaves de la flota. | |
| RF-77 | El administrador de vuelos podrá crear, consultar, modificar, desactivar y eliminar vuelos. | |
| RF-78 | El administrador de vuelos podrá asignar una aeronave a un vuelo cuando sea compatible con el recorrido. | |
| RF-79 | El administrador de vuelos podrá activar o desactivar vuelos para controlar su disponibilidad para la venta. | |
| RF-80 | El administrador podrá importar y exportar información relacionada con vuelos, usuarios, aeronaves, aeropuertos y demás entidades gestionadas por el sistema. |
| Estado | ID | Requisito |
|---|---|---|
| RNF-01 | El sistema deberá responder a las consultas de vuelos en un máximo de 2 segundos en condiciones normales de funcionamiento. | |
| RNF-02 | El sistema deberá soportar al menos 500 usuarios conectados simultáneamente sin degradar las funcionalidades principales. | |
| RNF-03 | Las operaciones de búsqueda y filtrado de vuelos deberán mantener un tiempo de respuesta inferior a 2 segundos con el volumen de datos previsto para el proyecto. | |
| RNF-04 | Toda comunicación entre las aplicaciones cliente y el backend deberá realizarse mediante HTTPS. | |
| RNF-05 | Las contraseñas de los usuarios no deberán almacenarse en texto plano en la base de datos. | |
| RNF-06 | El sistema deberá impedir que un usuario acceda a las reservas o datos personales pertenecientes a otro usuario sin disponer de los permisos correspondientes. | |
| RNF-07 | Las operaciones administrativas deberán requerir autenticación y autorización mediante el rol correspondiente. | |
| RNF-08 | Las credenciales y datos sensibles utilizados por el backend no deberán almacenarse directamente en el código fuente. | |
| RNF-09 | El sistema deberá impedir que dos usuarios confirmen simultáneamente el mismo asiento para un vuelo. | |
| RNF-10 | La creación de una reserva y la asignación de sus asientos deberán realizarse de forma transaccional, evitando reservas parcialmente almacenadas. | |
| RNF-11 | Una reserva confirmada deberá conservar sus datos aunque el usuario cierre sesión o se reinicie el backend. | |
| RNF-12 | El sistema deberá mantener la coherencia entre la disponibilidad de asientos almacenada y los asientos mostrados durante el proceso de reserva. | |
| RNF-13 | El sistema deberá mantener una disponibilidad mínima del 99,5 % mensual, excluyendo los periodos de mantenimiento programado. | |
| RNF-14 | La base de datos deberá disponer de copias de seguridad con una periodicidad máxima de 24 horas. | |
| RNF-15 | El sistema deberá permitir recuperar la información de las reservas a partir de una copia de seguridad en caso de pérdida de datos. | |
| RNF-16 | La aplicación web deberá funcionar correctamente en las versiones actuales de Chrome, Firefox, Edge y Safari. | |
| RNF-17 | La aplicación móvil deberá funcionar en las versiones de Android establecidas como compatibles para el proyecto. | |
| RNF-18 | La API deberá proporcionar respuestas compatibles con las aplicaciones web y móvil. | |
| RNF-19 | La aplicación web deberá cumplir los criterios aplicables de WCAG 2.2 nivel AA. | |
| RNF-20 | Las funciones principales de búsqueda, reserva y gestión de vuelos deberán poder utilizarse mediante teclado sin depender exclusivamente del ratón. | |
| RNF-21 | Los formularios deberán proporcionar información comprensible sobre los errores producidos al introducir datos no válidos. | |
| RNF-22 | La aplicación web deberá adaptarse a dispositivos de escritorio, tabletas y teléfonos móviles mediante un diseño responsive. | |
| RNF-23 | El backend deberá mantener separadas las responsabilidades de presentación, lógica de negocio y acceso a datos. | |
| RNF-24 | La comunicación entre las aplicaciones cliente y el backend deberá realizarse mediante una API REST. | |
| RNF-25 | La API deberá utilizar JSON como formato de intercambio de datos entre clientes y servidor. | |
| RNF-26 | Las operaciones de la API deberán utilizar los métodos HTTP correspondientes a la naturaleza de cada operación. | |
| RNF-27 | El sistema deberá permitir modificar o ampliar las funcionalidades de la aplicación sin requerir cambios innecesarios en el resto de componentes. | |
| RNF-28 | Las operaciones administrativas sobre usuarios, reservas y vuelos deberán quedar registradas junto con el usuario que las realizó y la fecha de ejecución. | |
| RNF-29 | El sistema deberá registrar los errores producidos en el backend para facilitar su diagnóstico y mantenimiento. | |
| RNF-30 | El sistema deberá limitar el acceso a los datos personales de los pasajeros según los permisos del usuario autenticado. | |
| RNF-31 | Los datos personales de los usuarios deberán almacenarse únicamente cuando sean necesarios para proporcionar las funcionalidades del sistema. | |
| RNF-32 | El sistema deberá mantener la integridad y consistencia de la información relacionada con reservas, pasajeros, vuelos y asientos. | |
| RNF-33 | El sistema deberá garantizar que la capacidad disponible de un vuelo sea coherente con la capacidad de la aeronave asignada y las reservas confirmadas. |
| Estado | ID | Regla |
|---|---|---|
| RN-01 | Cada dirección de correo electrónico podrá estar asociada a una única cuenta de usuario. | |
| RN-02 | Una cuenta creada mediante correo electrónico y contraseña, Google o Apple no podrá utilizar posteriormente el mismo correo electrónico para crear una segunda cuenta mediante otro método de registro. | |
| RN-03 | Un usuario podrá realizar múltiples reservas, siempre que cada una cumpla las condiciones establecidas por el sistema. | |
| RN-04 | No se podrá realizar una reserva para un vuelo cuya fecha de salida ya haya pasado. | |
| RN-05 | Un usuario únicamente podrá consultar y gestionar las reservas asociadas a su propia cuenta. | |
| RN-06 | Una reserva podrá incluir como máximo 8 pasajeros. | |
| RN-07 | La clase de viaje seleccionada para una reserva se aplicará a todos los pasajeros incluidos en dicha reserva. | |
| RN-08 | Los usuarios registrados mediante correo electrónico y contraseña recibirán una fotografía de perfil predeterminada cuando no dispongan de una fotografía propia. | |
| RN-09 | Los usuarios registrados mediante Google utilizarán como fotografía de perfil la proporcionada por su cuenta de Google cuando esté disponible; en caso contrario, se utilizará una fotografía predeterminada. | |
| RN-10 | Los usuarios registrados mediante Apple utilizarán como fotografía de perfil la proporcionada por su cuenta de Apple cuando esté disponible; en caso contrario, se utilizará una fotografía predeterminada. | |
| RN-11 | Un vuelo deberá tener un aeropuerto de origen y un aeropuerto de destino diferentes. | |
| RN-12 | Los administradores no accederán a las funciones destinadas a los usuarios normales, sino únicamente a las funciones administrativas correspondientes a su rol. | |
| RN-13 | Los administradores podrán importar y exportar información del sistema mediante archivos en formato CSV. | |
| RN-14 | Un asiento no podrá estar asignado simultáneamente a más de un pasajero en un mismo vuelo. | |
| RN-15 | Un vuelo no podrá tener más pasajeros que la capacidad máxima de la aeronave asignada. | |
| RN-16 | La aeronave asignada a un vuelo deberá ser compatible con las características y condiciones establecidas para dicho vuelo. | |
| RN-17 | Los datos de una reserva confirmada deberán conservarse independientemente de que el usuario cierre sesión o deje de utilizar temporalmente la aplicación. | |
| RN-18 | Las operaciones administrativas estarán limitadas a las funciones autorizadas para el rol correspondiente. | |
| RN-19 | La disponibilidad de un asiento deberá actualizarse cuando sea asignado a un pasajero, evitando que pueda ser asignado posteriormente a otro pasajero del mismo vuelo. | |
| RN-20 | Una reserva de ida y vuelta deberá estar formada por un vuelo de ida y un vuelo de regreso compatibles con las fechas seleccionadas. | |
| RN-21 | Las condiciones de modificación y cancelación de una reserva deberán respetar las condiciones establecidas para el billete adquirido. | |
| RN-22 | La disponibilidad del check-in estará determinada por el tipo de vuelo y el periodo establecido para realizarlo. | |
| RN-23 | El check-in de un vuelo internacional podrá realizarse desde 48 horas antes de su salida y hasta 2 horas antes de la misma. | |
| RN-24 | El check-in de un vuelo nacional podrá realizarse desde 24 horas antes de su salida y hasta 2 horas antes de la misma. | |
| RN-25 | El check-in se realizará de forma independiente para cada vuelo incluido en una reserva. | |
| RN-26 | En una reserva de ida y vuelta, el check-in del vuelo de ida no implicará el check-in del vuelo de regreso. | |
| RN-27 | El check-in de una reserva se realizará para todos los pasajeros asociados al vuelo seleccionado. | |
| RN-28 | Cuando un pasajero no disponga de un asiento asignado al realizar el check-in, deberá recibir uno de los asientos disponibles del vuelo. | |
| RN-29 | Una vez realizado el check-in de un vuelo, no podrá volver a realizarse el proceso de check-in sobre ese mismo vuelo. | |
| RN-30 | Las tarjetas de embarque generadas corresponderán únicamente a los pasajeros y vuelos que hayan completado el proceso de check-in. | |
| RN-31 | Los datos API/APIS de los pasajeros podrán ser modificados durante el proceso de check-in antes de su confirmación. | |
| RN-32 | Los datos de un usuario no podrán ser modificados ni eliminados por otro usuario que no disponga de los permisos administrativos correspondientes. |