UNIVERSIDAD VERACRUZANA - REGIÓN XALAPA FACULTAD DE ESTADÍSTICA E INFORMÁTICA
Licenciatura en Ingeniería de Software
Experiencia Educativa Diseño de Software (Periodo Agosto 25 - Enero 26)
Académico: Jorge Octavio Ocharan Hernández
Sistema Hotelero
PRESENTAN:
Barradas Sánchez Genaro Alejandro || zs23014083@estudiantes.uv.mx
Bello Peralta Lizeth Guadalupe || zs23014074@estudiantes.uv.mx
Morales García Omar || zs23014039@estudiantes.uv.mx
REPOSITORIO: GitHub
Control de versiones
| Versión | Fecha | Autor(es) | Resumen de cambios significativos |
|---|---|---|---|
0.0.1 |
7 de septiembre de 2025 |
Genaro Alejandro Barradas Sánchez |
Creación de documento inicial con apartados |
0.0.1.0 |
7 de septiembre de 2025 |
Genaro Alejandro Barradas Sánchez Lizeth Guadalupe Bello Peralta |
Se añadieron los borradores de los casos de uso |
0.0.1.1 |
8 de septiembre de 2025 |
Genaro Alejandro Barradas Sánchez Lizeth Guadalupe Bello Peralta |
Se realizó una segunda iteración de los casos de uso |
0.0.1.2 |
9 de septiembre de 2025 |
Omar Morales García |
Se añadió el primer borrador del diagrama de clases |
0.0.1.3 |
11 de septiembre de 2025 |
Genaro Alejandro Barradas Sánchez Lizeth Guadalupe Bello Peralta |
Se realizaron los cambios en base a las observaciones del profesor al listado de casos de uso |
0.0.1.4 |
14 de septiembre de 2025 |
Lizeth Guadalupe Bello Peralta |
Se añadieron las restricciones del proyecto, actores dentro del sistema, alcance del proyecto, visión del sistema y planteamiento del problema |
0.0.1.5 |
17 de septiembre de 2025 |
Genaro Alejandro Barradas Sánchez Omar Morales García Lizeth Guadalupe Bello Peralta |
Se identificaron y plasmaron los QAs del sistema con sus respectivos escenarios y trazabilidad |
0.0.2.0 |
14 de septiembre de 2025 |
Genaro Alejandro Barradas Sánchez Lizeth Guadalupe Bello Peralta Omar Morales García |
Se realizó e integró el diagrama Utility tree |
0.0.2.1 |
21 de septiembre de 2025 |
Omar Morales García |
Se creó y anexó el diagrama de contexto de nivel 0 del sistema |
0.0.2.3 |
21 de septiembre de 2025 |
Omar Morales García |
Se añadió el segundo borrador del diagrama de clases del sistema |
0.0.3.1 |
26 de septiembre de 2025 |
Lizeth Guadalupe Bello Peralta |
Se añadió el diccionario de datos correspondiente al sistema |
0.0.3.2 |
27 de septiembre de 2025 |
Genaro Alejandro Barradas Sánchez |
Se creó el glosario y añadieron conceptos al mismo |
0.0.3.3 |
30 de septiembre de 2025 |
Lizeth Guadalupe Bello Peralta |
Se añadió el Planteamiento del Problema |
0.0.3.4 |
30 de septiembre de 2025 |
Genaro Alejandro Barradas Sánchez |
Se adjuntó la tabla de versiones al documento |
0.0.4 |
30 de septiembre de 2025 |
Omar Morales García |
Se adjuntan imágenes de diagramas de casos de uso, por actores y paquetes |
0.0.4.1 |
30 de septiembre de 2025 |
Lizeth Guadalupe Bello Peralta |
Se añaden dos descripciones de casos de uso del actor Administrador |
0.0.4.2 |
01 de octubre de 2025 |
Omar Morales García |
Se añaden tres descripciones de casos de uso del actor Huésped |
0.0.4.3 |
02 de octubre de 2025 |
Genaro Alejandro Barradas Sánchez |
Se añaden tres descripciones de casos de uso del actor Recepción |
0.0.4.4 |
02 de octubre de 2025 |
Omar Morales García |
Se añaden tres descripciones de casos de uso del actor Huésped |
0.0.4.5 |
03 de octubre de 2025 |
Genaro Alejandro Barradas Sánchez |
Se añaden cuatro descripciones de casos de uso del actor Recepción |
0.0.5 |
03 de octubre de 2025 |
Omar Morales García |
Se añadió la visión y alcance del sistema |
0.0.6 |
04 de octubre de 2025 |
Omar Morales García |
Se añadió el diagrama DFD de nivel 1. |
0.0.7 |
04 de octubre de 2025 |
Genaro Alejandro Barradas Sánchez |
Se añadió la audiencia del documento |
0.1.0 |
04 de octubre de 2025 |
Genaro Alejandro Barradas Sánchez |
Se añadió el alcance y el propósito del documento |
0.1.1 |
06 de octubre de 2025 |
Genaro Alejandro Barradas Sánchez |
Se añadió estructura principal del proyecto para el hito 2 |
0.1.1.1 |
09 de octubre de 2025 |
Omar Morales García |
Se añadieron preocupaciones y restricciones |
0.1.1.2 |
09 de octubre de 2025 |
Genaro Alejandro Barradas Sánchez |
Arreglo de errores de texto y espaciado |
0.1.2 |
09 de octubre de 2025 |
Genaro Alejandro Barradas Sánchez |
Se agregó la vista lógica, especificamente el diagrama de clases y su debida justificación |
0.1.3 |
10 de octubre de 2025 |
Omar Morales García |
Se añadieron diagramas de componentes y de objetos |
0.1.4 |
10 de octubre de 2025 |
Genaro Alejandro Barradas Sánchez |
Se agregó el méotodo de diseño del proyecto |
0.1.5 |
15 de octubre de 2025 |
Lizeth Guadalupe Bello Peralta |
Se añadió el diagrama de conceptos del negocio |
0.1.6 |
18 de octubre de 2025 |
Genaro Alejandro Barradas Sánchez |
Se corrigen errores menores en nombrado de imágenes y texto |
1. Contexto y Alcance del Sistema
1.1. Visión del Sistema
La visión del Sistema de Reservaciones es establecer la plataforma como líder tecnológica, convirtiendo las reservaciones y sistema en una ventaja competitiva a nivel global.
Actualmente, la dependencia en soluciones locales ineficientes y dispersas genera inconsistencias críticas, errores de inventario y un alto riesgo de incidentes (como dobles reservas y dobles cobros). El sistema de reservaciones busca erradicar estos problemas mediante una arquitectura escalable y robusta diseñada para soportar a más de 5,000 hoteles y un millón de habitaciones.
Nuestra prioridad es garantizar la confianza y consistencia en el momento de realziar reservas: el sistema debe operar con una tasa de incidentes de dobles cobros o dobles reservas de cero, incluso bajo escenarios de alta concurrencia. Esto se logrará a través de transacciones atómicas y un riguroso enfoque en la seguridad y trazabilidad.
Siendo así que, permitirá la implementación de precios dinámicos y políticas avanzadas de overbooking gestionadas centralmente para optimizar los ingresos. Finalmente, la eficiencia operacional es clave; el sistema ofrecerá una interfaz intuitiva y altamente disponible que permitirá al 90% del personal novato de recepción completar tareas críticas (check-in/out) de manera autónoma en minutos, garantizando una operación fluida y un servicio al cliente superior.
El Sistema de Reservaciones es el pilar para un crecimiento rentable, la estandarización de procesos y la excelencia operativa en toda la cadena hotelera.
1.2. Alcance
El Alcance del Sistema de Reservaciones define las fronteras del diseño arquitectónico, especificando qué se incluye dentro de la plataforma y qué se excluye, delegándose a sistemas externos o a la infraestructura. El sistema está diseñado para reemplazar las soluciones locales y gestionar el ciclo de vida completo de la reserva y la habitación a través de una plataforma unificada.
1.2.1. Funcionalidades Incluidas (In-Scope)
El Sistema de Reservaciones abarcará los siguientes módulos funcionales principales:
-
Módulo de reservaciones y venta (Huésped) Este módulo gestiona la interacción directa con el cliente y el proceso de venta:
-
Búsqueda y consulta de hoteles: Permitir al huésped buscar hoteles por región/fecha y consultar la disponibilidad de tipos de habitación en tiempo real.
-
Gestión de la Reserva: Incluye la creación de la reserva con control de atomicidad, la modificación de fechas/habitaciones y la cancelación de la reserva, aplicando las políticas de cobro correspondientes.
-
Consulta de Historial: Permitir al huésped revisar sus reservas pasadas y activas.
-
Integración de pagos seguros: Captura segura y tokenización de los datos de pago, garantizando la idempotencia para evitar dobles cobros.
-
-
Módulo de recepción y operaciones (Recepcionista) Este módulo está enfocado en la eficiencia operativa y el manejo diario de huéspedes:
-
Check-in / Check-out: Funciones optimizadas para el personal de recepción, con actualización inmediata del estado de la habitación. El diseño debe priorizar la usabilidad para alcanzar el objetivo de que un novato complete la tarea después de 10 minutos de instrucción.
-
Gestión de cuentas y cobros: Consolidación de todos los cargos de la estancia (tarifa base, impuestos, consumos adicionales) y procesamiento del cobro final con alta seguridad.
-
Servicios adicionales: Registro de cargos a la cuenta por consumos en el bar, lavandería, gimnasio u otros servicios.
-
Gestión de habitaciones: Funcionalidades para cambiar a un huésped de habitación de forma atómica y para marcar habitaciones como "Fuera de Servicio".
-
-
Módulo de administración y configuración (Administrador) Este módulo se centra en las herramientas gerenciales para optimizar ingresos y capacidad:
-
Gestión de hoteles y tipos de habitación: Alta y modificación de hoteles, así como la definición de la categorización de habitaciones, amenidades y capacidades.
-
Configuración avanzada de precios: Definición de tarifas base, precios dinámicos, promociones, descuentos y políticas de temporadas altas.
-
Configuración de políticas de overbooking: Ajuste de los umbrales de sobreventa de inventario, lo que es crítico para la maximización de la capacidad de venta.
-
Monitoreo de inventario: Consulta en tiempo real de la ocupación y disponibilidad en toda la cadena.
-
-
Módulo de seguridad y auditoría (Auditor) Este módulo es esencial para los requisitos de seguridad y confiabilidad del sistema:
-
Generación de reportes de trazabilidad: Consultas avanzadas sobre actividades sospechosas (cancelaciones rápidas, cambios de precio o descuentos) que requieren un log de auditoría inmutable.
-
Reconciliación Financiera: Reportes para conciliar ingresos por servicios adicionales y validar que todos los cobros en línea se hayan procesado y registrado correctamente.
-
Validación de Políticas: Herramientas para asegurar la uniformidad de precios y políticas entre diferentes hoteles o regiones.
-
1.2.2. Funcionalidades Excluidas (Out-of-Scope)
Las siguientes áreas funcionales no forman parte del alcance directo del Sistema de Reservas y se consideran responsabilidades de sistemas o servicios externos:
-
Procesamiento de Pagos: El Sistema de Reservas no almacenará ni procesará directamente información de tarjetas de crédito. Esta responsabilidad se delega por completo a una pasarela de pagos (Payment Gateway).
-
Gestión de Sistemas de Fidelización: El manejo de programas de puntos de lealtad, niveles de membresía o recompensas para huéspedes. El SRC solo notificará a un sistema externo el check-out para que este acredite los puntos.
-
Servicios de Limpieza y Mantenimiento: La gestión de la logística interna de las camareras o técnicos. El SRC solo actualizará el estado de la habitación a "Limpieza Necesaria" (L/N), pero no gestionará la asignación de tareas.
-
Marketing y CRM: Campañas de correo electrónico, gestión de relaciones con el cliente más allá del historial transaccional de reservas.
-
Autenticación de Terceros: La autenticación robusta del personal (Administradores/Recepcionistas) se delegará a un Sistema de Identidad Institucional existente. El SRC solo gestionará la Autorización (RBAC) basada en los roles recibidos.
1.3. Audiencia
Este documento está dirigido a todas las partes interesadas involucradas en el diseño, desarrollo, implementación y mantenimiento del Sistema Hotelero. En particular, está destinado a:
-
Equipo de desarrollo: Ingenieros de software, programadores y diseñadores responsables de implementar la arquitectura y los componentes descritos.
-
Analistas: Encargados de validar que los requisitos funcionales y no funcionales se reflejen correctamente en el diseño propuesto.
-
Equipo de pruebas: Para comprender la estructura del sistema, los módulos clave y las interacciones entre componentes al momento de diseñar y ejecutar pruebas.
-
Arquitectos de software: Para verificar la coherencia del diseño con las decisiones arquitectónicas tomadas y asegurar la calidad del modelo final.
-
Académico: Responsable de evaluar la correcta aplicación de principios de diseño, patrones y tácticas en el proyecto.
-
Usuarios internos de recepción, administración y gestión hotelera: Aunque no se espera que lean el documento completo, podrían consultarlo parcialmente para comprender cómo el sistema satisface sus necesidades funcionales.
1.4. Glosario
| Concepto | Descripción / significado | Estándar |
|---|---|---|
A |
||
Acceso al sistema |
Proceso mediante el cual un usuario inicia sesión en el sistema utilizando sus credenciales (usuario y contraseña) para realizar tareas según su rol. Incluye controles sobre gestión de accesos (autenticación, privilegios mínimos, gestión de identidades, control de contraseñas, sesiones). |
ISO/IEC 27001 Seguridad de la Información |
Atomicidad |
Propiedad de una transacción (especialmente la Reserva) que garantiza que esta se ejecuta completamente o no se ejecuta en absoluto. Es esencial para el requisito de "Confianza y consistencia en la reserva". |
Principio ACID / Arquitectura Distribuida |
ASR (Architecturally Significant Requirement) |
Requisito que tiene un impacto profundo en la estructura del código y es de alto valor para el negocio. Generalmente capturados como Escenarios de Calidad (QAS). |
Marco ADD |
B |
||
Baja Latencia |
Requisito de rendimiento que exige que las operaciones críticas (consulta de Disponibilidad, confirmación de Pago) se completen en un tiempo muy corto, medido en milisegundos (ej. < 500 ms en QAS-03). |
Atributo de Calidad (Rendimiento) |
C |
||
Concurrencia |
Capacidad del sistema para manejar múltiples solicitudes de reserva o consulta simultáneamente (por varios Huéspedes y Recepcionistas) sin comprometer la integridad de los datos de Inventario. |
Atributo de Calidad (Rendimiento) |
Confianza y Consistencia |
Objetivo de Negocio primordial que se traduce en el requisito de tasa de incidentes de dobles cobros o dobles reservas de cero. |
Objetivo de Negocio |
D |
||
Desacoplamiento |
Principio de diseño que busca reducir la dependencia entre los módulos del sistema (Cliente-Servidor) y entre el cliente y los sistemas del servidor, facilitando la Mantenibilidad. |
Principio de Diseño |
Disponibilidad |
Atributo de Calidad que mide la proporción de tiempo que el sistema o una función crítica (ej. consulta de disponibilidad) está operativa y accesible. |
ISO/IEC 25010 |
E |
||
Escalabilidad |
Capacidad del SRC para manejar un aumento significativo en la carga de trabajo (más de 5,000 hoteles y 1,000,000 de habitaciones) sin degradar el Rendimiento o la Latencia. |
Atributo de Calidad |
I |
||
Idempotencia |
Táctica de seguridad y diseño que garantiza que una operación de cobro, si se repite accidentalmente, solo se procesará una vez. Es clave para evitar dobles cobros. |
Principio de Diseño / Seguridad |
Inventario |
La colección de recursos vendibles del hotel, principalmente las Habitaciones, junto con sus estados (Disponible, Bloqueada, Reservada). |
Entidad de Negocio |
L |
||
Log Inmutable |
Almacén de datos de solo escritura que registra todos los eventos críticos de seguridad y transacción para garantizar la trazabilidad y el no repudio. |
Táctica de Seguridad |
M |
||
Mantenibilidad |
Atributo de Calidad que describe la facilidad con la que el sistema puede ser modificado, corregido y actualizado, un impulsor clave para la adopción de un sistema Cliente-Servidor. |
ISO/IEC 25010 |
O |
||
Observabilidad |
La capacidad del sistema para entender su estado interno a partir de datos externos, esencial para monitorear el Rendimiento y diagnosticar fallas en un sistema Cliente-Servidor. |
Atributo de Calidad |
Overbooking |
Política estratégica de gestión de inventario que permite la sobreventa controlada de Habitaciones, basándose en la probabilidad histórica de cancelaciones para maximizar los ingresos. |
Regla de Negocio |
P |
||
Pasarela de Pagos |
Sistema externo con el que el SRC se comunica para procesar y autorizar transacciones financieras (Cobro y reembolso). Se encuentra out-of-scope. |
Entidad Externa |
PCI-DSS |
Estándar de seguridad obligatorio para cualquier entidad que procese, almacene o transmita datos de tarjetas de crédito. Cumplimiento delegado a la Pasarela de Pagos. |
Estándar de Seguridad |
Q |
||
QAS (Escenario de Calidad) |
Descripción formal de una prueba de diseño que evalúa un Atributo de Calidad específico bajo ciertas condiciones (ej. QAS-03 evalúa la Disponibilidad bajo Falla de DB). |
Herramienta de Arquitectura |
R |
||
Rendimiento |
Atributo de Calidad que mide la velocidad y eficiencia del sistema bajo carga, incluyendo métricas como latencia y capacidad de respuesta. |
ISO/IEC 25010 |
Reserva |
La entidad central de negocio que representa el acuerdo contractual entre el Hotel y el Huésped, su ciclo de vida es el corazón del SRC. |
Entidad de Negocio |
S |
||
SR (Sistema de Reservaciones) |
Objeto principal de diseño de este proyecto. Plataforma unificada y robusta que reemplaza las soluciones locales de los hoteles. |
Contexto del Sistema |
T |
||
Trazabilidad |
Requisito de Seguridad y Auditoría que exige que cada evento crítico tenga un rastro documentado, inmutable y verificable. |
Atributo de Calidad (Seguridad) |
Táctica |
Una decisión de diseño específica y concreta utilizada para controlar o asegurar un atributo de calidad, sirviendo como bloque constructivo para un Patrón Arquitectónico (ej. "Usar caché" es una Táctica para Rendimiento). |
Concepto de Arquitectura |
U |
||
Usabilidad |
Atributo de Calidad clave para el módulo de recepción que mide la facilidad de uso del sistema, con el objetivo de reducir el tiempo de entrenamiento de los recepcionistas novatos. |
ISO/IEC 25010 |
2. Definición de requerimientos
2.1. Planteamiento del Problema
La industria hotelera es una de las más competidas a nivel mundial, lo que exige mantenerse a la vanguardia y dar servicios superiores para sobresalir. La cadena hotelera, posicionada como un líder global en la hospitalidad, opera a una escala sin precedentes que necesita máxima eficiencia operativa. Por lo tanto, para mantener su liderazgo estratégico, es imperativo gestionar un vasto inventario de 1,000,000 de habitaciones de forma unificada. Esto requiere uniformidad en el proceso para gestionar las más de 5000 propiedades a nivel mundial. A pesar de esta magnitud,la realidad operativa actual revela una vulnerabilidad crítica: cada hotel utiliza una solución local de reservas, lo que genera inconsistencias entre hoteles, errores y dificultades en el proceso de centralización.
Este problema de fragmentación se traduce en que se crean múltiples fuentes de información, lo que genera diversos reportes o ingresos que pueden diferir entre el hotel y el corporativo. Esto hace necesaria una conciliación manual que consume tiempo y retrasa la toma de decisiones estratégicas. Además, los empleados de central o gerentes de hotel también pierden tiempo al tener que ingresar datos, exportar o manipular información de diferentes sistemas, elevando la fricción operativa de la cadena.
Sumado a esta ineficiencia, el riesgo tecnológico es significativo. La arquitectura basada en soluciones locales individuales está desactualizada. Mantener estos sistemas requiere soporte especializado y caro, lo cual ya no es escalable ni sostenible. En consecuencia, la infraestructura actual, al tener 5000 puntos de entrada en lugar de uno centralizado, multiplica las vulnerabilidades, es decir, el riesgo de ciberataques o fallas en el cumplimiento de normativas de privacidad de datos, comprometiendo la fiabilidad de la operación.
Por consiguiente, la justificación de este proyecto radica en la necesidad de transformar la gestión de reservaciones de un costo operativo a una ventaja competitiva. La implementación de una plataforma centralizada y robusta es la única vía para optimizar las operaciones diarias a esta escala. Un sistema unificado permitirá llevar a cabo procesos más eficientes, asegurando un incremento estructural de los ingresos y mejorando la satisfacción del cliente. Al estandarizar la arquitectura tecnológica, el nuevo sistema permitirá una centralización de datos, eliminando la conciliación manual y, por consiguiente, recortando tiempos y mitigando riesgos de seguridad.
Además, esta transformación desbloqueará la capacidad de implementar precios dinámicos y políticas de ocupación avanzadas a nivel de cadena, garantizando la máxima monetización del inventario y la escalabilidad futura.
2.2. Alcance y propósito del diseño
El presente apartado tiene como finalidad formalizar las fronteras del diseño arquitectónico del Sistema Hotelero, estableciendo los límites conceptuales, técnicos y organizacionales dentro de los cuales se desarrollará la solución de software. Su propósito es definir con precisión qué aspectos del sistema serán abordados por el diseño, quiénes participan en el proceso arquitectónico y cuáles son sus preocupaciones principales, las cuales funcionarán como base para la definición de los impulsores arquitectónicos (Architectural Significant Requirements, ASRs) que guiarán las decisiones técnicas posteriores.
El diseño arquitectónico traduce los requerimientos funcionales y no funcionales en una estructura coherente, organizada y justificable, donde cada decisión responde a una necesidad o atributo de calidad identificado. Por ello, este apartado delimita lo que el sistema debe hacer (qué casos de uso y funcionalidades cubre) frente a cómo será diseñado para hacerlo posible (qué estilos, tácticas, componentes y patrones implementará).
2.2.1. Propósito del diseño arquitectónico
El propósito del diseño arquitectónico es proporcionar una representación estructurada del sistema que permita entender su organización interna, interacción de componentes, flujo de información y comportamiento en ejecución, asegurando que cumpla con los objetivos del negocio y los atributos de calidad priorizados: usabilidad, disponibilidad, seguridad y rendimiento.
Este diseño actúa como un lenguaje común entre los distintos interesados del proyecto (analistas, desarrolladores, evaluadores y usuarios), estableciendo una visión compartida de cómo la solución técnica materializa los requisitos del sistema.
En particular, este documento busca:
-
Establecer las fronteras técnicas del diseño, indicando qué capas, módulos, clases e interfaces son parte de esta versión.
-
Identificar los stakeholders que influyen en las decisiones arquitectónicas.
-
Documentar sus preocupaciones (concerns), que servirán como base para definir los impulsores arquitectónicos.
-
Garantizar la trazabilidad entre las necesidades de los interesados y las decisiones técnicas que las atienden.
-
Proporcionar un marco de referencia para el método de diseño ADD (Attribute Driven Design).
2.2.2. Fronteras del diseño
Dentro de las fronteras del diseño se incluyen:
-
Las capas internas del sistema: presentación, lógica de negocio y persistencia de datos.
-
Los casos de uso de huésped, recepción, administración y auditoría, que representan la funcionalidad principal del sistema.
-
Los modelos de datos relacionados con habitaciones, reservas, clientes, servicios y transacciones.
-
Las decisiones arquitectónicas fundamentales (estilos, patrones, tácticas y restricciones).
Fuera de las fronteras del diseño se consideran:
-
Los sistemas externos no implementados directamente (pasarelas reales de pago, contabilidad o facturación).
-
Los mecanismos avanzados de auditoría o analítica.
2.2.3. Stakeholders (interesados)
El diseño arquitectónico del Sistema Hotelero debe responder a las necesidades, expectativas y responsabilidades de los distintos interesados (stakeholders) involucrados en su desarrollo, operación y evaluación. Cada uno de ellos influye directa o indirectamente en las decisiones arquitectónicas al aportar requisitos funcionales o atributos de calidad que condicionan el diseño.
| Stakeholder | Rol / Interés | Responsabilidad dentro del diseño |
|---|---|---|
Huésped |
Usuario final del servicio hotelero. Realiza reservas, consultas y cancelaciones a través del recepcionista o de interfaces de atención. |
Indirectamente define las necesidades de usabilidad, confiabilidad y seguridad de los datos personales y pagos. Sus expectativas de rapidez y claridad influyen en el diseño de la interfaz y los tiempos de respuesta. |
Recepcionista |
Usuario operativo del sistema. Gestiona el check-in, check-out, reservas y cobros. |
Su trabajo diario orienta los requerimientos de usabilidad, eficiencia operativa y disponibilidad continua. Las decisiones de interfaz, validación y retroalimentación se fundamentan en sus flujos de trabajo. |
Administrador del hotel |
Supervisa la operación general, controla la disponibilidad de habitaciones, tarifas y reportes financieros. |
Su enfoque está en la confiabilidad, precisión e integridad de la información, así como en la seguridad de las transacciones y la trazabilidad de los procesos de cobro y auditoría. |
Auditor |
Encargado de verificar la veracidad de la información contable y operativa registrada en el sistema. |
Requiere trazabilidad, seguridad y consistencia de datos. Sus expectativas impulsan tácticas de auditoría, registro de logs y control de acceso a la información. |
Equipo de desarrollo |
Conforma a los estudiantes encargados de construir el sistema conforme al diseño arquitectónico. |
Implementa los componentes, interfaces y módulos definidos en el diseño, asegurando que cumplan con los atributos de calidad establecidos (usabilidad, seguridad, rendimiento, disponibilidad). |
Analista de sistemas |
Define los casos de uso y valida que el diseño cubra los requerimientos funcionales. |
Garantiza la coherencia entre los requerimientos capturados y la estructura del diseño, facilitando la trazabilidad entre necesidades y soluciones técnicas. |
Académico asesor |
Evaluador académico y supervisor técnico del proyecto. |
Verifica que la arquitectura cumpla criterios de corrección técnica, consistencia interna y justificación de decisiones conforme al método ADD. |
2.2.4. Función del diseño como base para impulsores arquitectónicos
Cada uno de los concerns anteriores servirá como entrada directa para definir los impulsores arquitectónicos (ASRs) que guiarán las decisiones de diseño. Por ejemplo:
-
Los concerns de usabilidad impulsarán decisiones sobre diseño de interfaz, validación y retroalimentación visual.
-
Los concerns de disponibilidad determinarán tácticas de replicación, rollback y manejo de errores.
-
Los concerns de seguridad orientarán la aplicación de mecanismos de autenticación y auditoría.
-
Los concerns de rendimiento guiarán la selección de patrones de concurrencia, caching y optimización de consultas.
2.3. Diagrama de casos de uso
2.4. Descripciones de casos de uso
2.4.1. AC01 - Huésped
CU01 - Buscar hotel
| Nombre | CU01 - Buscar hotel |
|---|---|
Actor(es) |
Huésped (AC01) |
Objetivo |
El HUÉSPED busca hoteles disponibles que cumplan con sus criterios de búsqueda (destino, fechas). |
Precondiciones |
PRE-1. Existen HOTELes registrados y accesibles dentro del sistema. |
Flujo normal |
1. El sistema muestra una lista de hoteles disponibles con barra de búsqueda. 2. El HUÉSPED selecciona un hotel y da clic en “Aceptar”. 3. El sistema muestra información del hotel con filtros. 4. El HUÉSPED visualiza la información y da clic en “Cancelar”. 5. El sistema cierra la ventana. 6. Termina el caso de uso. |
Flujo alterno |
FA 2.1: El HUÉSPED da clic en “Salir”. El sistema confirma y finaliza. FA 4.1: El HUÉSPED consulta disponibilidad → continúa en CU02. |
Excepción |
EX1: No hay hoteles registrados. El sistema muestra error y finaliza. |
Postcondiciones |
POST-1. El HUÉSPED visualiza la lista de hoteles disponibles. |
CU02 - Consultar disponibilidad
| Nombre | CU02 - Consultar disponibilidad |
|---|---|
Actor(es) |
Huésped (AC01) |
Objetivo |
El HUÉSPED consulta la disponibilidad de una habitación de un hotel. |
Precondiciones |
PRE-1. Existen hoteles con habitaciones registradas y tarifas actualizadas. |
Flujo normal |
1. El sistema muestra información del hotel con filtros. 2. El HUÉSPED selecciona una habitación. 3. El sistema muestra información de la habitación. 4. El HUÉSPED da clic en “Reservar”. 5. El sistema muestra disponibilidad de la habitación. 6. El HUÉSPED da clic en “Cancelar”. 7. Termina el caso de uso. |
Flujo alterno |
FA 2.1: El HUÉSPED da clic en “Salir”. El sistema confirma y finaliza. FA 6.1: El HUÉSPED decide reservar → continúa en CU03. |
Excepción |
EX1: No hay habitaciones registradas. El sistema muestra error y finaliza. |
Postcondiciones |
POST-1. El HUÉSPED consulta la disponibilidad de una habitación. |
CU03 - Realizar reserva
| Nombre | CU03 - Realizar reserva |
|---|---|
Actor(es) |
Huésped (AC01) |
Objetivo |
El HUÉSPED realiza la reserva de una habitación. |
Precondiciones |
PRE-1. La habitación seleccionada está disponible y con tarifas actualizadas. |
Flujo normal |
1. El sistema valida disponibilidad y muestra la información de la habitación. 2. El HUÉSPED da clic en “Reservar”. 3. El sistema muestra ventana con fechas y botón “Reservar”. 4. El HUÉSPED selecciona fechas y confirma. 5. El sistema valida y muestra información de pago. 6. El HUÉSPED ingresa datos personales y confirma. 7. El sistema procesa pago y muestra mensaje de confirmación. 8. El HUÉSPED da clic en “Aceptar”. 9. Termina el caso de uso. |
Flujo alterno |
FA 2.1: El HUÉSPED cancela el proceso. FA 6.1: El HUÉSPED paga en check-out. FA 7.1: Pago rechazado. |
Excepción |
EX1: Error de conexión con BD. EX2: Error de conexión con pasarela de pago. |
Postcondiciones |
POST-1. El HUÉSPED realiza la reserva y el sistema la registra. |
CU04 - Modificar reserva
| Nombre | CU04 - Modificar reserva |
|---|---|
Actor(es) |
Huésped (AC01) |
Objetivo |
El HUÉSPED modifica una reserva activa. |
Precondiciones |
PRE-1. El sistema tiene reservas registradas. |
Flujo normal |
1. El sistema recupera reservas activas. 2. El HUÉSPED selecciona una reserva. 3. El sistema muestra detalles con opción de modificar. 4. El HUÉSPED selecciona “Modificar reserva”. 5. El sistema muestra campos editables. 6. El HUÉSPED edita y confirma. 7. El sistema valida cambios y procesa pago si aplica. 8. El HUÉSPED confirma. 9. El sistema registra cambios y finaliza. |
Flujo alterno |
FA 2.1: Cancelación del proceso. FA 4.1: El flujo continúa en CU05 - Cancelar reserva. FA 9.1: Pago rechazado. |
Excepción |
EX1: Error de conexión con BD. EX2: Error con el banco. |
Postcondiciones |
POST-1. La reserva queda modificada en el sistema. |
CU05 - Cancelar reserva
| Nombre | CU05 - Cancelar reserva |
|---|---|
Actor(es) |
Huésped (AC01) |
Objetivo |
El HUÉSPED cancela una reserva activa. |
Precondiciones |
PRE-1. El sistema tiene reservas registradas. |
Flujo normal |
1. El sistema recupera reservas activas. 2. El HUÉSPED selecciona una reserva. 3. El sistema muestra detalles con opción de cancelar. 4. El HUÉSPED selecciona “Cancelar reserva”. 5. El sistema solicita confirmación. 6. El HUÉSPED confirma. 7. El sistema cancela la reserva y muestra mensaje. 8. El HUÉSPED confirma. 9. Termina el caso de uso. |
Flujo alterno |
FA 2.1: Cancelación del proceso. FA 6.1: El HUÉSPED no confirma cancelación. |
Excepción |
EX1: Error de conexión con BD. EX2: Error en cancelación de la reserva. |
Postcondiciones |
POST-1. La reserva queda cancelada en el sistema. |
CU06 - Consultar historial de reserva
| Nombre | CU06 - Consultar historial de reservas |
|---|---|
Actor(es) |
Huésped (AC01) |
Objetivo |
El HUÉSPED revisa todas las reservas pasadas, activas y canceladas asociadas a su cuenta. |
Precondiciones |
PRE-1. El sistema cuenta con reservas registradas por el HUÉSPED. |
Flujo normal |
1. El sistema recupera de la base de datos las reservas activas, concluidas y canceladas del HUÉSPED, mostrando los resultados con opciones de filtro (Activas, Pasadas, Canceladas) y el botón “Cancelar”. 2. El HUÉSPED visualiza la lista de reservas y selecciona una para ver el detalle. 3. El sistema muestra la información completa de la reserva seleccionada con los botones “Modificar reserva” (si está activa), “Cancelar reserva” (si está activa) y “Cancelar”. 4. El HUÉSPED selecciona “Cancelar”. 5. Termina el caso de uso. |
Flujo alterno |
FA 2.1: El HUÉSPED da clic en “Salir”. El sistema muestra confirmación y finaliza. FA 4.1: El flujo continúa en CU04 - Modificar reserva. FA 4.2: El flujo continúa en CU05 - Cancelar reserva. |
Excepción |
EX1: El sistema no puede conectarse con la base de datos. Muestra mensaje de error y finaliza. |
Postcondiciones |
POST-1. El HUÉSPED visualiza el historial de sus reservaciones. |
2.4.2. AC02 - Recepción
CU07 - Registrar check-in
| Nombre | CU07 - Registrar check-in |
|---|---|
Actor(es) |
Recepción (AC02) |
Objetivo |
El recepcionista registra la entrada del huésped en el sistema. |
Precondiciones |
PRE-1. Existe una reserva activa a nombre del huésped. PRE-2. El huésped se presenta en la recepción |
Flujo normal |
1. El sistema muestra una ventana donde solicita el nombre del huésped o persona que hizo la reserva y el botón “Buscar”. 2. El recepcionista ingresa los datos de búsqueda de la reserva y da clic en la opción “Buscar”. 3. El sistema busca la reserva en la base de datos y despliega los detalles de la reserva (nombre del huésped, fecha de inicio y fin, habitación asignada) junto a los botones “Confirmar check-in” y “Cancelar”. (ver FA 3.1) (ver EX1) 4. El recepcionista valida los datos y da clic en el botón “Confirmar check-in”. (ver FA 4.1) 5. El sistema muestra una ventana con campos a llenar para realizar la pre-autorización de la tarifa estándar (dependiendo de la habitación seleccionada) y depósito de seguridad con cargo en la tarjeta de crédito del huésped con el botón “Realizar pre-autorización”. (ver FA 5.1) 6. El recepcionista solicita la tarjeta de crédito del huésped y llena los campos solicitados y da clic en el botón “Realizar pre-autorización”. 7. El sistema cambia el estado de la habitación a “Ocupada” y muestra la ventana con un código autogenerado de 6 dígitos para acceder a la habitación junto con el botón “Finalizar”. (ver EX1) 8. El recepcionista entrega la llave al huésped y confirma en el sistema con botón “Finalizar”. 9. El sistema muestra el mensaje “Check-in registrado exitosamente”. 10. Termina el caso de uso. |
Flujo alterno |
FA 3.1 No existe la reserva en la base de datos 1. El sistema muestra la ventana emergente con el mensaje “Reserva no encontrada, vuelve a intentarlo” y el botón “Aceptar”. 2. El recepcionista da clic en el botón “Aceptar”. 3. Regresa al paso 1 del flujo normal. FA 4.1 El recepcionista cancela el proceso de la búsqueda de reserva 1. El recepcionista da clic en el botón “Cancelar”. 2. El sistema muestra la ventana de confirmación con el mensaje “¿Está seguro que quiere salir?” con los botónes “Aceptar” y “Cancelar”. 3. Si el recepcionista da clic en el botón “Aceptar”, termina el caso de uso. 4. Si el recepcionista da clic en el botón “Cancelar”, regresa al paso 3 del flujo normal. FA 5.1 El huésped realizó una reserva prepagada 1. Continúa al paso 7 del flujo normal. |
Excepción |
EX1. El sistema no puede conectarse con la base de datos. 1. El sistema muestra la ventana emergente de error y el mensaje “Error en la conexión con la base de datos, inténtalo más tarde” junto al botón “Aceptar”. 2. El recepcionista da clic en el botón “Aceptar” para cerrar la ventana. 3.Termina el caso de uso. |
Postcondiciones |
POST-1. El huésped queda registrado como en estancia POST-2. La habitación cambia su estado a “Ocupada”. |
CU08 - Registrar check-out
| Nombre | CU08 - Registrar check-out |
|---|---|
Actor(es) |
Recepción (AC02) |
Objetivo |
El recepcionista registra la salida del huésped en el sistema y bloquea la habitación. |
Precondiciones |
PRE-1. El huésped debe tener una estancia activa. |
Flujo normal |
1. El sistema muestra una ventana donde solicita el número de reserva y el botón “Buscar”. 2. El recepcionista ingresa los datos de búsqueda de la reserva y da clic en la opción “Buscar”. 3. El sistema busca la reserva en la base de datos y despliega los detalles de la reserva (nombre del huésped, fecha de inicio y fin, habitación asignada y los cargos pendientes (si hay)) junto a los botones “Confirmar check-out” y “Cancelar”. (ver EX1) 4. El recepcionista valida los datos y da clic en el botón “Confirmar check-out”. (ver FA 4.1) 5. El sistema calcula el total a pagar y muestra los botones “Cobrar ahora”, “Continuar” y “Regresar”. (ver FA 5.1) 6. El recepcionista da clic en el botón “Continuar” (ver FA 6.1) (ver FA 6.2) 7. El sistema cambia el estado de la habitación a “Disponible”, genera un comprobante impreso junto con el botón “Finalizar”. (ver EX1) 8. El recepcionista entrega el recibo al huésped y confirma en el sistema con botón “Finalizar”. 9. El sistema muestra el mensaje “Check-out realizado exitosamente”. 10. Termina el caso de uso. |
Flujo alterno |
FA 4.1 El recepcionista cancela el proceso de la búsqueda de reserva 1. El recepcionista da clic en el botón “Cancelar”. 2. El sistema muestra la ventana de confirmación con el mensaje “¿Está seguro que quiere salir?” con los botones “Aceptar” y “Cancelar”. 3. Si el recepcionista da clic en el botón “Aceptar”, termina el caso de uso. 4. Si el recepcionista da clic en el botón “Cancelar”, regresa al paso 3 del flujo normal. FA 5.1 La reserva fue de prepago 1. Continúa al paso 7 del flujo normal. FA 6.1 El recepcionista procede a completar el cobro. 1. El recepcionista da clic en el botón “Cobrar ahora”. 2. El flujo normal continúa en el CU09 - Completar cobro 3. Termina el caso de uso FA 6.2 El recepcionista procede a completar el cobro. 1. El recepcionista da clic en el botón “Regresar”. 2. Regresa al paso 5 del flujo normal. |
Excepción |
EX1. El sistema no puede conectarse con la base de datos. 1. El sistema muestra la ventana emergente de error y el mensaje “Error en la conexión con la base de datos, inténtalo más tarde” junto al botón “Aceptar”. 2. El recepcionista da clic en el botón “Aceptar” para cerrar la ventana. 3.Termina el caso de uso. |
Postcondiciones |
POST-1. La habitación se marca como “Disponible”. POST-2. El huésped queda registrado como salida finalizada. |
CU09 - Completar cobro
| Nombre | CU09 - Completar cobro |
|---|---|
Actor(es) |
Recepción (AC02) |
Objetivo |
El recepcionista realiza el cobro al huésped una vez terminada su estancia en el hotel |
Precondiciones |
PRE-1. Deben existir cargos pendientes por pagar |
Flujo normal |
1. El sistema muestra la ventana con el monto total y con el botón “Procesar pago”. 2. El recepcionista da clic en “Procesar pago”. 3. El sistema envía solicitud a pasarela de pagos, y muestra en pantalla el mensaje “La transacción se realizó correctamente” junto con el botón “Aceptar”. (ver EX1) 4. El recepcionista observa el resultado en pantalla y confirma con el botón “Aceptar”. 5. El sistema registra la transacción en la base de datos, muestra el mensaje “Pago completado exitosamente” junto al botón “Aceptar” y genera comprobante impreso. (ver EX2) 6. El recepcionista da clic en “Aceptar” y entrega comprobante impreso al huésped. 7. Termina el caso de uso. |
Flujo alterno |
N/A |
Excepción |
EX1. El sistema no puede conectarse con la pasarela de pagos 1. El sistema muestra la ventana emergente de error y el mensaje “Ha ocurrido un error al realizar el pago, inténtalo más tarde” junto al botón “Aceptar”. 2. El recepcionista da clic en el botón “Aceptar” para cerrar la ventana. 3. Termina el caso de uso. EX2. El sistema no puede conectarse con la base de datos. 1. El sistema muestra la ventana emergente de error y el mensaje “Error en la conexión con la base de datos, inténtalo más tarde” junto al botón “Aceptar”. 2. El recepcionista da clic en el botón “Aceptar” para cerrar la ventana. 3. Termina el caso de uso. |
Postcondiciones |
POST-1. El pago queda registrado en el sistema. POST-2. Se genera comprobante impreso. |
CU10 - Registrar consumo de servicios
| Nombre | CU10 - Registrar consumo de servicios |
|---|---|
Actor(es) |
Recepción (AC02) |
Objetivo |
El recepcionista registra consumos adicionales del huésped durante su instancia (desayuno, consumo de productos, lavandería, etc.) |
Precondiciones |
PRE-1. El huésped debe tener una estancia activa. |
Flujo normal |
1. El sistema muestra la ventana “Registro de consumo”, solicitando los datos del huésped y número de habitación junto al botón “Buscar”. 2. El recepcionista ingresa los datos solicitados y da clic en “Buscar”. 3. El sistema consulta la base de datos y muestra la cuenta activa de dicha habitación, el campo para introducir el nuevo servicio y los botones “Agregar servicio” y “Regresar”. (ver EX1) 4. El recepcionista ingresa el tipo de servicio consumido, cantidad y costo y da clic en “Agregar servicio”. (ver FA 4.1) 5. El sistema actualiza la cuenta de la habitación y muestra el mensaje “El servicio se agregó correctamente” con el botón “Aceptar”. (ver EX1) 6. El recepcionista da clic en “Aceptar”. 7. Termina el caso de uso |
Flujo alterno |
FA 4.1 El recepcionista decide regresar 1. El recepcionista da clic en el botón “Regresar”. 2. El sistema muestra la ventana de confirmación con el mensaje “¿Está seguro que quiere salir?” con los botones “Aceptar” y “Cancelar”. 3. Si el recepcionista da clic en el botón “Aceptar”, termina el caso de uso. 4. Si el recepcionista da clic en el botón “Cancelar”, regresa al paso 3 del flujo normal. |
Excepción |
EX1. El sistema no puede conectarse con la base de datos. 1. El sistema muestra la ventana emergente de error y el mensaje “Error en la conexión con la base de datos, inténtalo más tarde” junto al botón “Aceptar”. 2. El recepcionista da clic en el botón “Aceptar” para cerrar la ventana. 3. Termina el caso de uso. |
Postcondiciones |
POST-1. El consumo queda registrado en la cuenta del huésped. |
CU11 - Gestionar cambio de habitación
| Nombre | CU11 - Gestionar cambio de habitación |
|---|---|
Actor(es) |
Recepción (AC02) |
Objetivo |
El recepcionista cambia al huésped de habitación de acuerdo a la disponibilidad y respetando tarifas |
Precondiciones |
PRE-1. El huésped tiene una estancia activa. PRE-2. Debe haber habitaciones disponibles. |
Flujo normal |
1. El sistema muestra la ventana “Cambio de habitación” solicitando el nombre del huésped y el botón “Buscar”. 2. El recepcionista ingresa los datos y presiona “Buscar”. 3. El sistema muestra una lista de habitaciones con disponibilidad con el botón “Asignar”. (ver EX2) 4. El recepcionista selecciona una habitación y da clic en el botón “Asignar”. 5. El sistema muestra la habitación actual a la izquierda y la habitación nueva seleccionada a la izquierda y muestra el cargo a cobrar por el cambio y el botón “Pagar en efectivo” “Pagar con tarjeta de crédito” “Regresar”. 6. El recepcionista da clic en “Pagar con tarjeta de crédito”. (ver FA 6.1) (ver FA 6.2) 7. El sistema muestra una ventana con campos a llenar para realizar el cargo en la tarjeta de crédito del huésped y los botones “Realizar cobro” y “Cancelar”. 8. El recepcionista solicita la tarjeta de crédito del huésped y llena los campos solicitados y da clic en el botón “Realizar cobro”. (ver FA 8.1) 9. El sistema envía solicitud a pasarela de pagos, y muestra en pantalla el mensaje “La transacción se realizó correctamente” junto con el botón “Aceptar”. (ver EX1) 10. El recepcionista observa el resultado en pantalla y confirma con el botón “Aceptar”. 11. El sistema registra la transacción en la base de datos, muestra el mensaje “Pago completado exitosamente” junto al botón “Aceptar”, también cambia el estado de las habitaciones, la anterior a “Disponible” y la actualizada a “Ocupada” y genera comprobante impreso. (ver EX2) 12. El recepcionista da clic en “Aceptar” y entrega comprobante impreso al huésped. 13. Termina el caso de uso |
Flujo alterno |
FA 6.1 El huésped decide pagar en efectivo 1. El recepcionista da clic en el botón “Pagar en efectivo”. 2. El sistema muestra en la ventana la cantidad a cobrar y el campo para introducir la cantidad pagada desbloquea la caja registradora. 3. El recepcionista introduce la cantidad a cobrar en la caja y escribe en el campo la cantidad introducida. 4. El sistema realiza la resta y muestra en pantalla el cambio que se debe regresar. 5. El recepcionista toma el dinero de cambio y cierra la caja. 6. El sistema genera el comprobante impreso, y registra la transacción en la base de datos, y muestra el mensaje “Pago completado exitosamente” junto al botón “Aceptar”. (ver EX2) 7. El recepcionista da clic en el botón “Aceptar” y entrega el comprobante impreso al huésped. 8. Termina el caso de uso. FA 6.2 El recepcionista decide regresar 1. El recepcionista da clic en el botón “Regresar”. 2. El sistema muestra la ventana de confirmación con el mensaje “¿Está seguro que quiere salir?” con los botones “Aceptar” y “Cancelar”. 3. Si el recepcionista da clic en el botón “Aceptar”, termina el caso de uso. 4. Si el recepcionista da clic en el botón “Cancelar”, regresa al paso 5 del flujo normal. FA 8.1 El recepcionista decide cancelar 1. El recepcionista da clic en el botón “Cancelar”. 2. El sistema muestra la ventana de confirmación con el mensaje “¿Está seguro que quiere salir?” con los botones “Aceptar” y “Cancelar”. 3. Si el recepcionista da clic en el botón “Aceptar”, termina el caso de uso. 4. Si el recepcionista da clic en el botón “Cancelar”, regresa al paso 7 del flujo normal. |
Excepción |
EX1. El sistema no puede conectarse con la pasarela de pagos 1. El sistema muestra la ventana emergente de error y el mensaje “Ha ocurrido un error al realizar el pago, inténtalo más tarde” junto al botón “Aceptar”. 2. El recepcionista da clic en el botón “Aceptar” para cerrar la ventana. 3. Termina el caso de uso. EX2. El sistema no puede conectarse con la base de datos. 1. El sistema muestra la ventana emergente de error y el mensaje “Error en la conexión con la base de datos, inténtalo más tarde” junto al botón “Aceptar”. 2. El recepcionista da clic en el botón “Aceptar” para cerrar la ventana. 3. Termina el caso de uso. |
Postcondiciones |
POST-1. La reserva se actualiza con la nueva habitación. |
CU12 - Gestionar bloqueos de habitaciones
| Nombre | CU12 - Gestionar bloqueos de habitaciones |
|---|---|
Actor(es) |
Recepción (AC02) |
Objetivo |
El recepcionista marca una habitación como fuera de servicio por determinado motivo (mantenimiento o limpieza) impidiendo su reserva |
Precondiciones |
PRE-1. La habitación debe existir en el sistema. |
Flujo normal |
1. El sistema muestra la ventana “Bloqueo de habitación” solicitando el número de habitación, junto al botón “Continuar”. 2. El recepcionista introduce el número de habitación a bloquear. 3. El sistema verifica que la habitación no esté en estado “Ocupada” y muestra en la ventana un cuadro combinado para seleccionar el motivo junto a los botones “Bloquear” y “Cancelar”. (ver EX1) 4. El recepcionista selecciona del cuadro combinado una opción y da clic en “Bloquear”. (ver FA 4.1) 5. El sistema cambia el estado de la habitación a “Fuera de servicio” y muestra el mensaje “La habitación se ha bloqueado correctamente” con el botón “Aceptar”. (ver EX1) 6. El recepcionista da clic en el botón “Aceptar”. 7. Termina el caso de uso |
Flujo alterno |
FA 8.1 El recepcionista decide cancelar el proceso 1. El recepcionista da clic en el botón “Cancelar”. 2. El sistema muestra la ventana de confirmación con el mensaje “¿Está seguro que quiere salir?” con los botones “Aceptar” y “Cancelar”. 3. Si el recepcionista da clic en el botón “Aceptar”, termina el caso de uso. 4. Si el recepcionista da clic en el botón “Cancelar”, regresa al paso 7 del flujo normal. |
Excepción |
EX1. El sistema no puede conectarse con la base de datos. 1. El sistema muestra la ventana emergente de error y el mensaje “Error en la conexión con la base de datos, inténtalo más tarde” junto al botón “Aceptar”. 2. El recepcionista da clic en el botón “Aceptar” para cerrar la ventana. 3.Termina el caso de uso. |
Postcondiciones |
POST-1. La habitación queda en estado “Fuera de servicio”. |
CU13 - Cancelar reserva a petición del cliente en recepción
| Nombre | CU13 - Cancelar reserva a petición del cliente en recepción |
|---|---|
Actor(es) |
Recepción (AC02) |
Objetivo |
El recepcionista cancela la reserva directamente en el hotel si el cliente lo solicita |
Precondiciones |
PRE-1. El huésped debe tener una reserva activa. |
Flujo normal |
1. El sistema muestra la ventana “Cancelar reserva” con campos a llenar de los datos del huésped junto al botón “Buscar”. 2. El recepcionista ingresa los datos solicitados y da clic en “Buscar”. 3. El sistema consulta la base de datos y muestra los detalles de la reserva, y las políticas de cancelación junto al botón “Finalizar” y “Regresar”. (ver EX1) 4. El recepcionista le explica las políticas al huésped, y da clic “Finalizar”. (ver FA 4.1) 5. El sistema actualiza el estado de la reserva a “Cancelada” y muestra el mensaje “Reserva cancelada exitosamente” con el botón “Aceptar”. (ver EX1) 6. El recepcionista da clic en “Aceptar”. 7. Termina el caso de uso. |
Flujo alterno |
FA 4.1 El recepcionista decide regresar 1. El recepcionista da clic en el botón “Regresar”. 2. Regresa al paso 1 del flujo normal. |
Excepción |
EX1. El sistema no puede conectarse con la base de datos. 1. El sistema muestra la ventana emergente de error y el mensaje “Error en la conexión con la base de datos, inténtalo más tarde” junto al botón “Aceptar”. 2. El recepcionista da clic en el botón “Aceptar” para cerrar la ventana. 3. Termina el caso de uso. |
Postcondiciones |
POST-1. La reserva queda cancelada POST-2. La habitación queda disponible. |
2.4.3. AC03 - Administrador
CU14 - Gestionar hoteles de la cadena
| Nombre | Gestionar hoteles de la cadena |
|---|---|
Actor(es) |
Administrador |
Objetivo |
El administrador mantiene la información de los hoteles de la cadena actualizada, permitiendo la adición de nuevas propiedades y la modificación de las existentes |
Precondiciones |
PRE-01 Se tienen los datos mínimos para el alta o la modificación |
Flujo normal |
1. El administrador selecciona la opción “Gestionar catálogo” 2. El sistema presenta la interfaz principal de gestión (incluye la lista de hoteles y la opción de “Registrar Nuevo Hotel”) 3. El administrador selecciona la opción “Registrar nuevo hotel” (ver FA 3.1) 4. El sistema presenta un formulario para ingresar la información del hotel (nombre, dirección, categoría, contacto, cantidad de habitaciones) 5. El administrador ingresa los datos obligatorios y confirma el registro 6. El sistema valida la información dada, crea el registro con los datos proporcionados, notifica el éxito de la operación y guarda los movimientos del administrador en una bitácora 7. Termina caso de uso |
Flujo alterno |
FA 3.1 Modificación de un Hotel Existente 1. El administrador busca y selecciona un hotel, da clic en “Modificar información” 2. El sistema recupera y muestra los datos actuales en el formulario de edición 3. El administrador modifica los campos requeridos y confirma la modificación 4. El sistema valida los cambios, actualiza el registro, notifica al administrador y guarda los movimientos del administrador en una bitácora 5. Termina caso de uso |
Excepción |
EX1. Fallo al registrar movimiento en la bitácora 1. El sistema revierte la transacción para mantener la integridad entre los datos y la bitácora. 2. Además, notifica al administrador del fallo y vuelve al menú principal 3. Termina caso de uso |
Postcondición |
POST-01 Se crea un nuevo registro de hotel en el catálogo POST-02 El registro del hotel seleccionado se actualiza con los nuevos datos |
CU15 - Gestionar tipos de habitación
| Nombre | Configurar tipos de habitación |
|---|---|
Actor(es) |
Administrador |
Objetivo |
El administrador define, actualiza y gestiona las categorías de habitaciones, sus amenidades y sus capacidades |
Precondiciones |
PRE-01 El hotel a quien se le asociará las habitaciones ya está registrado en sistema |
Flujo normal |
1. El administrador selecciona la opción “Configurar habitación” 2. El sistema presenta la interfaz para seleccionar el hotel al cuál se le van a configurar sus habitaciones. 3. El administrador selecciona el hotel y la opción “Registrar nuevo tipo” (ver FA 3.1) (ver FA 3.2) 4. El sistema presenta un formulario para ingresar la categorización, las capacidades y la lista de amenidades de la habitación 5. El administrador ingresa los datos, selecciona las amenidades y confirma la configuración 6. El sistema valida la información, guarda el registro, notifica al administrador y guarda sus movimientos en la bitácora 7. Termina caso de uso |
Flujo alterno |
FA 3.1 Modificación de un Hotel Existente 1. El administrador selecciona un hotel, da clic en “Modificar Configuración” 2. El sistema recupera y muestra los datos actuales de los tipos de habitación 3. El administrador actualiza los campos requeridos 4. El sistema valida los cambios, actualiza el registro, notifica al administrador sobre el éxito de la operación y guarda sus movimientos en la bitácora 5. Termina caso de uso FA 3.2 Dar de baja un tipo de habitación 1. El administrador selecciona un hotel, da clic en “Dar de baja el tipo” 2. El sistema verifica si existen habitaciones activas o reservas futuras asociadas con ese tipo de habitación 3. Después, pide la confirmación de baja |
Excepción |
EX1. Fallo al registrar movimiento en la bitácora 1. El sistema revierte la transacción para mantener la integridad entre los datos y la bitácora. 2. Además, notifica al administrador del fallo y vuelve al menú principal 3. El administrador confirma la baja 4. El sistema cambia el estado de la habitación, notifica al administrador el éxito de la operación y guarda en la bitácora los movimientos de la operación 5. Termina caso de uso |
Postcondición |
POST-01 Se crea un nuevo registro de habitación en un hotel del catálogo POST-02 La habitación seleccionada de un hotel seleccionado se actualiza con los nuevos datos POST-03 La habitación seleccionada de un hotel seleccionado es dada de baja |
CU16 - Configurar Precios
| Nombre | Configurar Precios |
|---|---|
Actor(es) |
Administrador (AC03) |
Objetivo |
El sistema debe permitir al Administrador definir reglas complejas que determinen cuánto cuesta una habitación en cualquier momento dado. |
Precondiciones |
PRE-01 Se tienen los datos mínimos para el alta o la modificación |
Disparador |
El Administrador selecciona la opción “Gestión de Precios” |
Flujo normal |
1. El sistema muestra una lista de las reglas y promociones existentes 2. El Administrador selecciona “Crear Nueva Regla/Promoción” (ver FA 2.1) (ver FA 2.2) 3. El sistema pide el alcance de la regla (si aplica a un hotel, a un tipo de habitación en específico) 4. El Administrador define el Periodo de Aplicación y el mecanismo de precio (tarifa fija, modificador de porcentaje o descuento promocional) 5. El sistema valida que la nueva regla no supere ni contradiga una regla existente con mayor prioridad y guarda la nueva regla en el catálogo 6. Termina el caso de uso |
Flujo alterno |
FA 2.1 Modificación de una Regla de Precio Existente 1. El administrador da clic en “Modificar Regla” 2. El sistema recupera las reglas activas y las presenta junto con herramientas de filtro (por hotel, tipo de hotel, rango de fechas) 3. El administrador busca y selecciona la regla que desea modificar 4. El sistema recupera y muestra los parámetros actuales de la regla en el formulario de edición 5. El administrador realiza los cambios necesarios y confirma la modificación 6. El sistema valida la nueva información y actualiza la regla en el catálogo (ver EX-1) 7. Termina caso de uso FA 2.2 Copiar Regla de Precio o Promoción a otro Periodo/Hotel 1. El administrador da clic en Duplicar regla 2. El sistema genera una copia de la regla y pide al Administrador que defina los nuevos parámetros (hotel, rango de fechas de aplicación) 3. El Administrador ingresa los nuevos parámetros y confirma la creación de la copia 4. El sistema valida la información, crea y guarda la nueva regla en el catálogo 5. Termina caso de uso |
Excepción |
EX1. Conflicto de Reglas 1. El sistema detecta que la nueva promoción tiene un periodo que se superpone con otra promoción existente. 2. El sistema fuerza a ajustar los parámetros 3. Termina caso de uso |
Postcondición |
POST-01 Se registra una nueva regla de pago POST-02 Una regla de pago es modificada POST-03 Se copia una regla de pago en otro hotel |
CU17 - Configurar Políticas de Overbooking
| Nombre | Configurar Políticas de Overbooking |
|---|---|
Actor(es) |
Administrador (AC03) |
Objetivo |
El sistema permite que el administrador ajuste el umbral de riesgo aceptable para cada tipo de habitación |
Precondiciones |
PRE-01 Se tienen los datos mínimos para el alta o la modificación |
Disparador |
El Administrador selecciona la opción “Gestión de Overbooking” |
Flujo normal |
1. El sistema muestra una lista de las políticas existentes 2. El Administrador selecciona la opción “Definir Nueva Política” (ver FA 2.1) (ver FA 2.2) 3. El sistema presenta la lista de hoteles y tipos de habitación 4. El Administrador selecciona el hotel, el tipo de habitación; define el Periodo de Aplicación de la política y el Porcentaje Máximo de Overbooking 5. El sistema valida que el porcentaje sea menor al 10% y que las fechas sean válidas, guarda la política y ajusta la disponibilidad 6. Termina caso de uso |
Flujo alterno |
FA 2.1 Modificación de una Política de Overbooking Existente 1. El administrador da clic en “Modificar Política Existente” 2. El sistema recupera el listado de las políticas activas y las presenta junto con herramientas de filtro (por hotel, tipo de hotel, rango de fechas) 3. El administrador busca y selecciona la política que desea modificar 4. El sistema recupera y muestra los parámetros actuales de la política en el formulario de edición 5. El administrador realiza los cambios necesarios y confirma la modificación 6. El sistema valida la nueva información y actualiza la política en el catálogo 7. Termina caso de uso FA 2.2 Dar de baja una política de Overbooking 1. El administrador selecciona la opción “Eliminar Política” 2. El sistema presenta el listado de políticas activas y pide la selección 3. El Administrador selecciona la política que desea eliminar 4. El sistema pide al Administrador la confirmación final de la eliminación 5. El Administrador confirma la eliminación 6. El sistema elimina la política del catálogo, volviendo la disponibilidad de esas habitaciones a su capacidad física real (ver EX-1) 7. Termina caso de uso |
Excepción |
EX.1 Fallo en la Actualización de Disponibilidad 1. El sistema falla al enviar la actualización de la disponibilidad efectiva al módulo de reservas 2. Se realiza una reversión de la transacción y se notifica al Administrador “Error crítico al actualizar el sistema de disponibilidad. La operación ha sido revertida y no está activa” 3. Termina caso de uso |
Postcondición |
POST-01 Se registra una nueva política de overbooking POST-02 Una política de overbooking es modificada POST-03 Se elimina una política de overbooking correctamente |
CU18 - Monitorear Inventario
| Identificación y nombre | CU18 - Monitorear inventario |
|---|---|
Autor |
Lizeth Guadalupe Bello Peralta |
Actor principal |
Administrador (AC03) |
Actores secundarios |
N/A |
Descripción |
El administrador obtiene una vista panorámica de cómo está el negocio para tomar decisiones estratégicas |
Disparador |
El administrador va al apartado de Consultar Inventario |
Precondiciones |
PRE-1 Existen hoteles registrados y accesibles dentro del sistema |
Postcondiciones |
POST-1 El Administrador tiene visibilidad del estado actual del inventario según los criterios especificados |
Flujo normal |
1. El sistema solicita criterios de consulta como fecha, hotel, región y tipo de habitación 2. El administrador especifica los criterios de consulta (ver FA 2.1) 3. El sistema recupera la información del inventario que coincida con los criterios seleccionados, calcula métricas (% de ocupación, habitaciones disponibles y tendencias) y presenta el consolidado de disponibilidad y ocupación (ver FA 3.1) (ver EX-1) (ver EX-2) 4. Termina caso de uso |
Flujo alterno |
FA 2.1 El administrador cancela la consulta 1. El Administrador decide no continuar con la consulta 2. Termina caso de uso FA 3.1 El administrador modifica los criterios 1. El administrador decide cambiar los filtros de búsqueda 2. Regresa al paso 1 |
Excepciones |
EX-1 Algún hotel no reporta información actualizada 1. El sistema presenta los datos disponibles e indica qué hoteles no tienen información actualizada 2. Termina caso de uso EX.2 No hay datos históricos suficientes para el periodo solicitado 1. El sistema muestra un mensaje para hacerle saber al Administrador que no se encontraron resultados con los criterios seleccionados 2. Termina caso de uso |
Prioridad |
Media |
Incluye |
N/A |
Extiende |
N/A |
2.4.4. AC04 - Auditoría
CU19 - Generar Reporte de Anulaciones Sospechosas
| Identificación y nombre | CU19 - Generar Reporte de Anulaciones Sospechosas |
|---|---|
Autor |
Lizeth Guadalupe Bello Peralta |
Actor principal |
Auditor (AC04) |
Actores secundarios |
N/A |
Descripción |
El auditor necesita detectar patrones sospechosos en las reservaciones |
Disparador |
El auditor necesita identificar patrones sospechosos en cancelaciones de reservas |
Precondiciones |
PRE-1. Existen reservas registradas y accesibles dentro del sistema. |
Postcondiciones |
POST-1 El Auditor tiene evidencia documentada para tomar acción de los movimientos sospechosos |
Flujo normal |
1. El sistema solicita criterios de consulta como fechas, hotel, tipo de anomalía 2. El auditor especifica los criterios (ver FA 2.1) (ver FA 3.1) 3. El sistema analiza registros históricos identificando patrones anómalos de cancelación y genera un reporte con los hallazgos 4. Termina el caso de uso |
Flujo alterno |
FA 2.1 El Auditor cancela la consulta 1. El Auditor decide no continuar con la consulta 2. Termina caso de uso FA 3.1 El Auditor modifica los criterios 1. El Auditor decide cambiar los filtros de búsqueda 2. Regresa al paso 1 |
Excepciones |
EX1. Algún hotel no reporta información actualizada 1. El sistema presenta los datos disponibles e indica qué hoteles no tienen información actualizada además de la información faltante 2. Regresa al flujo normal EX2. No hay datos históricos suficientes para el análisis 1. El sistema muestra un mensaje para hacerle saber al Auditor que no se encontraron resultados con los criterios de consulta seleccionados 2. Regresa al flujo normal |
Prioridad |
Alta |
Incluye |
N/A |
Extiende |
N/A |
CU20 - Revisar ajustes de precios en reservas
| Identificación y nombre | CU20 - Revisar ajustes de precios en reservas |
|---|---|
Autor |
Lizeth Guadalupe Bello Peralta |
Actor principal |
Auditor (AC04) |
Actores secundarios |
N/A |
Descripción |
El auditor necesita detectar si alguien modificó el precio de una reserva después de crearla |
Disparador |
El auditor busca detectar irregularidades en ajustes de precios |
Precondiciones |
PRE-1. Existen reservas registradas y accesibles dentro del sistema. |
Postcondiciones |
POST-1 El Auditor tiene evidencia documentada para tomar acción de los cambios sospechosos |
Flujo normal |
1. El sistema solicita criterios de consulta como fechas, hotel, rango de monto de ajuste, tipo de ajuste y usuario que realizó el cambio 2. El auditor especifica los criterios (ver FA 2.1) 3. El sistema analiza registros históricos identificando patrones anómalos de cambios de precios o descuentos injustificados y presenta el reporte con el Auditor (ver FA 3.1) (ver EX-1) (ver EX-2) . Termina el caso de uso |
Flujo alterno |
FA 2.1 El Auditor cancela la consulta 1. El Auditor decide no continuar con la consulta 2. Termina caso de uso FA 3.1 El Auditor modifica los criterios 1. El Auditor decide cambiar los filtros de búsqueda 2. Regresa al paso 1 |
Excepciones |
EX-1 Algún hotel no reporta información actualizada 1. El sistema presenta los datos disponibles e indica qué hoteles no tienen información actualizada además de la información faltante 2. Termina caso de uso EX-2 No hay datos históricos suficientes para el análisis 1. El sistema muestra un mensaje para hacerle saber al Auditor que no se encontraron resultados con los criterios de consulta seleccionados 2. Regresa al paso 1 del flujo normal |
Prioridad |
Alta |
Incluye |
N/A |
Extiende |
N/A |
CU21 - Conciliar ingresos por servicios adicionales
| Identificación y nombre | CU21 - Conciliar ingresos por servicios adicionales |
|---|---|
Autor |
Lizeth Guadalupe Bello Peralta |
Actor principal |
Auditor (AC04) |
Actores secundarios |
N/A |
Descripción |
El auditor necesita detectar alguna discrepancia entre los servicios registrados y los servicios reportados |
Disparador |
El auditor necesita verificar que los servicios consumidos se cobraron correctamente |
Precondiciones |
PRE-1. Existen servicios registrados y accesibles dentro del sistema. |
Postcondiciones |
POST-1 El Auditor tiene visibilidad de inconsistencias entre servicios consumidos y cobrados |
Flujo normal |
1. El sistema solicita criterios de consulta como fechas, hotel y tipo de servicio 2. El auditor especifica los criterios (ver FA 2.1) 3. El sistema compara registros de consumo contra registro de cobro e identifica discrepancias. Después presenta el reporte de conciliación al auditor (ver FA 3.1, ver FA 3.2, ver EX-1, ver EX-2) 4. Termina el caso de uso |
Flujo alterno |
FA 2.1 El Auditor cancela la consulta 1. El Auditor decide no continuar con la consulta 2. Termina caso de uso FA 3.1 El Auditor modifica los criterios 1. El Auditor decide cambiar los filtros de búsqueda 2. Regresa al paso 1 FA 3.2 No se detectaron inconsistencias 1. El sistema informa que todos los servicios están correctamente conciliados 2. Termina caso de uso |
Excepciones |
EX-1 Algún hotel no reporta información actualizada 1. El sistema presenta los datos disponibles e indica qué hoteles no tienen información actualizada además de la información faltante 2. Termina caso de uso EX-2 No hay registros para el periodo consultado 1. El sistema informa que no existen registros de servicios para los criterios especificados 2. Regresa al paso 1 |
Prioridad |
Alta |
Reglas de negocio |
RN-1 Se considera una inconsistencia cuando: . Un servicio fue consumido pero no cobrado . Un servicio fue cobrado pero no hay registro de consumo . El monto cobrado no coincide con la tarifa del servicio . Hay servicios consumidos después de registrado el check-out |
Incluye |
N/A |
Extiende |
N/A |
CU22 - Rastrear reembolsos y descuentos
| Identificación y nombre | CU22 - Rastrear reembolsos y descuentos |
|---|---|
Autor |
Lizeth Guadalupe Bello Peralta |
Actor principal |
Auditor (AC04) |
Actores secundarios |
N/A |
Descripción |
El auditor necesita verificar que cada reembolso y descuento tenga una justificación válida |
Disparador |
El auditor necesita verificar la validez de reembolsos y descuentos |
Precondiciones |
PRE-1. Existen reembolsos y/o descuentos registrados en el sistema |
Postcondiciones |
POST-1 El Auditor tiene evidencia documentada de reembolsos y descuentos para validar su justificación |
Flujo normal |
1. El sistema solicita criterios de consulta como fechas, hotel, tipo: reembolso/descuento, rango de monto, usuario autorizador 2. El auditor especifica los criterios (ver FA 2.1) 3. El sistema recupera el historial de reembolsos/descuentos con su trazabilidad (quién lo hizo, cuándo lo hizo, motivo y autorización) e identifica casos sin justificación o fuera de política (ver FA 3.1, ver EX-1, ver EX-2) 4. Termina el caso de uso |
Flujo alterno |
FA 2.1 El Auditor cancela la consulta 1. El Auditor decide no continuar con la consulta 2. Termina caso de uso FA 3.1 El Auditor modifica los criterios 1. El Auditor decide cambiar los filtros de búsqueda 2. Regresa al paso 1 |
Excepciones |
EX-1 Algún hotel no reporta información actualizada 1. El sistema presenta los datos disponibles e indica qué hoteles no tienen información actualizada además de la información faltante 2. Termina caso de uso EX-2 No hay registros para el periodo consultado 1. El sistema informa que no existen registros de servicios para los criterios especificados 2. Regresa al paso 1 |
Prioridad |
Alta |
Reglas de negocio |
RN-1 Se considera sospechoso un reembolso/descuento que: . No tenga justificación documentada . No tiene autorización o fue autorizado por usuario sin permisos . No corresponde con las políticas vigentes . No tiene documentación de respaldo para montos altos |
Incluye |
N/A |
Extiende |
N/A |
CU23 - Validar cobros de pagos en línea
| Identificación y nombre | CU23 - Validar cobros de pagos en línea |
|---|---|
Autor |
Lizeth Guadalupe Bello Peralta |
Actor principal |
Auditor (AC04) |
Actores secundarios |
N/A |
Descripción |
El auditor necesita conciliar que coincidan los registros del sistema, la pasarela de pago y el banco |
Disparador |
El auditor necesita conciliar los pagos en línea procesados |
Precondiciones |
PRE-1. Existen pagos en línea registrados en el sistema |
Postcondiciones |
POST-1 El Auditor tiene visibilidad de discrepancias entre los pagos registrados procesados y recibidos |
Flujo normal |
1. El sistema solicita criterios de análisis como fechas, hotel, estado de pago, rango de monto 2. El auditor especifica los criterios (ver FA 2.1) 3. El sistema compara registros internos con registros de la pasarela de pago para después identificar inconsistencias y presentar el reporte de conciliación (ver FA 3.1, ver EX-1, ver EX-2) 4. Termina el caso de uso |
Flujo alterno |
FA 2.1 El Auditor cancela la consulta 1. El Auditor decide no continuar con la consulta 2. Termina caso de uso FA 3.1 El Auditor modifica los criterios 1. El Auditor decide cambiar los filtros de búsqueda 2. Regresa al paso 1 |
Excepciones |
EX-1 Información incompleta de la pasarela de pago 1. El sistema presenta el reporte con los datos disponibles e indica que no pudo obtener información actualizada de la pasarela de pago 2. Termina caso de uso EX-2 No hay registros para el periodo consultado 1. El sistema informa que no existen registros de pagos en línea para los criterios especificados 2. Regresa al paso 1 |
Prioridad |
Media |
Reglas de negocio |
RN-1 Se considera una inconsistencia cuando: . El sistema registra un pago como exitoso pero la pasarela lo tiene como rechazado o no existe . Existe un pago en la pasarela sin registro en el sistema . El monto registrado no coincide con el monto procesado . Hay pagos duplicados RN-2 Para cada pago debe existir un ID de transacción único proporcionado por la pasarela de pago |
Incluye |
N/A |
Extiende |
N/A |
CU24 - Consultar bitácora de accesos del personal
| Identificación y nombre | CU24 - Consultar bitácora de accesos del personal |
|---|---|
Autor |
Lizeth Guadalupe Bello Peralta |
Actor principal |
Auditor (AC04) |
Actores secundarios |
N/A |
Descripción |
El auditor necesita consultar el historial de accesos del personal al sistema para identificar actividades sospechosas |
Disparador |
El auditor necesita revisar la bitácora de accesos del personal |
Precondiciones |
PRE-1. El sistema registra automáticamente todos los accesos del personal |
Postcondiciones |
POST-1 El Auditor tiene visibilidad de los movimientos del personal en el sistema |
Flujo normal |
1. El sistema solicita criterios de consulta como fecha, empleado, hotel y módulo/tipo de acción 2. El auditor especifica los criterios de búsqueda (ver FA 2.1) 3. El sistema recupera los registros de acceso que coinciden con los criterios y los presenta al Auditor (ver FA 3.1, ver EX-1) 4. Si el auditor identifica actividad sospechosa, marca los registros para investigación adicional 5. Termina el caso de uso |
Flujo alterno |
FA 2.1 El Auditor cancela la consulta 1. El Auditor decide no continuar con la consulta 2. Termina caso de uso FA 3.1 El Auditor modifica los criterios 1. El Auditor decide cambiar los filtros de búsqueda 2. Regresa al paso 1 |
Excepciones |
EX-1 No hay registros para los criterios consultados 1. El sistema informa que no existen registros de acceso para los criterios especificados 2. Regresa al paso 1 |
Prioridad |
Alta |
Reglas de negocio |
RN-1 Se considera actividad sospechosa cuando: . Hay acceso al sistema fuera del horario laboral sin justificación . Hay múltiples intentos de acceso fallidos . Hay acceso a módulos sin permisos asignados RN-2 La bitácora debe registrar para cada acceso: . Usuario (empleado) . Fecha y hora . Módulo/funcionalidad accedida . Acción realizada . Terminal desde donde accedió . Resultado |
Incluye |
N/A |
Extiende |
N/A |
CU25 - Consultar informe de inventario
| Identificación y nombre | CU25 - Consultar informe de inventario |
|---|---|
Autor |
Lizeth Guadalupe Bello Peralta |
Actor principal |
Auditor (AC04) |
Actores secundarios |
N/A |
Descripción |
El auditor necesita obtener un reporte del estado actual de las habitaciones en el sistema para verificarlos contra el estado físico real |
Disparador |
El auditor necesita consultar el inventario |
Precondiciones |
PRE-1. Existen habitaciones y reservaciones registradas y accesibles en el sistema |
Postcondiciones |
POST-1 El Auditor tiene el reporte del estado del inventario en sistema para comparación manual |
Flujo normal |
1. El sistema solicita criterios de consulta como fecha, hotel y tipo de habitación 2. El auditor especifica los criterios de búsqueda (ver FA 2.1) 3. El sistema recupera los registros de las habitaciones y su estado para generar y presentar el reporte (ver FA 3.1, ver EX-1) 4. Termina caso de uso |
Flujo alterno |
FA 2.1 El Auditor cancela la consulta 1. El Auditor decide no continuar con la consulta 2. Termina caso de uso FA 3.1 El Auditor modifica los criterios 1. El Auditor decide cambiar los filtros de búsqueda 2. Regresa al paso 1 |
Excepciones |
EX-1 No hay registros para los criterios consultados 1. El sistema informa que no existen habitaciones registradas para los criterios especificados 2. Regresa al paso 1 |
Prioridad |
Media |
Reglas de negocio |
RN-1 El reporte debe incluir para cada habitación: . Número de habitación . Estado actual de la habitación . Tipo de habitación . Última actualización de estado |
Incluye |
N/A |
Extiende |
N/A |
CU26 - Validar uniformidad de políticas y precios por región
| Identificación y nombre | CU26 - Validar uniformidad de políticas y precios por región |
|---|---|
Autor |
Lizeth Guadalupe Bello Peralta |
Actor principal |
Auditor (AC04) |
Actores secundarios |
N/A |
Descripción |
El auditor genera reportes que comparan tarifas, políticas de cancelación y promociones aplicadas en diferentes hoteles, regiones o países para asegurar que sigan las directrices de la marca |
Disparador |
El auditor necesita verificar que las políticas y precios sean uniformes según las directrices de la marca |
Precondiciones |
PRE-1. Existe políticas, tarifas y promociones registradas para los hoteles de la cadena |
Postcondiciones |
POST-1 El Auditor tiene el reporte de comparación entre diferentes hoteles o regiones |
Flujo normal |
1. El sistema solicita criterios de consulta como fecha, hoteles/regiones, tipo de habitación y tipo de política (cancelación/overbooking/entre otros) 2. El auditor especifica los criterios de búsqueda (ver FA 2.1) 3. El sistema recupera y compara las políticas, tarifas y promociones de los hoteles/regiones seleccionados e identifica discrepancias respecto a las directrices para presentarlas en un reporte comparativo (ver FA 3.1, ver EX-1, ver EX-2) 4. Termina caso de uso |
Flujo alterno |
FA 2.1 El Auditor cancela la consulta 1. El Auditor decide no continuar con la consulta 2. Termina caso de uso FA 3.1 El Auditor modifica los criterios 1. El Auditor decide cambiar los filtros de búsqueda 2. Regresa al paso 1 |
Excepciones |
EX-1 No hay registros para los criterios consultados 1. El sistema informa que no existen políticas o tarifas para los criterios especificados 2. Regresa al paso 1 EX-2 Información incompleta de algún hotel o región 1. El sistema presenta el reporte con los datos disponibles e indica qué hoteles no tienen información completa 2. Continúa con paso 4 |
Prioridad |
Alta |
Reglas de negocio |
RN-1 Se considera una discrepancia cuando: . Las tarifas base para el mismo tipo de habitación/hotel/región varían más de cierto porcentaje . Hay políticas que difieren entre hoteles sin justificación aprobada . Los porcentajes de overbooking exceden o están por debajo del estándar corporativo RN-2 El reporte debe comparar: . Tarifas base por tipo de habitación/hotel/región . Políticas de cancelación . Políticas de overbooking . Promociones activas |
Incluye |
N/A |
Extiende |
N/A |
3. Impulsores Arquitectónicos (ASRs) y Priorización
3.1. Utility Tree
3.2. Escenarios de atributos de calidad
3.2.1. Rendimiento
| ID y descripción corta | QAS-11 Huésped revisa todas las reservas pasadas y activas realizadas por él |
|---|---|
Escenario |
El huésped consulta su historial de reservas y el sistema debe responder rápidamente. |
Atributo |
Rendimiento |
Preocupación del atributo |
Latencia |
Refinamiento del escenario |
|
Fuente del estímulo |
Huésped |
Estímulo |
Solicitud de consulta de reservas. |
Ambiente |
Alta concurrencia (picos de demanda). |
Artefacto |
Módulo de reservas, base de datos transaccional. |
Respuesta |
El sistema retorna la lista completa de reservas pasadas y activas. |
Medida de la respuesta |
Latencia ≤ 500 ms para P95 bajo 300 QPS |
| ID y descripción corta | QAS-25 Administrador configura habitaciones disponibles mediante categorización, amenidades y capacidades |
|---|---|
Escenario |
El administrador gestiona la disponibilidad y características de habitaciones. |
Atributo |
Rendimiento |
Preocupación del atributo |
Latencia del catálogo. |
Refinamiento del escenario |
|
Fuente del estímulo |
Administración |
Estímulo |
Registro o actualización de habitaciones y sus atributos. |
Ambiente |
Operación con carga normal, con una media de 1000 solicitudes simultáneas |
Artefacto |
Módulo de catálogo. |
Respuesta |
Actualización reflejada en el sistema de manera inmediata. |
Medida de la respuesta |
Confirmación ≤ 2.5 s (P95) |
| ID y descripción corta | QAS-29 Administrador ajusta hasta el overbooking |
|---|---|
Escenario |
El administrador define política de sobreventa hasta el 10% por tipo de habitación. |
Atributo |
Rendimiento |
Preocupación del atributo |
Velocidad en la escritura de datos |
Refinamiento del escenario |
|
Fuente del estímulo |
Administración |
Estímulo |
Ajuste de parámetros de overbooking. |
Ambiente |
Operación con carga normal, con una media de 1000 solicitudes simultáneas |
Artefacto |
Motor de reglas de disponibilidad. |
Respuesta |
El sistema actualiza inmediatamente la política y la refleja en las reservas. |
Medida de la respuesta |
Latencia ≤ 2.5 s en la confirmación |
| ID y descripción corta | QAS-31 Administrador consulta disponibilidad y ocupación |
|---|---|
Escenario |
El administrador consulta el estado de ocupación de todas las habitaciones. |
Atributo |
Rendimiento |
Preocupación del atributo |
Eficiencia de la consulta a la base de datos y latencia de la red |
Refinamiento del escenario |
|
Fuente del estímulo |
Administración |
Estímulo |
Petición de reporte de ocupación/disponibilidad. |
Ambiente |
Operación con carga media, con una media de 2000 solicitudes simultáneas |
Artefacto |
Motor de consultas de disponibilidad. |
Respuesta |
El sistema retorna resultados precisos en tiempo real. |
Medida de la respuesta |
Latencia ≤ 500 ms (P95) bajo 300 QPS |
| ID y descripción corta | QAS-38 Genera un reporte para verificar que los pagos en línea se hayan procesado correctamente. |
|---|---|
Escenario |
El auditor genera un reporte masivo sobre el estado de pagos. |
Atributo |
Rendimiento |
Preocupación del atributo |
Cuellos de botella de la base de datos |
Refinamiento del escenario |
|
Fuente del estímulo |
Auditoría |
Estímulo |
Solicitud de reporte de conciliación de pagos. |
Ambiente |
Operación con carga normal, con una media de 1000 solicitudes simultáneas |
Artefacto |
Subsistema de pagos y motor de reportes. |
Respuesta |
Generación del reporte con todos los pagos confirmados y rechazados. |
Medida de la respuesta |
Tiempo de respuesta ≤ 4 s (P99) |
| ID y descripción corta | QAS-42 El auditor compara el estado de las habitaciones en el sistema con reportes físicos |
|---|---|
Escenario |
El auditor solicita datos de ocupación registrados en el sistema. |
Atributo |
Rendimiento |
Preocupación del atributo |
Cuellos de botella de la base de datos |
Refinamiento del escenario |
|
Fuente del estímulo |
Auditoría |
Estímulo |
Solicitud de consulta histórica de habitaciones. |
Ambiente |
Carga de auditoría con múltiples registros. |
Artefacto |
Base de datos de reservas. |
Respuesta |
Listado completo de habitaciones y su estado. |
Medida de la respuesta |
Consulta resuelta en ≤ 2 s bajo 200 QPS. |
3.2.2. Disponibilidad
| ID y descripción corta | QAS-03 Huésped consulta la disponibilidad de una habitación |
|---|---|
Escenario |
El sistema debe mantener la disponibilidad del servicio de consulta de habitaciones incluso ante fallos de base de datos |
Atributo |
Disponibilidad |
Preocupación del atributo |
Falla de la base de datos |
Refinamiento del escenario |
|
Fuente del estímulo |
Huésped |
Estímulo |
El huésped realiza una búsqueda de habitaciones disponibles |
Ambiente |
Operación con carga normal, con una media de 300 consultas por segundo |
Artefacto |
Módulo de consulta de disponibilidad y base de datos de inventario |
Respuesta |
El sistema responde con datos de disponibilidad, usando caché o réplicas si la base de datos principal no está disponible |
Medida de la respuesta |
Latencia P95 ≤ 500ms bajo carga de 300 QPS. Disponibilidad del servicio ≥ 99.9%. En caso de falla de BD principal, el sistema responde usando datos en caché con degradación máxima de 200ms adicionales |
| ID y descripción corta | QAS-05 Huésped selecciona una habitación y confirma la reserva |
|---|---|
Escenario |
El huésped selecciona una habitación y procede a confirmar la reserva de la misma |
Atributo |
Disponibilidad |
Preocupación del atributo |
Tolerancia a fallos |
Refinamiento del escenario |
|
Fuente del estímulo |
Huésped |
Estímulo |
El huésped hace clic en "Confirmar reserva" |
Ambiente |
Carga de trabajo media a alta, con múltiples transacciones simultáneas, con una media de 5000 solicitudes a la vez |
Artefacto |
Módulo de reservaciones y módulo de inventario |
Respuesta |
El sistema muestra una página de confirmación con los detalles de la reserva y un mensaje claro para el huésped. El sistema debe garantizar que cada intento de cobro sea único |
Medida de la respuesta |
99.9% de disponibilidad del servicio, con un tiempo de procesamiento menor a 3 segundos. Solo un huésped obtiene confirmación; el otro recibe un rechazo en ⇐ 1s. El inventario retenido para una reserva fallida debe liberarse automáticamente en ⇐ 500 ms |
| ID y descripción corta | QAS-08 Huésped modifica alguna característica de su reserva |
|---|---|
Escenario |
El sistema debe gestionar cambios en una reserva, actualizando el inventario de habitaciones |
Atributo |
Disponibilidad |
Preocupación del atributo |
Tolerancia a fallos |
Refinamiento del escenario |
|
Fuente del estímulo |
Huésped |
Estímulo |
El huésped navega a la sección de "Mis reservas" y selecciona la opción para modificar una reserva |
Ambiente |
El sistema opera con carga normal con una media de 1000 solicitudes a la vez |
Artefacto |
Módulo de modificación de reservas e inventario de habitaciones |
Respuesta |
El sistema presenta un formulario pre-llenado que permite al huésped cambiar los campos editables y muestra un resumen de los posibles cargos adicionales. Al final, libera la habitación original y, si la nueva habitación está disponible, la asigna, actualizando el inventario |
Medida de la respuesta |
La actualización de disponibilidad de la habitación original debe ser efectiva en menos de 200ms después de la confirmación de modificación |
| ID y descripción corta | QAS-13 Recepcionista registra la entrada del huésped |
|---|---|
Escenario |
El sistema registra el check-in de un huésped y refleja el cambio en el estado de la habitación |
Atributo |
Disponibilidad |
Preocupación del atributo |
Tolerancia a fallos, sincronización de datos e integridad de la base de datos |
Refinamiento del escenario |
|
Fuente del estímulo |
Recepcionista |
Estímulo |
El recepcionista ejecuta la función de check-in para la reserva de un huésped |
Ambiente |
Operación con carga normal, con una media de 1000 solicitudes simultáneas |
Artefacto |
Módulo de check-in y módulo de gestión de habitaciones |
Respuesta |
El sistema cambia el estado de la habitación de "reservada" a "ocupada" |
Medida de la respuesta |
El estado de la habitación debe actualizarse en el sistema en menos de 200ms después de que el recepcionista complete el check-in. La información de ocupación debe ser visible de inmediato para otros recepcionistas |
| ID y descripción corta | QAS-15 Recepcionista registra la salida del huésped |
|---|---|
Escenario |
El sistema debe marcar una habitación como desocupada y disponible para la siguiente reserva después de que un huésped se marche |
Atributo |
Disponibilidad |
Preocupación del atributo |
Tolerancia a fallos |
Refinamiento del escenario |
|
Fuente del estímulo |
Recepcionista |
Estímulo |
El recepcionista ejecuta la función de check-out para una reserva |
Ambiente |
Operación con carga normal, con una media de 1000 solicitudes simultáneas |
Artefacto |
Módulo de check-out y módulo de gestión de habitaciones |
Respuesta |
La habitación ocupada se marca como "limpieza necesaria" o "disponible" de inmediato, lo que la hace visible para futuras asignaciones |
Medida de la respuesta |
El estado de la habitación debe actualizarse en el sistema en menos de 200 ms después de la confirmación del check-out. El 100% de las habitaciones deben reflejar su estado correcto |
| ID y descripción corta | QAS-18 Recepcionista realiza el cobro al huésped terminada su estancia |
|---|---|
Escenario |
El sistema debe permitir el cobro final, incluyendo consumos adicionales, manteniendo la disponibilidad del servicio incluso ante fallos en la pasarela de pago |
Atributo |
Disponibilidad |
Preocupación del atributo |
Fallo en el servicio de un sistema externo |
Refinamiento del escenario |
|
Fuente del estímulo |
Recepcionista |
Estímulo |
El recepcionista inicia y procesa un pago final para una reserva |
Ambiente |
Operación con carga normal, con una media de 1000 solicitudes simultáneas |
Artefacto |
Módulo de pagos y facturación |
Respuesta |
El sistema registra el intento de pago y emite la factura. Si la pasarela de pago falla, el sistema reintenta automáticamente o permite completar el proceso manualmente. La disponibilidad de la habitación se actualiza solo después del check-out exitoso |
Medida de la respuesta |
El sistema debe procesar el cobro en menos de 500ms. En caso de fallo de la pasarela, el sistema reintenta hasta 3 veces con backoff exponencial. La disponibilidad del módulo de pagos debe ser ≥ 99.5% |
| ID y descripción corta | QAS-19 Recepcionista registra consumos adicionales del huésped |
|---|---|
Escenario |
El sistema debe permitir al recepcionista añadir cargos a la cuenta de un huésped sin afectar la disponibilidad de su habitación |
Atributo |
Disponibilidad |
Preocupación del atributo |
Tolerancia a fallos ante concurrencia |
Refinamiento del escenario |
|
Fuente del estímulo |
Recepcionista |
Estímulo |
El recepcionista selecciona la reserva y añade un nuevo consumo |
Ambiente |
Operación con carga normal, con una media de 1000 solicitudes simultáneas |
Artefacto |
Módulo de consumos |
Respuesta |
El sistema registra el consumo en la cuenta del huésped sin bloquear otras operaciones sobre la misma reserva |
Medida de la respuesta |
El registro del consumo debe ser exitoso en menos de 200ms. El estado de la habitación debe permanecer como "ocupado". El sistema debe manejar múltiples registros de consumo concurrentes sin pérdida de datos |
| ID y descripción corta | QAS-21 Recepcionista cambia al huésped de habitación |
|---|---|
Escenario |
El sistema debe gestionar el cambio de habitación, liberando la original y asignando una nueva |
Atributo |
Disponibilidad |
Preocupación del atributo |
Falla de la base de datos y tolerancia a fallos |
Refinamiento del escenario |
|
Fuente del estímulo |
Recepcionista |
Estímulo |
El recepcionista ejecuta la función de cambio de habitación, seleccionando una nueva habitación disponible |
Ambiente |
Operación con carga normal, con una media de 1000 solicitudes simultáneas |
Artefacto |
Módulo de gestión de habitaciones y reservas |
Respuesta |
El sistema bloquea ambas habitaciones, realiza la reasignación, actualiza la reserva con la nueva habitación y libera la habitación original |
Medida de la respuesta |
La transacción completa debe realizarse en menos de 500ms. La habitación original no debe estar disponible para nuevas reservas hasta que la nueva asignación esté confirmada |
| ID y descripción corta | QAS-22 Recepcionista marca una habitación como fuera de servicio |
|---|---|
Escenario |
El sistema debe excluir una habitación del inventario disponible para reservas |
Atributo |
Disponibilidad |
Preocupación del atributo |
Falla de la base de datos |
Refinamiento del escenario |
|
Fuente del estímulo |
Recepcionista |
Estímulo |
El recepcionista cambia el estado de una habitación a "fuera de servicio" |
Ambiente |
Operación con carga normal, con una media de 1000 solicitudes simultáneas |
Artefacto |
Módulo de gestión de habitaciones |
Respuesta |
La habitación es removida de todas las listas de disponibilidad |
Medida de la respuesta |
Actualización del estado en menos de 100ms |
| ID y descripción corta | QAS-23 Recepcionista cancela la reserva del huésped |
|---|---|
Escenario |
El sistema debe liberar la habitación de una reserva cancelada, haciéndola disponible nuevamente |
Atributo |
Disponibilidad |
Preocupación del atributo |
Falla de la base de datos y tolerancia a fallos |
Refinamiento del escenario |
|
Fuente del estímulo |
Recepcionista |
Estímulo |
El recepcionista ejecuta la función de cancelación de reserva |
Ambiente |
Operación con carga normal, con una media de 1000 solicitudes simultáneas |
Artefacto |
Módulo de cancelación de reservas y módulo de inventario |
Respuesta |
El sistema cancela la reserva y la habitación es regresada al inventario disponible |
Medida de la respuesta |
La habitación debe estar disponible para nuevas reservas en menos de 500 ms |
| ID y descripción corta | QAS-24 Administrador realiza altas y modificaciones de hoteles |
|---|---|
Escenario |
El sistema debe permitir al administrador agregar nuevos hoteles o modificar la información de los existentes, y reflejar el cambio en la disponibilidad general |
Atributo |
Disponibilidad |
Preocupación del atributo |
Falla de la base de datos |
Refinamiento del escenario |
|
Fuente del estímulo |
Administrador |
Estímulo |
El administrador envía una solicitud para dar de alta o modificar la información de un hotel |
Ambiente |
Operación con carga normal, con una media de 1000 solicitudes simultáneas |
Artefacto |
Módulo de administración de hoteles |
Respuesta |
El sistema registra el nuevo hotel o actualiza los datos del existente, y su inventario de habitaciones se hace visible y disponible para su gestión |
Medida de la respuesta |
La información del hotel debe ser persistida en menos de 2 segundos. La disponibilidad de las habitaciones debe reflejarse correctamente en el sistema de forma inmediata |
| ID y descripción corta | QAS-26 Administrador configura habitaciones disponibles mediante categorización, amenidades y capacidades |
|---|---|
Escenario |
El sistema debe permitir al administrador configurar los tipos de habitaciones, sus amenidades y sus capacidades, y hacerlas visibles para la reserva |
Atributo |
Disponibilidad |
Preocupación del atributo |
Tolerancia a fallos ante actualizaciones concurrentes |
Refinamiento del escenario |
|
Fuente del estímulo |
Administrador |
Estímulo |
El administrador envía una solicitud para configurar las características de un tipo de habitación |
Ambiente |
Operación con carga normal, con una media de 1000 solicitudes simultáneas |
Artefacto |
Módulo de administración de habitaciones |
Respuesta |
El sistema actualiza la base de datos con la nueva configuración, haciendo que la disponibilidad de esas habitaciones se muestre con las características correctas en la interfaz del cliente |
Medida de la respuesta |
Los cambios deben reflejarse en las interfaces de reserva en menos de 100 ms. La información de capacidad y amenidades debe ser 100% precisa |
| ID y descripción corta | QAS-27 Administrador define precios diarios, temporadas altas y promociones |
|---|---|
Escenario |
El sistema debe permitir al administrador definir precios por día, temporadas altas y promociones que afecten la disponibilidad |
Atributo |
Disponibilidad |
Preocupación del atributo |
Tolerancia a fallos ante actualizaciones concurrentes |
Refinamiento del escenario |
|
Fuente del estímulo |
Administrador |
Estímulo |
El administrador introduce las nuevas reglas de precios y promociones |
Ambiente |
Operación con carga normal, con una media de 1000 solicitudes simultáneas |
Artefacto |
Módulo de gestión de tarifas |
Respuesta |
El sistema aplica las nuevas reglas de precios y promociones a las habitaciones disponibles, haciendo que se muestren en el sistema de reservas |
Medida de la respuesta |
La actualización de precios y promociones debe ser efectiva en menos de 200 ms. El sistema debe aplicar las reglas de precios correctamente en el 100% de los casos |
| ID y descripción corta | QAS-30 Administrador ajusta hasta el overbooking |
|---|---|
Escenario |
El sistema debe permitir al administrador configurar los límites de overbooking de habitaciones para maximizar la ocupación |
Atributo |
Disponibilidad |
Preocupación del atributo |
Fallo en la base de datos |
Refinamiento del escenario |
|
Fuente del estímulo |
Administrador |
Estímulo |
El administrador modifica la política de overbooking para un tipo de habitación |
Ambiente |
Operación con carga normal, con una media de 1000 solicitudes simultáneas |
Artefacto |
Módulo de gestión de overbooking |
Respuesta |
El sistema permite que se realicen reservas por encima del número de habitaciones físicas disponibles, hasta el límite definido |
Medida de la respuesta |
La política de overbooking debe ser activada en el sistema en menos de 100 ms después de su configuración. El sistema no debe permitir que las reservas superen el límite de overbooking establecido |
3.2.3. Usabilidad
| ID y descripción corta | QAS-01 Huésped consulta hoteles |
|---|---|
Escenario |
Un huésped consulta los hoteles de la cadena de forma intuitiva |
Atributo |
Usabilidad |
Preocupación del atributo |
Facilidad de uso y eficiencia. |
Refinamiento del escenario |
|
Fuente del estímulo |
Huésped |
Estímulo |
El huésped ingresa criterios de búsqueda y hace clic en "Buscar" |
Ambiente |
El usuario se encuentra en un entorno típico con una conexión a internet estable |
Artefacto |
Interfaz de búsqueda y sus respectivos resultados |
Respuesta |
El sistema muestra una lista clara y organizada de hoteles que cumplen con los criterios de búsqueda, incluyendo fotos, precios y calificaciones |
Medida de la respuesta |
El tiempo de carga de la página no debe exceder los 2 segundos. Al menos el 95% de los usuarios de prueba deben poder completar la búsqueda sin asistencia |
| ID y descripción corta | QAS-02 Huésped consulta la disponibilidad de una habitación |
|---|---|
Escenario |
El huésped busca una habitación sin fricción y puede completar la consulta de disponibilidad con éxito. |
Atributo |
Usabilidad |
Preocupación del atributo |
Complejidad de la interfaz |
Refinamiento del escenario |
|
Fuente del estímulo |
Huésped |
Estímulo |
El huésped realiza una búsqueda en el sitio web del hotel |
Ambiente |
Operación con carga normal, con una media de 1000 solicitudes simultáneas |
Artefacto |
Página de resultados del motor de búsqueda |
Respuesta |
El sistema muestra en una lista los hoteles que en aquel momento estén disponibles |
Medida de la respuesta |
Un usuario puede completar la consulta de disponibilidad en menos de 15 segundos |
| ID y descripción corta | QAS-04 Huésped selecciona una habitación y confirma la reserva |
|---|---|
Escenario |
El proceso de reserva debe ser simple, directo y sin ambigüedades |
Atributo |
Usabilidad |
Preocupación del atributo |
Intuitividad y minimización de errores. |
Refinamiento del escenario |
|
Fuente del estímulo |
Huésped |
Estímulo |
El huésped hace clic en "Confirmar reserva" |
Ambiente |
Operación con carga normal, con una media de 1000 solicitudes simultáneas |
Artefacto |
Formulario de reserva y pasarela de pago |
Respuesta |
El sistema muestra una página de confirmación con los detalles de la reserva y envía un correo electrónico al huésped |
Medida de la respuesta |
El proceso de reserva debe completarse en menos de 5 pasos. La tasa de éxito de la reserva debe ser superior al 98% |
| ID y descripción corta | QAS-07 Huésped modifica alguna característica de su reserva |
|---|---|
Escenario |
La modificación de una reserva debe ser tan fácil como la original |
Atributo |
Usabilidad |
Preocupación del atributo |
Simplicidad de la interfaz de modificación |
Refinamiento del escenario |
|
Fuente del estímulo |
Huésped |
Estímulo |
El huésped navega a la sección de "Mis reservas" y selecciona la opción para modificar una reserva específica |
Ambiente |
Operación con carga normal, con una media de 1000 solicitudes simultáneas |
Artefacto |
Interfaz de gestión de reservas |
Respuesta |
El sistema presenta un formulario pre-llenado que permite al huésped cambiar los campos editables, como las fechas, y muestra un resumen de los posibles cargos adicionales |
Medida de la respuesta |
El tiempo medio para completar la modificación debe ser menor a 1 minuto. El 100% de las modificaciones válidas deben ser procesadas correctamente |
| ID y descripción corta | QAS-09 Huésped cancela su reserva |
|---|---|
Escenario |
El proceso de cancelación debe ser sencillo y transparente para el huésped |
Atributo |
Usabilidad |
Preocupación del atributo |
Intuitividad y claridad en el proceso de cancelación |
Refinamiento del escenario |
|
Fuente del estímulo |
Huésped |
Estímulo |
El huésped hace clic en el botón de "Cancelar reserva" |
Ambiente |
Operación con carga normal, con una media de 1000 solicitudes simultáneas |
Artefacto |
Interfaz de gestión de reservas |
Respuesta |
El sistema muestra una ventana emergente que pide al huésped confirmar la cancelación y le informa sobre la política de cancelación y los posibles reembolsos |
Medida de la respuesta |
El proceso de cancelación debe completarse en un máximo de 3 clics. No debe haber ambigüedad en la confirmación de la cancelación |
| ID y descripción corta | QAS-10 Huésped revisa todas las reservas pasadas y activas realizadas por él |
|---|---|
Escenario |
El huésped puede ver un historial completo y organizado de sus reservas pasadas y activas |
Atributo |
Usabilidad |
Preocupación del atributo |
Claridad en la visualización de datos y navegabilidad |
Refinamiento del escenario |
|
Fuente del estímulo |
Huésped |
Estímulo |
El huésped navega a la sección de su historial de reservas |
Ambiente |
Operación con carga normal, con una media de 1000 solicitudes simultáneas |
Artefacto |
Interfaz de perfil de usuario |
Respuesta |
El sistema muestra una lista de reservas, categorizadas como "activas" y "pasadas", con detalles clave como fechas, hotel y estado |
Medida de la respuesta |
El tiempo de carga de la página del historial de reservas debe ser menor a 3 segundos. El 100% de las reservas deben ser recuperadas y mostradas sin errores |
| ID y descripción corta | QAS-12 Recepcionista registra la entrada del huésped |
|---|---|
Escenario |
El proceso de check-in debe ser rápido y sencillo para el recepcionista |
Atributo |
Usabilidad |
Preocupación del atributo |
Eficiencia operativa y curva de aprendizaje mínima para el personal |
Refinamiento del escenario |
|
Fuente del estímulo |
Recepción |
Estímulo |
El recepcionista busca la reserva del huésped y hace clic en "Check-in" |
Ambiente |
Operación con carga normal, con una media de 1000 solicitudes simultáneas |
Artefacto |
Módulo de check-in y gestión de reservas |
Respuesta |
El sistema guía al recepcionista a través de los pasos necesarios, como la verificación de identidad, la asignación de habitación y la activación de la llave, con mensajes claros |
Medida de la respuesta |
El tiempo promedio para un check-in debe ser menor a 2 minutos. El 99% de los check-ins deben completarse sin errores |
| ID y descripción corta | QAS-14 Recepcionista registra la salida del huésped |
|---|---|
Escenario |
El proceso de check-out debe ser rápido y sin errores para el recepcionista |
Atributo |
Usabilidad |
Preocupación del atributo |
Eficiencia y precisión en el proceso de salida |
Refinamiento del escenario |
|
Fuente del estímulo |
Recepción |
Estímulo |
El recepcionista busca la reserva del huésped y hace clic en "Check-out" |
Ambiente |
Operación con carga normal, con una media de 1000 solicitudes simultáneas |
Artefacto |
Módulo de check-out y procesamiento de pagos |
Respuesta |
El sistema muestra un resumen de la cuenta, procesa el pago y marca la habitación como desocupada, con una confirmación clara para el recepcionista |
Medida de la respuesta |
El tiempo promedio para un check-out debe ser menor a 1 minuto. La conciliación de pagos no debe presentar errores |
| ID y descripción corta | QAS-16 Recepcionista realiza el cobro al huésped terminada su estancia |
|---|---|
Escenario |
El sistema de cobro debe de ser eficiente para la recepcionista, minimizando errores y agilizando el proceso de check-out |
Atributo |
Usabilidad |
Preocupación del atributo |
Curva de aprendizaje mínima |
Refinamiento del escenario |
|
Fuente del estímulo |
Recepcionista |
Estímulo |
Recepcionista lleva a cabo los pasos para procesar el pago final del huésped |
Ambiente |
Operación normal, potencialmente con una fila de huéspedes que necesitan hacer su pago final rápidamente |
Artefacto |
Interfaz de check-out del sistema |
Respuesta |
La recepcionista completa el proceso de cobro de forma rápida y sin errores. La interfaz monto a pagar, detalles del huésped y formas de pago |
Medida de la respuesta |
El cobro debe de hacerse en menos de 5 minutos, con una tasa de error inferior al 2% |
| ID y descripción corta | QAS-20 Recepcionista cambia al huésped de habitación |
|---|---|
Escenario |
El sistema debe permitir que un recepcionista reasigne una habitación a un huésped de forma rápida y sin errores |
Atributo |
Usabilidad |
Preocupación del atributo |
Flujo de trabajo ineficiente |
Refinamiento del escenario |
|
Fuente del estímulo |
Recepción |
Estímulo |
El huésped solicita un cambio de habitación |
Ambiente |
Operación normal, posiblemente bajo presión de otros huéspedes |
Artefacto |
Interfaz del sistema |
Respuesta |
La recepcionista puede buscar otra habitación, reasignar al huésped y actualizar el sistema con los nuevos detalles con un mínimo de clics |
Medida de la respuesta |
Los clics promedio para completar de actividad deben ser máximo 5 |
3.2.4. Seguridad
| ID y descripción corta | QAS-06 Huésped selecciona una habitación y confirma la reserva |
|---|---|
Escenario |
Un huésped reserva una habitación. |
Atributo |
Seguridad |
Preocupación del atributo |
Integridad de transacciones. |
Refinamiento del escenario |
|
Fuente del estímulo |
Huésped |
Estímulo |
Confirmación de la reserva con pago. |
Ambiente |
Operación con alta concurrencia, con una media de 10,000 solicitudes simultáneas |
Artefacto |
Módulo de reservas y pagos. |
Respuesta |
El sistema confirma una sola vez y asegura la transacción. |
Medida de la respuesta |
Incidentes de doble cobro = 0 |
| ID y descripción corta | QAS-17 Recepcionista realiza el cobro al huésped terminada su estancia |
|---|---|
Escenario |
El recepcionista realiza un cargo de consumos al finalizar la estancia. |
Atributo |
Seguridad |
Preocupación del atributo |
Integridad de transacciones. |
Refinamiento del escenario |
|
Fuente del estímulo |
Recepción |
Estímulo |
Solicitud de pago final. |
Ambiente |
Operación con carga normal, con una media de 1000 solicitudes simultáneas |
Artefacto |
Operación con carga normal, con una media de 1000 solicitudes simultáneas |
Respuesta |
Registro único del cobro. |
Medida de la respuesta |
100% de consistencia en la transacción. |
| ID y descripción corta | QAS-27 Administrador define precios diarios, temporadas altas y promociones. |
|---|---|
Escenario |
El administrador cambia tarifas y promociones. |
Atributo |
Seguridad |
Preocupación del atributo |
Autenticación y autorización. |
Refinamiento del escenario |
|
Fuente del estímulo |
Administración |
Estímulo |
Modificación de tarifas. |
Ambiente |
Sesión autenticada. |
Artefacto |
Módulo de catálogo de precios. |
Respuesta |
Solo usuarios autorizados pueden modificar precios. |
Medida de la respuesta |
Acceso no autorizado = 0. |
| ID y descripción corta | QAS-32 Un auditor busca reservas canceladas poco después de su creación |
|---|---|
Escenario |
Un auditor valida intentos sospechosos de cancelación. |
Atributo |
Seguridad |
Preocupación del atributo |
Trazabilidad de operaciones. |
Refinamiento del escenario |
|
Fuente del estímulo |
Auditoría |
Estímulo |
Consulta de cancelaciones recientes. |
Ambiente |
Carga de auditoría. |
Artefacto |
Log de operaciones. |
Respuesta |
Mostrar todas las cancelaciones con marca de tiempo y usuario. |
Medida de la respuesta |
100% de transacciones trazables. |
| ID y descripción corta | QAS-33 Un auditor rastrea cambios en el precio de una reserva después de confirmada. |
|---|---|
Escenario |
Auditor revisa modificaciones de precios post-confirmación. |
Atributo |
Seguridad |
Preocupación del atributo |
Integridad de precios. |
Refinamiento del escenario |
|
Fuente del estímulo |
Auditoría |
Estímulo |
Solicitud de historial de cambios. |
Ambiente |
Operación con carga normal, con una media de 1000 solicitudes simultáneas |
Artefacto |
Registro de precios. |
Respuesta |
Mostrar cada modificación con usuario y hora |
Medida de la respuesta |
100% de cambios registrados |
| ID y descripción corta | QAS-35 El auditor sigue reembolsos y descuentos aplicados, asegurando que estén justificados. |
|---|---|
Escenario |
Un auditor valida descuentos y devoluciones. |
Atributo |
Seguridad |
Preocupación del atributo |
Autenticidad y justificación de descuentos. |
Refinamiento del escenario |
|
Fuente del estímulo |
Auditoría |
Estímulo |
Solicitud de reporte de reembolsos/descuentos. |
Ambiente |
Operación con carga normal, con media de 1000 solicitudes simultáneas |
Artefacto |
Subsistema de pagos. |
Respuesta |
Registro completo de cada descuento con justificación. |
Medida de la respuesta |
100% de descuentos con registro válido. |
| ID y descripción corta | QAS-37 El auditor genera un reporte para verificar que los pagos en línea se hayan procesado correctamente. |
|---|---|
Escenario |
Auditor valida pagos electrónicos. |
Atributo |
Seguridad |
Preocupación del atributo |
Disponibilidad e integridad de los registros de pago. |
Refinamiento del escenario |
|
Fuente del estímulo |
Auditoría |
Estímulo |
Solicitud de reporte de conciliación. |
Ambiente |
Operación con carga normal, con una media de 1000 solicitudes simultáneas |
Artefacto |
Pasarela de pagos. |
Respuesta |
Generación de reporte con estatus de cada pago. |
Medida de la respuesta |
100% de pagos procesados verificados |
| ID y descripción corta | QAS-40 El auditor puede ver un registro de cada inicio de sesión y la actividad del personal. |
|---|---|
Escenario |
El auditor revisa accesos al sistema. |
Atributo |
Seguridad |
Preocupación del atributo |
Autenticidad y trazabilidad de usuarios. |
Refinamiento del escenario |
|
Fuente del estímulo |
Auditoría |
Estímulo |
Solicitud de logins del personal. |
Ambiente |
Operación con carga normal, con una media de 1000 solicitudes simultáneas |
Artefacto |
Sistema de autenticación. |
Respuesta |
Lista completa de sesiones e interacciones. |
Medida de la respuesta |
100% de accesos registrados. |
3.2.5. Confiabilidad
| ID y descripción corta | QA34 - El auditor compara ingresos de servicios adicionales con registros de venta. |
|---|---|
Escenario |
Conciliar ingresos por servicios adicionales |
Atributo |
Confiabilidad |
Preocupación del atributo |
Consistencia de datos. |
Refinamiento del escenario |
|
Fuente del estímulo |
Auditoría |
Estímulo |
Solicitud de conciliación de registros de venta. |
Ambiente |
Operación con carga normal. |
Artefacto |
Subsistema de contabilidad |
Respuesta |
El sistema compara automáticamente los datos de ingresos con los registros de venta y genera un informe de discrepancias. |
Medida de la respuesta |
Menos del 0.5% de discrepancia entre los registros. |
| ID y descripción corta | QA36 - El auditor sigue reembolsos y descuentos aplicados, asegurando que estén justificados. |
|---|---|
Escenario |
Auditor revisa reembolsos y descuentos. |
Atributo |
Confiabilidad |
Preocupación del atributo |
Precisión de los resultados. |
Refinamiento del escenario |
|
Fuente del estímulo |
Auditoría |
Estímulo |
Solicitud de reporte de reembolsos/descuentos. |
Ambiente |
Operación con carga normal, con media de 1000 solicitudes simultáneas. |
Artefacto |
Subsistema de pagos. |
Respuesta |
El sistema genera un reporte detallado que asocia cada descuento o reembolso con su justificación documentada. |
Medida de la respuesta |
100% de los descuentos y reembolsos en el reporte tienen un registro válido de justificación. |
| ID y descripción corta | QA39 - Genera un reporte para verificar que los pagos en línea se hayan procesado correctamente. |
|---|---|
Escenario |
Auditor valida pagos electrónicos. |
Atributo |
Confiabilidad |
Preocupación del atributo |
Veracidad de los datos. |
Refinamiento del escenario |
|
Fuente del estímulo |
Auditoría |
Estímulo |
Solicitud de reporte de conciliación de pagos en línea. |
Ambiente |
Operación con carga normal, con una media de 1000 solicitudes simultáneas. |
Artefacto |
Pasarela de pagos. |
Respuesta |
El sistema concilia los pagos registrados en la base de datos interna con los de la pasarela de pagos |
Medida de la respuesta |
100% de los pagos procesados son verificados y coinciden con la pasarela de pagos. |
| ID y descripción corta | QA41 - El auditor compara el estado de las habitaciones en el sistema con reportes físicos |
|---|---|
Escenario |
Auditor verifica el inventario. |
Atributo |
Confiabilidad |
Preocupación del atributo |
Consistencia de datos. |
Refinamiento del escenario |
|
Fuente del estímulo |
Auditoría |
Estímulo |
Solicitud de un informe de estado de habitaciones. |
Ambiente |
Operación con carga baja. |
Artefacto |
Subsistema de gestión de habitaciones. |
Respuesta |
El sistema genera un informe detallado que puede ser comparado con el conteo físico, mostrando el estado de cada habitación (ocupada, limpia, fuera de servicio) |
Medida de la respuesta |
100% de los registros en el sistema concuerdan con los reportes físicos. |
| ID y descripción corta | QA43 - El auditor compara tarifas y políticas entre hoteles de diferentes regiones |
|---|---|
Escenario |
Auditor valida uniformidad de precios |
Atributo |
Confiabilidad |
Preocupación del atributo |
Veracidad de los datos. |
Refinamiento del escenario |
|
Fuente del estímulo |
Auditoría |
Estímulo |
Solicitud de un informe de precios y políticas por región. |
Ambiente |
Operación con carga baja. |
Artefacto |
Módulo de administración. |
Respuesta |
El sistema genera un reporte consolidado que lista los precios y las políticas de los hoteles, agrupados por región. |
Medida de la respuesta |
El reporte refleja con precisión los precios y políticas de todos los hoteles en cada región. |
3.3. Restricciones y preocupaciones
3.3.1. Restricciones (Constraints)
Dentro de las restricciones del sistema podemos encontrarnos con las siguientes:
| Identificador | Descripción | Origen |
|---|---|---|
CON-1 |
El sistema de reservación no debe almacenar, procesar y transmitir directamente datos sensibles de tarjetas de crédito. Esta responsabilidad debe ser delegada completamente por una Pasarela de Pagos externa certificada. |
Legal / Negocio |
CON-2 |
El sistema debe cumplir con las regulaciones de protección de datos personales aplicables en las geografías donde opera la cadena hotelera. |
Legal / Negocio |
CON-3 |
Para cumplir con la trazabilidad y auditoría financiera, los accesos al sistema de eventos críticos (cobros, cancelaciones) deben ser almacenados en un almacén de datos append-only (solo escritura, sin modificación) para garantizar el no repudio. |
Técnico |
3.3.2. Concers (preocupaciones)
Las preocupaciones representan las inquietudes técnicas, operativas y de calidad que los interesados esperan que la arquitectura resuelva. Además, podemos encontrarnos que, cada actor cuenta con preocupaciones, las cuales deben ser implementadas, como lo pueden ser:
-
Huéspedes: desean rapidez, exactitud en los cobros y protección de su información personal.
-
Recepcionistas: necesitan una interfaz intuitiva, rápida y tolerante a errores.
-
Administradores: buscan disponibilidad continua, integridad de pagos y confiabilidad en los reportes.
-
Auditores: requieren trazabilidad completa de operaciones y datos verificables.
-
Equipo técnico y docente: se enfocan en la mantenibilidad, modularidad y alineación del diseño con los atributos de calidad definidos.
Con esto podemos decir que las preocupaciones principales son:
| Identificador | Descripción | Objetivo |
|---|---|---|
CRN-1 |
Garantizar que cada módulo pueda ser probado y desplegado a producción de forma autónoma, sin causar interrupciones en otros servicios. |
Extensibilidad / Testabilidad |
CRN-2 |
Hacer uso eficiente de recursos de cómputo y bases de datos optimizadas para mantener bajos costos operativos y de infraestructura. |
Portabilidad |
CRN-3 |
Implementar patrones de diseño que hagan de los componentes críticos altamente testeables de forma aislada. |
Testabilidad |
CRN-4 |
Estandarizar la experiencia del usuario en todos los módulos para reducir la curva de aprendizaje. |
Usabilidad |
CRN-5 |
Contar con un diseño modular, es decir, cliente-servidor y capas, que facilite el desarrollo de nuevas funcionalidades. |
Extensibilidad / Mantenibilidad |
CRN-6 |
No acumular deuda técnica que comprometa la mantenibilidad del sistema. |
Mantenibilidad |
4. Método de diseño
4.1. Método de diseño
El diseño arquitectónico del Sistema Hotelero se desarrolló siguiendo el método Attribute-Driven Design (ADD) complementado con el enfoque Component-Based Software Engineering (CBSE) descrito por Cheesman & Daniels. Este método garantiza que la arquitectura resultante no sea producto de decisiones arbitrarias, sino una respuesta racional, trazable y justificada a los impulsores arquitectónicos identificados (drivers), entre los cuales se incluyen los atributos de calidad priorizados —usabilidad, disponibilidad, seguridad y rendimiento—, además de las restricciones y preocupaciones del proyecto.
El propósito del método fue traducir los escenarios de calidad y casos de uso en una estructura arquitectónica modular, capaz de sostener las operaciones críticas del sistema, asegurar la mantenibilidad y facilitar la validación futura del diseño mediante vistas y diagramas coherentes.
4.1.1. Enfoque general del proceso ADD
El proceso ADD se basa en construir la arquitectura a partir de los atributos de calidad y no exclusivamente de las funcionalidades. El diseño se desarrolla en iteraciones donde cada ciclo busca satisfacer un conjunto de drivers arquitectónicos priorizados, refinando el modelo con nuevas decisiones estructurales o tácticas.
El procedimiento aplicado constó de las siguientes fases:
Identificación de drivers arquitectónicos: Se elaboró un backlog que incluía los Casos de Uso, los escenarios de atributos de calidad (QAS) y las restricciones técnicas. Los atributos priorizados fueron:
-
Usabilidad: facilidad de uso, simplicidad de interfaz y eficiencia operativa.
-
Disponibilidad: tolerancia a fallos y continuidad del servicio.
-
Seguridad: autenticación, integridad de pagos y trazabilidad.
-
Rendimiento: latencia reducida y optimización de consultas.
Selección de los drivers para la iteración inicial: En la primera iteación se atendieron los drivers usabilidad y disponibilidad, enfocados en la interacción con el usuario y la robustez operativa. Después, se atendieron los drivers de seguridad y rendimiento, para garantizar la operación confiable del sistema.
Descomposición del sistema en elementos lógicos: Se definió la arquitectura cliente-servidor en capas, separando responsabilidades de presentación, lógica de negocio y persistencia. Este estilo fue elegido por su alineación con los QAS y por ofrecer un marco modular y escalable.
Asignación de responsabilidades a componentes: Cada caso de uso fue analizado para identificar las operaciones de sistema requeridas, las clases participantes y las interfaces involucradas. Las responsabilidades fueron distribuidas jerárquicamente desde las interfaces de usuario hasta las entidades de datos.
Evaluación de suficiencia (“suficiente”): Cada iteración se cerró cuando las decisiones arquitectónicas satisfacían adecuadamente los escenarios de calidad sin introducir complejidad innecesaria. Esto permitió mantener un equilibrio entre funcionalidad y mantenibilidad.
4.1.2. Iteraciones del proceso ADD
Iteración 1: Usabilidad
Drivers atendidos:
QAS de usabilidad (simplicidad de interfaz, eficiencia operativa).
Concern de capacitación mínima del usuario.
Decisiones tomadas:
Se aplicó el patrón MVC (Model-View-Controller) en el cliente, dividiendo la presentación (UI), el control (Controller) y la comunicación (ClientService).
Las interfaces gráficas se diseñarían con flujos directos y mensajes claros, reduciendo la carga cognitiva del usuario.
Se crearían controladores especializados por caso de uso (ReservaController, PagoController, etc.), facilitando así la localización y mantenimiento del código.
Resultado: La arquitectura resultante mejora la experiencia del usuario final, permitiendo que el cliente, el personal de recepción y administración operen el sistema con una curva de aprendizaje mínima. La separación entre vista y lógica también incrementó la mantenibilidad y la capacidad de evolución del software.
Iteración 2: Disponibilidad y confiabilidad
Drivers atendidos:
QAS de disponibilidad (continuidad del servicio, recuperación ante fallos).
QAS de confiabilidad (consistencia de datos, precisión de resultados).
Decisiones tomadas:
Se establecería un manejo controlado de excepciones en todas las capas, permitiendo la recuperación ante errores sin comprometer la integridad de los datos.
Los Managers se consolidaron como capa de negocio, controlando la secuencia de operaciones y validarían los estados de las entidades antes de realizar transacciones.
Se implementó el patrón Service Layer, donde los servicios (*ServiceImp) encapsulan los flujos de negocio expuestos al cliente.
Resultado: La arquitectura asegura una disponibilidad estable mediante la separación de responsabilidades y una capa de control bien definida. La confiabilidad del sistema se ve reforzada por la validación de datos y la trazabilidad de las operaciones críticas.
Iteración 3: Seguridad y rendimiento
Drivers atendidos:
QAS de seguridad (autenticación, trazabilidad, integridad de pagos).
QAS de rendimiento (latencia y eficiencia de consultas).
Decisiones tomadas:
Se estableció el patrón cliente-servidor distribuido, separando la lógica de negocio de la interfaz gráfica.
Se definieron los servicios remotos (interfaces) (ILoginService, IReservaService, etc.) y sus implementaciones en el servidor, reduciendo la exposición de datos y mejorando el control de acceso.
Se diseñaría la clase ConexionDB bajo el patrón Singleton, asegurando una única conexión activa y mejorando así la eficiencia en la gestión de recursos.
Se adoptó el patrón DAO (Data Access Object) para encapsular la lógica de persistencia, minimizando el acoplamiento entre la lógica de negocio y la base de datos.
Resultado: El sistema alcanzó un nivel de seguridad controlada mediante autenticación y una capa de datos aislada, junto con rendimiento optimizado por la reutilización de conexiones y consultas específicas.
Iteración 4: Integración de reportes y trazabilidad
Drivers atendidos:
QAS de seguridad (trazabilidad de operaciones, integridad de registros).
QAS de disponibilidad (acceso consolidado a información histórica).
Decisiones tomadas:
Se agregó la clase ReporteManager con dependencias hacia ReservaDAO, PagoDAO y HabitacionDAO, integrando información de distintas fuentes.
Se definió el servicio IReporteService y su implementación (ReporteServiceImp) para permitir la generación remota de reportes por parte del administrador o auditor.
Se garantizó que los reportes se basaran en datos consistentes y verificables, fortaleciendo la integridad del sistema.
Resultado: El sistema logra visibilidad total sobre su operación, habilitando auditorías y revisiones de desempeño sin afectar la disponibilidad ni el rendimiento del sistema principal.
4.1.3. Enfoque CBSE (Cheesman & Daniels)
El método Component-Based Software Engineering (CBSE) se aplicó en paralelo al ADD para formalizar la especificación de componentes e interfaces. El proceso siguió tres fases:
Identificación: A partir de los casos de uso y del modelo de conceptos de negocio, se identificaron los componentes principales del dominio: Reserva, Habitación, Pago, Usuario y Reporte. Cada uno fue representado como un componente lógico con responsabilidades bien definidas.
Interacción: Se desarrollaron diagramas del sistema para refinar cómo los componentes colaboran entre sí. Por ejemplo, la operación “Registrar Reserva” implica la interacción entre ReservaServiceImp, ReservaManager, ReservaDAO y HabitacionDAO. Este análisis permitió definir las interfaces provistas y requeridas entre componentes.
Especificación: Las interfaces IReservaService, IPagoService, etc., representan las interfaces provistas del sistema, mientras que los DAO y Managers actúan como componentes requeridos dentro de la especificación.
El resultado del CBSE fue una arquitectura orientada a componentes reutilizables y sustituibles, con fronteras bien definidas y bajo acoplamiento entre capas.
4.1.4. Cierre del proceso
El método ADD garantizó que cada iteración atendiera drivers específicos, mientras que CBSE proporcionó la estructura técnica para documentar las decisiones tomadas y formalizar las interfaces entre componentes. Los criterios de “suficiente” se aplicaron cuando los escenarios de atributos de calidad fueron satisfechos sin comprometer simplicidad o mantenibilidad.
En conjunto, ambos métodos produjeron una arquitectura robusta, trazable y alineada con los impulsores arquitectónicos, permitiendo que cada vista del documento se derive lógicamente del proceso de diseño y no de decisiones improvisadas.
5. Arquitectura
5.1. Vista lógica
La vista lógica del Sistema Hotelero representa la organización estática del sistema y la distribución de responsabilidades funcionales a través de una arquitectura cliente-servidor en capas. Esta vista permite comprender cómo se estructura el software internamente, cómo se comunican sus componentes y cómo cada elemento contribuye a los atributos de calidad definidos en los escenarios arquitectónicos.
La estructura general está organizada en dos grandes nodos —Cliente y Servidor— cada uno dividido en subcapas que separan las responsabilidades de presentación, lógica de negocio y persistencia de datos. Este enfoque refleja el estilo arquitectónico en capas combinado con el patrón cliente-servidor, donde las dependencias fluyen de manera unidireccional, desde las interfaces gráficas hacia la base de datos, promoviendo la modularidad y la mantenibilidad.
5.1.1. Diagrama de Clases
Capa Cliente
En el extremo izquierdo del diagrama se encuentra la capa de presentación, compuesta por las clases LoginUI, ReservaUI, HabitacionUI, PagoUI y ReporteUI. Estas clases representan las ventanas o pantallas del sistema utilizadas por los diferentes actores (recepcionista, administrador y auditor). Cada interfaz de usuario es responsable de mostrar información y capturar entradas, actuando como punto de contacto directo con el usuario final.
Estas clases dependen de sus respectivos controladores (LoginController, ReservaController, HabitacionController, PagoController, ReporteController), que implementan el patrón Model-View-Controller (MVC) dentro del cliente. Los controladores gestionan la lógica de interacción y validaciones básicas, delegando la comunicación con el servidor a los objetos ClientService.
Las clases LoginClientService, ReservaClientService, HabitacionClientService, PagoClientService y ReporteClientService encapsulan las llamadas remotas al servidor. Estas clases dependen de las interfaces de servicio (ILoginService, IReservaService, IHabitacionService, IPagoService, IReporteService) mediante relaciones de dependencia UML << use >>. Este diseño asegura que el cliente permanezca desacoplado de la implementación concreta del servidor, permitiendo modificar la lógica del lado servidor sin afectar el código cliente.
Desde la perspectiva de los atributos de calidad, esta separación mejora la usabilidad, ya que las interfaces gráficas pueden evolucionar independientemente de la lógica interna, y favorece la seguridad, pues las operaciones críticas se ejecutan exclusivamente del lado servidor.
Capa Servidor
El servidor implementa las interfaces anteriores mediante clases concretas (LoginServiceImp, ReservaServiceImp, HabitacionServiceImp, PagoServiceImp y ReporteServiceImp) que realizan las interfaces definidas (<< realize >>). Estas implementaciones representan la lógica de aplicación, coordinando la ejecución de operaciones complejas y validando las reglas de negocio.
Cada servicio mantiene una dependencia hacia su correspondiente Manager, como ReservaManager, HabitacionManager, PagoManager, LoginManager y ReporteManager. Los managers encapsulan la lógica de negocio específica de cada subsistema:
-
ReservaManager gestiona la asignación y modificación de reservas.
-
HabitacionManager controla disponibilidad y mantenimiento.
-
PagoManager administra las transacciones económicas.
-
LoginManager verifica credenciales y controla accesos.
-
ReporteManager integra datos de distintos DAO para generar informes de auditoría y desempeño.
Esta capa media cumple un papel esencial en la confiabilidad y consistencia del sistema, ya que asegura que todas las operaciones sigan un flujo uniforme.
Capa de base de datos
La capa de acceso a datos está conformada por las clases ReservaDAO, HabitacionDAO, PagoDAO, ReporteDAO y LoginDAO (o UsuarioDAO), todas asociadas a la clase ConexionDB, que representa el componente de conexión a la base de datos. Cada DAO es responsable de las operaciones CRUD sobre una entidad específica (Reserva, Habitacion, Pago, Reporte, Usuario).
Las asociaciones entre DAO y POJOs (Reserva, Habitacion, Pago, Reporte, Usuario) muestran una relación de uno a muchos, donde un DAO puede gestionar múltiples instancias de su entidad correspondiente. La clase ConexionDB se modela como una asociación compartida (1 a 1) para representar una conexión única o gestionada mediante un patrón Singleton, lo cual contribuye directamente a la eficiencia y rendimiento del sistema al evitar conexiones redundantes.
Justificación del estilo arquitéctonico
El sistema adopta el estilo arquitectónico en capas cliente-servidor, que proporciona una separación clara entre responsabilidades: presentación, lógica de negocio, servicios y persistencia. Esta estructura favorece la modularidad, la escalabilidad y la facilidad de mantenimiento, atributos esenciales en sistemas transaccionales como los de gestión hotelera.
-
Usabilidad: las capas de presentación son independientes, permitiendo rediseñar interfaces sin modificar la lógica interna.
-
Disponibilidad: la separación entre cliente y servidor facilita el despliegue en diferentes máquinas, permitiendo recuperación ante fallos y operación continua.
-
Seguridad: el control de acceso y autenticación se centraliza en los servicios del servidor, minimizando riesgos en el cliente.
-
Rendimiento: la conexión única a la base de datos y la delegación de procesamiento al servidor optimizan el uso de recursos.
-
Confiabilidad: las operaciones se canalizan a través de managers que garantizan integridad y consistencia en las transacciones.
5.1.2. Diagrama de Componentes
5.1.3. Diagrama de Objetos
5.2. Modelo de conceptos de negocio
5.3. Vista de Proceso
(HITO 5)
(Mostrar el comportamiento del sistema en ejecución para satisfacer rendimiento y disponibilidad. Se enfoca en concurrencia, comunicación y sincronización.)
(Diagrama de Secuencia UML (alternativas: Sequence, Communication, Activity, Timing, Interaction Overview) para 2-3 flujos críticos. El texto debe explicar el modelo de concurrencia y los patrones de interacción.)
(Indicar qué se ejecuta en paralelo, qué llamadas son sincrónicas / asíncronas, tiempos objetivo/timeout y reintentos, y dónde empieza/termina la transacción con la política de consistencia aplicada (fuerte/eventual)”.)
(Texto explicativo: 450–900 palabras. Explica la estructura mostrada en el diagrama, justifica cómo refleja el estilo arquitectónico elegido y cómo contribuye a satisfacer los escenarios de atributos de calidad relevantes para esta vista.)
5.4. Vista de Implementación
(HITO 3 e HITO 4)
(Esta vista muestra los componentes que integran el sistema. Este apartado consiste en:)
5.4.1. Diagrama de especificación
(HITO 3 e HITO 4)
(Definir cada componente como una unidad de software reemplazable y con un contrato claro. Es la base para el desarrollo y las pruebas unitarias/de integración.)
(Un Diagrama de Componentes UML por cada componente (serán varios diagramas), usando el estereotipo << comp spec >>. Mostrar las interfaces provistas y requeridas identificadas durante el proceso de diseño. Ver figura 7.9. del libro de Cheesman & Daniels.)
5.4.2. Diagramas de especificación de interfaces
(HITO 3 e HITO 4)
(Formalizar el contrato de cada interfaz. Define qué operaciones ofrece un componente y qué se espera de ellas, permitiendo el desarrollo en paralelo.)
(Un Diagrama de Clases UML por cada interfaz, usando el estereotipo << interface type >> que contiene las operaciones de la interfaz con una relación de composición al modelo de información de dicha interfaz (diagrama de clases). Se incluyen los diagramas de interfaces de sistema y de interfaces de negocio. Ver figuras 7.4 y 7.6 del libro de Cheesman & Daniels. Las operaciones de cada interfaz deben llevar firma.)
(A continuación de cada diagrama deben especificarse las pre y pos-condiciones de manera clara.)
5.4.3. Interacción de componente
(HITO 3 e HITO 4)
(Demostrar cómo los componentes colaboran para realizar una funcionalidad específica. Valida que las interfaces definidas son suficientes y correctas.)
(Diagramas de Comunicación UML de las operaciones de sistema que ayudó a identificar las operaciones de las interfaces de negocio. Se elabora uno por cada operación de la interfaz de sistema. Muestra las instancias de los componentes y los mensajes que intercambian.)
6. TBD
7. Vista de Contexto
8. Registro de decisiones arquitectónicas
8.1. Record architecture decisions
Date: 2025-10-23
8.1.1. Status
Accepted
8.1.2. Context
We need to record the architectural decisions made on this project.
8.1.3. Decision
We will use Architecture Decision Records, as [described by Michael Nygard](http://thinkrelevance.com/blog/2011/11/15/documenting-architecture-decisions).
8.1.4. Consequences
See Michael Nygard’s article, linked above. For a lightweight ADR toolset, see Nat Pryce’s [adr-tools](https://github.com/npryce/adr-tools).
9. Trazabilidad
(HITO 4 e HITO 5)
(Verificar la coherencia y completitud del diseño, demostrando cómo cada ASR se materializa en decisiones y artefactos concretos a lo largo del documento. Esta matriz es la evidencia final de que la arquitectura responde directamente a los requisitos. Ayuda a asegurar que no haya decisiones de diseño "huérfanas" (sin justificación) o requisitos importantes que no hayan sido atendidos en el diseño.)
(Una única Matriz de Trazabilidad en formato de tabla. Columnas Requeridas:)
(1. Driver (ID y Tipo) — {CU, QAS, CON, CRN})
(2. Decisión de Diseño (Táctica / Patrón))
(4. Artefactos Afectados (añadir referencia a Vistas/Elementos))
(5. Estado (Cumple / Parcial / Pendiente))
(Nota: Un mismo driver puede aparecer en varias filas si fue atendido en iteraciones distintas.)
10. Apéndice
(Material adicional, referencias, glosario, notas)