Proyecto Hotel (Final)

71
Instituto Tecnológico de Ciudad Victoria Modelo de Educación a Distancia. Fundamentos de Ingeniería de Software. Maestra: Lic. Karina Yazmín Gómez Martínez. Unidad 5: Modelo de Implementación. Etapa 4. Francisco Javier Cázares Limón.

description

proyecto

Transcript of Proyecto Hotel (Final)

Page 1: Proyecto Hotel (Final)

Instituto Tecnológico de Ciudad Victoria

Modelo de Educación a Distancia.

Fundamentos de Ingeniería de Software.

Maestra: Lic. Karina Yazmín Gómez Martínez.

Unidad 5: Modelo de Implementación.

Etapa 4.

Francisco Javier Cázares Limón.

No. Control: 10380054.

Unidad CEDES Nuevo Laredo

Page 2: Proyecto Hotel (Final)

Lunes 26 de Marzo de 2012

Introducción.

Definición del problema

Objetivos.

a. General. b. Especifico.

Antecedentes.

Restricciones.

a. Factores Datos.b. Factores Estratégico.

Recursos.

a. Humanos. b. Hardware. c. Software.

Proceso de Ingeniería de Requisitos.

a. Identificación o extracción de requisitos articulan y comprenden los requisitos que desean.

b. Análisis y negociación de requisitos. c. Especificación de requisitos. d. Validación de requisitos.e. Gestión de requisitos.

Modelado de Análisis.

a. Descripción de objetos (tablas) y atributos (campos) Objetos.b. Diagrama Entidad-Relación (producto número dos).c. Diagrama de Flujo de Datos (producto numero tres).d. Especificación de procesos (producto número cuatro).

Modelo de diseño.

a. Diseño de Base de Datos.b. Diseño de Interfaces

Page 3: Proyecto Hotel (Final)

c. Diseño de Arquitectura.d. Diseño de Componentes.

Modelo de Implementación.

Introducción.

El tema que se hablara es de la problemática que se presenta en el Hotel de nuestro cliente, en donde los recepcionistas siguen llenando en bitácoras las reservas de habitaciones, los check in y los check out, nuestro cliente requerirá de un software que le facilite su problemática y de esta manera brindar un mejor servicio a sus huéspedes y personal del Hotel

Nuestra obligación es hacer el trabajo lo más simple y para esto se les desarrollara un software con todos los problemas presentados por el cliente como los son: reservaciones, check in y check out.

De esta manera se estará cumpliendo con las exigencias y necesidades de nuestro cliente.

Escenario.

Nuestro Hotel estará conformado de la siguiente manera:

Será un Hotel de 2 estrellas “bueno”.Sera un Hotel de Aeropuerto.

Estructura del hotel:

Cuenta con 7 pisos en cada piso cuenta con 20 habitaciones.

Page 4: Proyecto Hotel (Final)

20 Habitaciones sencillas.

Son las más económicas de la estructura hotelera, respetando los estándares de un moderno hotel de 2 estrellas. Estas habitaciones cuentan con los mismos servicios de las habitaciones dobles o de las dependencias pero con un mobiliario y decoraciones diferentes. Servicios incluidos (cama matrimonial o sencilla, aire acondicionado, tv color con cable, teléfono con acceso directo con lada nacional e internacional, baño privado con agua fría y caliente, servicio despertador).

60 Habitaciones dobles.

Nuestras habitaciones dobles están decoradas cuidadosamente para su mayor confort y comodidad, lo que permite una perfecta armonía entre espacio y decoración, exclusivos tapices y muebles de estilo. Tenemos habitaciones con 2 camas individuales o matrimoniales para satisfacer diferentes necesidades. Servicios incluidos (cama matrimonial o sencilla, aire acondicionado, tv color con cable/control remoto, teléfono con acceso directo con lada nacional e internacional, baño privado con agua fría y caliente, mesa de trabajo, room service, servicio despertador).

40 Habitaciones familiares.

Normalmente son las preferidas por las familias, grupos de amigos y parientes que desean alojarse juntos en la misma habitación, se pueden albergar hasta 5 personas y todas tienen baño completo en la habitación. Servicios incluidos (2 cama matrimonial y 1 sencilla, aire acondicionado, tv color con cable/control remoto, teléfono con acceso directo con lada nacional e internacional, baño privado con agua fría y caliente, mesa de trabajo, room service, servicio despertador).

Page 5: Proyecto Hotel (Final)

Definición del Problema.

La problemática que se presenta en este Hotel es que los recepcionistas anotan las reservaciones, check in y check out en bitácoras (por escrito), las cuales tienen una para cada función, esto conlleva a q lo recepcionistas dediquen mucho tiempo para realizar estas funciones, así como también desperdicien tiempo en buscar los datos de los huéspedes y están sujetos a perdidas de información. Por accidentes y descuidos.

Objetivos.

General.

El sistema será amigable, y de fácil uso para los recepcionistas.

El sistema deberá de gestionar las reservaciones, entradas y salidas de huéspedes de manera eficiente y minimizar el tiempo de búsqueda y gestión de estos mismos.

Especifico.

Cumplir con todas las necesidades del cliente y tomar en cuenta sus métodos y procedimientos desarrollados por ellos mismos.

Analizar los procedimientos para las reservaciones, entradas y salidas de huéspedes.

Documentar y mejorar los procedimientos e implementar sistemas de mejora continua.

Page 6: Proyecto Hotel (Final)

Antecedentes.

Se cuenta actualmente con los siguientes documentos aportados por la administración del Hotel:

Manual de operaciones. Descripción y Organigrama de los empleados. Bitácoras utilizadas por los recepcionistas. Copias de formatos de llenado en bitácora y datos utilizados para su correcto

llenado. Procedimientos y/o métodos que desarrollaron los empleados (Recepción)

atreves del tiempo.

En el área técnica se cuenta con los siguientes documentos:

MSDN Microsoft Visual Fox Pro 9.0 (Actualizado para SP2), este nos sirve como referencia de nuestro lenguaje de programación.

MySQL 5.0 Reference Manual, sirve de referencia en cuanto a base de datos y su correcta programación.

Manual de procedimientos ISO 9001:2008 para control de calidad. (Como referencia solamente, no se contará con acreditación por parte de la entidad certificadora).

Administering and Maintaining Windows 7 (Como referencia al Sistema Operativo).

Restricciones.

Factores Datos.

Tomando encuentra que se tiene una inversión por parte de los accionistas para este proyecto, como restricciones se tienen tiempos de entrega de proyecto corto y un rápido retorno de inversión. A demás de tener una limitante de 6 Licencias por parte de Microsoft que fueron adquiridas por la administración, se deberá de reducir a 6 equipos de cómputo para no infringir legalmente su uso y un solo servidor ya que este último también fue adquirido por parte del Hotel.

Factores Estratégico.

Por la naturaleza de este proyecto, se ha optado por implementar una estructura cliente-servidor en los servicios de datos y aplicación. Se utilizará la plataforma Microsoft en sistemas operativos de red y de cliente por el soporte 24/7 que ofrecen las licencias. A nivel Servidor de datos se ha optado por la plataforma de Software

Page 7: Proyecto Hotel (Final)

Libre MySQL Server para reducir costos en licencias y por su nivel de robustez y facilidad de implementación. Se utiliza un diseño bottom-up para la implementación del proyecto empezando por los niveles operacionales más críticos y subiendo a niveles de administración, este proyecto solamente abarca como se mencionó antes el funcionamiento de reservaciones, entradas y salidas de huéspedes. Esta será nuestro facto estratégico más importante y de más peso en el proyecto.

Recursos.

Recursos Humanos.

Puestos:

Puesto Auxiliares Total de PersonalDirector Gral. Asistente del Director Gral. 2Administrador del Hotel 1Recursos Humanos Reclutador y capacitador 2

RecepciónJefe de Recepcionistas,

Recepcionistas5

Seguridad.

MantenimientoGte. de mantenimiento,

Mantenimiento4

Restaurante Cocineros, meseros 10Botones 4Contador Aux. Contador 1Gerentes residente y de noche 2Lavandería 4Mucamas 5Supervisora de Piso 5Total de Empleados 45

Hardware.

Se contara con 6 equipos de cómputo de tipo escritorio con las siguientes características:

HP Compaq 8200 Elite compactaWindows® 7 Professional original 64 bitIntel® Core™ i3-2100 (3,10 GHz, caché de 3 MB, 2 núcleos)4 GB 1333 MHz SDRAM DDR3SATA (de 10.000 rpm) de 160 GBGrabadora SATA de DVD

De los cuales 5 serán usados por los recepcionistas y atención a los huéspedes y uno será utilizado para consultas en general y de uso para el gerente en turno.

Se contara también con un servidor de base de datos con las siguientes características:

Page 8: Proyecto Hotel (Final)

Servidor HP ProLiant serie DL160 G6Intel® Xeon® E5620 (4 núcleos, 2,40 GHz, 12 MB L3, 80W)2x Memoria PC3-10600R-9 de 4 GBDVD-RW4 Discos duros SAS de 250 Gb c/u a 15000 RPM

Por último se utilizarán dos impresoras, una de ellas laser y la otra será de matriz de puntos.

HP LaserJet Enterprise P3015d  Epson FX-890 Matriz de Punto

Software.

Windows® 7 Professional original 64 bit Windows 2008 Server Enterprise Edition MySQL Server 5.0 Visual Fox Pro 9.0 SP2

Proceso de Ingeniería de Requisitos.

Identificación o extracción de requisitos.

Definición de los requisitos: Los servicios, restricciones y objetivos son establecidos por los usuarios del sistema. Se busca hacer esta definición en detalle que impacte en costes, tiempos y calidad en servicio.

El encargado de proporcionar la información necesaria sobre las operaciones y procedimientos es el administrador del Hotel. Donde el administrador nos solicita una mejor gestión sobre el área de recepción.

Los usuarios finales serán los recepcionistas, gerente en turno y como usuario líder el administrador del hotel.

Se programarán sesiones, cada sesión trata temas en común de acuerdo a los procedimientos, se hará llegar el temario que se tocará en cada reunión con anterioridad y a todos los participantes, este fue otorgado por el administrador de hotel (Manual de operaciones) como un antecedente al proyecto.

En cada reunión se busca integrar a 3 usuarios finales, y como mínimo un usuario líder para cada área a tratar, además las reuniones estarán conformadas por un facilitador o interrogador que hará la función de identificar y extraer los requisitos, las sesiones estarán siendo grabadas por un escriba, el cual aparte de grabar las sesiones identificará los requisitos en cada sesión y hará una minuta la cual será enviada y firmada por los integrantes de cada reunión.

Page 9: Proyecto Hotel (Final)

Si surge un nuevo tema el cual no está definido en el temario de la sesión actual, este se programará y se realizará una nueva sesión en un plazo corto para extraer dichos requisitos.

En este paso se recopilan los resultados de las pruebas obtenidas en el punto anterior, en donde se vuelven hacer pruebas y el resultado obtenido se le hace entrega al administrador del Hotel para su aprobación.

Análisis y negociación de requisitos.

Durante esta etapa se realizó un análisis de los requisitos, estos se avaluaron con los siguientes puntos:

Necesario. Conciso. Completo. Consistente. No Ambiguo. Verificable. Alcanzable.

Se determinaron también los requisitos funcionales y los no funcionales, así como también se eliminaron los requisitos que aunque solucionan problemas del hotel, están dentro de las restricciones de datos y estratégicas.

También se agregaron requisitos necesarios para el control y seguridad del sistema que no fueron mencionados por los usuarios pero tienen un nivel crítico en el sistema, como son autenticación de usuario y autenticación de administrador.

Especificación de requisitos

Requisitos funcionales (RF)

De sistema (SIS)

Requisito funcional: RFSIS-001Introducción: Validar usuario para entrar al sistemaEntradas: Ingresar Login y PasswordProcesos: El sistema validara los datos ingresados que sean correctos realizando una búsqueda en la Base de datosSalidas: Se desplegara un mensaje de bienvenida al sistema.Error: Mostrara mensaje de error si los datos de Login y Password no son correctos

Requisito funcional RFSIS-002Introducción: Opciones de servicios.Entradas: El usuario elegirá las opciones de datosProcesos: El sistema mostrara las opciones de servicios en la pantalla.Salidas: Se desplegara la información en la pantalla de la opción elegidaError: No aplica.

Requisito funcional RFSIS-003Introducción: Generación de reporte

Page 10: Proyecto Hotel (Final)

Entradas: El usuario podrá generar reportes semanales, mensuales y anuales de los datos del hotel.Procesos: El sistema desplegara opciones para elegir el tipo de reporte de registros de clientes.Salidas: Desplegará la información del tipo de reporte solicitado en la pantalla.Error: En caso de errores de información se desplegará un mensaje de error.

Requisito funcional RFSIS-004Introducción: Generación de respaldoEntrada: El usuario se autenticará como administrador y solicitará al sistema un respaldo, y configurará las opciones de respaldoProceso: El sistema generará un respaldo de su base de datos, de acuerdo a los parámetros introducidos.Salidas: El sistema informará de completo el respaldo y registrará la fecha y la horaError: El sistema informará de error cuando el respaldo no se complete correctamente.

Reservaciones (RSV)

Requisito funcional RFRSV-001Introducción: Registrar reservaciones.Entradas: El usuario ingresara datos generales de huéspedes y de las reservacionesProcesos:

El sistema verificara la disponibilidad de la habitación en la base de datos. El sistema registrara los datos del cliente y reservaciones en la base de datos.

Salidas: Desplegara en la pantalla un mensaje de habitación disponible. Desplegara un mensaje de registro de reserva exitoso Desplegara un mensaje de error de que la habitación no está disponible

Error: En caso de errores de información se desplegará un mensaje de error.

Requisito funcional RFRSV-002Introducción: Cancelar la reservación cuando la fecha halla expirado.Entradas: ninguna Procesos: el sistema verificará la fecha de reservación y la comparará con la fecha actual si excede procederá a dar de baja.Salidas: se desplegará la información en pantalla indicando la cancelación de la reservación.Error: En caso de errores de información se desplegará un mensaje de error.

Requisito funcional RFRSV-003Introducción: Dar de baja la reservaciónEntradas: El usuario ingresara datos la reservación Procesos: El sistema dará de baja la reservación y eliminará los datos guardarlos en la base de datosSalidas: Desplegara información en la pantalla de la reservación eliminadaError: En caso de errores de información se desplegará un mensaje de error.

Requisito funcional RFRSV-004Introducción: Cambia de reservación a CheckInEntradas: El usuario ingresara datos correspondientes de la reservación.

Page 11: Proyecto Hotel (Final)

Procesos: El sistema solicitará en pantalla ingresar el número de reservación y marcará las habitaciones como ocupadas y la reservación será eliminada y se convertirá en número de cuenta.Salidas: Desplegara un mensaje de información de los datos de la cuenta y el titular.Error: En caso de errores de información se desplegará un mensaje de error.

Requisito funcional RFRSV-005Introducción: Consultar datos de reservas, habitación.Entradas: El usuario podrá elegir entre las opciones de consultaProcesos: El sistema buscará en la base de datos, de acuerdo a los datos de entrada (ejemplo número de cuenta).Salidas: Desplegará la información solicitada de opción de consulta en la pantallaError: Mostrar mensaje de error si encuentra inconsistencia en los índices.

Requisito funcional RFRSV-006Introducción: Modificar datos de la reservaciónEntradas: El usuario ingresara datos la reservación, ingresa datos a modificarProcesos: El sistema verifica los datos, y guarda las modificacionesSalidas: Desplegara información en la pantalla de la reservación modificadaError: En caso de errores de información se desplegará un mensaje de error.

Cuenta (CTA)

Requisito funcional RFCTA-001 Introducción: Dar alta Datos Personales.Entradas: El usuario ingresará al sistema los datos personales del titular de la cuenta.Procesos: El sistema verifica los datos, y guarda las modificaciones. Salidas: Desplegará la información en pantalla de los datos modificados.Error: En caso de errores de información se desplegará un mensaje de error.

Requisito funcional RFCTA-002 Introducción: Dar alta los insumos en la cuenta.Entradas: El usuario ingresará al sistema los insumos adquiridos por el huésped, así como el número de cuenta.Procesos: El sistema agregará el costo y el insumo a la cuenta.Salidas: Desplegará la información en pantalla de los datos modificados.Error: En caso de errores de información se desplegará un mensaje de error.

Requisito funcional RFCTA-003 Introducción: Consultar el estado de cuenta del huésped.Entradas: El usuario introducirá el número de cuenta.Procesos: EL sistema buscará el estado de cuenta del huésped.Salidas: Desplegará la información en pantalla el estado de cuenta del huésped.Error: En caso de errores de información se desplegará un mensaje de error.

Requisito funcional RFCTA-004 Introducción: Cerrar la cuenta cuando termina su estancia en el hotel.Entradas: El usuario procederá a ingresar el número de cuenta

Page 12: Proyecto Hotel (Final)

Procesos: EL sistema generará el total de la cantidad, desglosando insumos y/o penalizaciones, habitaciones y días de estancia.Salidas: EL sistema mostrará en pantalla el total y el desglose.Error: En caso de error se le informará a la administración y se procederá con la cuenta manual.

Requisito funcional RFCTA-005 Introducción: Generación de Factura Entradas: El usuario ingresará los datos fiscales del clienteProcesos: El sistema generará la factura y procederá a pedir el tipo de pagoSalidas: El sistema imprimirá la factura y mostrará de completado la impresiónError: En caso de error mostrara un mensaje de error.Requisito funcional RFCTA-006 (Pago en efectivo)Introducción: Dar de alta el tipo de pago en efectivo Entradas: El usuario ingresara los datos de la cuenta, incluyendo la cantidad.Procesos: La información se almacenará en la base de datos, el sistema cerrará la cuenta y se imprimirá comprobante sencillo.Salidas: Desplegara un mensaje de información almacenada correctamente.Error: En caso de errores se desplegará un mensaje de error.

Requisito funcional RFCTA-007 (Pago con tarjeta)Introducción: Dar de alta el tipo de pago con tarjeta Entradas: El usuario ingresara los datos de la cuenta, el tipo de tarjeta y bancoProcesos: La información se almacenará en la base de datos, el sistema cerrará la cuenta.Salidas: Desplegara un mensaje de información almacenada correctamente.Error: En caso de errores se desplegará un mensaje de error.

Requisitos no funcionales. (NF)

Requisito no funcional NFSIS-001Disponibilidad y recuperación de fallos garantizada.Entradas: El usuario podrá ver la disponibilidad de datos generales del hotelProcesos: El sistema desplegara la opción donde los usuarios podrán revisar registros aparte de recuperaciones por seguridad de su información almacenada desde la base de datosSalidas: Desplegará la información de cualquier registro en la pantallaError: No aplica.

Requisito no funcional NFSIS-002Velocidad de despliegue de ventanas.Entradas: El usuario podrá ver la disponibilidad de datos generales del hotelProcesos: El sistema desplegara una opción donde mostrara al usuario la información almacenada desde la base de datos en tiempo realSalidas: Desplegará la información de cualquier registro en la pantallaError: No aplica.

Requisito no funcional NFSIS-003Máximo de 5 habitaciones por reservación Entradas: El ingresará el número de habitación de la reservación Procesos: El sistema validará que el número de habitación sea mayor o igual que uno y menor o igual que cinco Salidas: Desplegará la información en pantalla.Error: En caso de sobrepasar el límite, el sistema mostrará un mensaje de error

Page 13: Proyecto Hotel (Final)

Requisito no funcional NFSIS-004Sistema amigable con el usuario.Entradas: El usuario podrá acceder y ver con facilidad los datos generales del hotel.Procesos: El sistema mostrará una opción donde él usuario accederá a la información almacenada en la bases de datos. Salidas: Desplegará la información en pantalla.Error: No aplica.

Requisito no funcional NFSIS-005 Logotipo del Hotel.Entradas: El usuario podrá acceder a la interfaz del programa para modificar el logotipo del hotel.Procesos: El sistema pedirá la ubicación del nuevo Salidas: Desplegara la información en pantalla del logotipo modificado.Error: En caso de que no se pueda mostrar el logotipo se mostrara un mensaje.

Un ejemplo de un requisito rechazado en el análisis y negociación es el siguiente:

Requisito funcional N/A (Fuera de dominio del problema y genera ambigüedad)Introducción: Dar de alta, bajas y modificar empleados.Entradas: El usuario ingresara o actualizara datos de los empleados del hotel.Procesos: El sistema desplegara una pantalla donde los usuarios podrán administrar los diferentes datos de los empleados que están registrados, dar de altas, bajas y podrá modificar registros y los cambios quedarán almacenados en la base de datos.Salidas: Desplegará un mensaje de la información actualizada.Error: En caso de errores de información se desplegará un mensaje de error.

Este requisito es funcional pero se encuentra fuera del dominio del problema.

Validación de requisitos.

Una vez terminado la especificación de requisitos, se validaron con los usuarios finales y líderes. Se tomaron en cuenta las siguientes consideraciones: Validez, Consistencia, Completitud, Realismo y Verificabilidad.

Una vez llegado a un acuerdo con los usuarios finales y líder se procederá a realizar la gestión de requisitos, sin embargo se conformó que si surgiesen nuevos requisitos, estos se integraran al sistema en la próxima actualización programada.

Los usuarios proceden a firmar de acuerdo con los requisitos.

Page 14: Proyecto Hotel (Final)
Page 15: Proyecto Hotel (Final)

Gestión de requisitos.

Se realizó la siguiente matriz de dependencia de requisitos, que muestra cuales requisitos están en función de otros requisitos.

Matriz de dependencia de Requisitos. RFRSV-001 RFRSV-002 RFRSV-003 RFRSV-004 RFRSV-005 RFRSV-006 RFCTA-001 RFCTA-002 RFCTA-003 RFCTA-004 RFCTA-005 RFCTA-006 RFCTA-007

RFRSV-001 X RFRSV-002 X RFRSV-003 RFRSV-004 X X RFRSV-005 RFRSV-006 X X RFCTA-001 RFCTA-002 X RFCTA-003 RFCTA-004 X X X XRFCTA-005 RFCTA-006             X X RFCTA-007 X X

Page 16: Proyecto Hotel (Final)

Se realizó la matriz de requerimientos, dando prioridad a los requerimientos necesarios para el sistema y mostrando el riesgo sobre la importancia de estos en el sistema.

Requisito Descripción del requisito Prioridad RiesgoRFSIS-001 Validar usuario para entrar al sistema ALTA ALTORFSIS-002 Opciones de servicios. ALTA ALTORFSIS-003 Generación de reporte MEDIA BAJORFSIS-004 Generación de respaldo MEDIA BAJORFRSV-001 Registrar reservaciones. ALTA ALTORFRSV-002 Cancelar la reservación cuando la fecha halla expirado MEDIA BAJORFRSV-003 Dar de baja la reservación MEDIA MEDIORFRSV-004 Cambia de reservación a CheckIn MEDIA MEDIORFRSV-005 Consultar datos de reservas, habitación. MEDIA MEDIORFRSV-006 Modificar datos de la reservación MEDIA BAJORFCTA-001 Dar alta Datos Personales. ALTA MEDIORFCTA-002 Dar alta los insumos en la cuenta. BAJA BAJORFCTA-003 Consultar el estado de cuenta del huésped. ALTA MEDIORFCTA-004 Cerrar la cuenta cuando termina su estancia en el hotel. ALTA MEDIORFCTA-005 Generación de Factura ALTA MEDIORFCTA-006 Dar de alta el tipo de pago en efectivo MEDIA MEDIORFCTA-007 Dar de alta el tipo de pago con tarjeta MEDIA MEDIONFSIS-001 Disponibilidad y recuperación de fallos garantizada ALTA ALTONFSIS-002 Velocidad de despliegue de ventanas. MEDIA ALTONFSIS-003 Habilidad de manejar modos de autentificación de forma segura. ALTA ALTONFSIS-004 Sistema amigable con el usuario. MEDIA MEDIO

NFSIS-005 Logotipo del Hotel. MEDIA MEDIO

Nota:

La prioridad puede ser alta (el requerimiento es crítico para el sistema), Media (el sistema puede funcionar aunque de manera deficiente), baja (el requerimiento sería deseable tenerlo). A través de la columna de riesgos se puede determinar que requerimientos deberán ser probados forzosamente y cuales dependerá del tiempo con que se cuente.

Page 17: Proyecto Hotel (Final)

La siguiente matriz representa de donde surgen los requerimientos, así como también, quien los propuso y el tipo de requerimiento conforme a su función.

Matriz de seguimiento de orígenesRequerimiento Tipo Usuario OrigenRFSIS-001 I Administrador Dpto. Administración de HotelRFSIS-002 I Administrador Dpto. Administración de HotelRFSIS-003 S Administrador Dpto. Administración de HotelRFSIS-004 D Administrador Dpto. Administración de HotelRFRSV-001 F Empleados Área de RecepciónRFRSV-002 F Empleados Área de RecepciónRFRSV-003 F Empleados Área de RecepciónRFRSV-004 F Empleados Área de RecepciónRFRSV-005 F Empleados Área de RecepciónRFRSV-006 F Empleados Área de RecepciónRFCTA-001 F Empleados Área de RecepciónRFCTA-002 F Empleados Área de RecepciónRFCTA-003 F Empleados Área de RecepciónRFCTA-004 F Empleados Área de RecepciónRFCTA-005 F Empleados Área de RecepciónRFCTA-006 F Empleados Área de RecepciónRFCTA-007 F Empleados Área de RecepciónNFSIS-001 C Gerente Gerencia del HotelNFSIS-002 C Gerente Gerencia del HotelNFSIS-003 I Gerente Gerencia del HotelNFSIS-004 C Gerente Gerencia del Hotel

NFSIS-005 I Gerente Gerencia del Hotel

Nota:

F =FuncionalD = DatosC = ComportamientoI = InterfazS = Salida

Page 18: Proyecto Hotel (Final)

Descripción de objetos y atributos

RESERVACIONNombre Tipo de Dato Longitud Ejemplo Llave Descripcion

id_reservacion String 8 "abcd0001" Primaria Se utiliza para identificar la reservación asignada, esta es la llave principal de esta tablaid_titular String 13 "calf760123bm8" Secundaria Se utiliza para identificar al cliente que realizo la reservaciónnum_hab Numeric 1 1,2,3,…,9 Número de habitación reservadastipo_hab1 Char 1 s,d,f Tipo de habitaciones (s = sencilla, d = doble, f = familiar)tipo_hab2 Char 1 s,d,f Tipo de habitaciones (s = sencilla, d = doble, f = familiar)tipo_hab3 Char 1 s,d,f Tipo de habitaciones (s = sencilla, d = doble, f = familiar)tipo_hab4 Char 1 s,d,f Tipo de habitaciones (s = sencilla, d = doble, f = familiar)tipo_hab5 Char 1 s,d,f Tipo de habitaciones (s = sencilla, d = doble, f = familiar)fecha_sol DateTime 06/03/2012 12:30 Registro de cuando se realiza da reservaciónfecha_llegada DateTime 06/03/2012 12:30 Registro de posible fecha de llegadafecha_salida DateTime 06/03/2012 12:30 Posible fecha de salida

CUENTANombre Tipo de Dato Longitud Ejemplo Llave Descripcion

id_cuenta String 13 "calf760123bm8" Primaria Igual a la del id_cliente para identificar la cuenta asociada a él.fecha_llegada DateTime 06/03/2012 12:30 Registro de llegada fecha_salida DateTime 06/03/2012 12:30 Registro de salida

CLIENTE

Page 19: Proyecto Hotel (Final)

Nombre Tipo de Dato Longitud Ejemplo Llave Descripciónid_titular String 13 "calf760123bm8" Primaria Se utiliza para identificar al clientenom_titular String 255 "Francisco Javier" Secundaria Se utiliza para almacenar el nombre del titularapp_titular String 255 "Cazares" Secundaria Se utiliza para almacenar el apellido paternoapm_titular String 255 "Limon" Secundaria Se utiliza para almacenar el apellido maternotelefono numeric 10 8677563212 Se utiliza para almacenar el numero de teléfonodireccion1 String 255 "Carretera Nacional Km 10" Se utiliza para almacenar la dirección principaldireccion2 String 255 "Carretera Nacional Km 10" Se utiliza para almacenar la dirección opcionalciudad String 255 "Nuevo Laredo" Se utiliza para almacenar el estadoestado String 255 "Tamaulipas" Se utiliza para almacenar la ciudadrfc_fiscal String 13 "calf760123bm8" Secundaria Se utiliza para almacenar el RFC si procede una facturarznscl_fiscal String 255 "Razon social de la empresa" Se utiliza para almacenar la razón social de la empresa.

EmpleadoNombre Tipo de Dato Longitud Ejemplo Llave Descripción

id_emp String 13 "calf760123bm8" Primaria Se utiliza para identificar al empleadonom_emp String 255 "Francisco Javier" Secundaria Se utiliza para almacenar el nombre del empleadoapp_emp String 255 "Cazares" Secundaria Se utiliza para almacenar el apellido paterno del empleadoapm_emp String 255 "Limón" Secundaria Se utiliza para almacenar el apellido materno del empleadotelefono numeric 10 8677563212 Se utiliza para almacenar el numero de teléfono del empleadodireccion1 String 255 "Carretera Nacional Km 10" Se utiliza para almacenar la dirección principal del empleadopuesto String 255 "Carretera Nacional Km 10" Se utiliza para almacenar el puesto que tiene el empleadodepartamento String 255 "Nuevo Laredo" Secundaria Se utiliza para almacenar el departamento que esta asignado el empleado

COMPROBANTENombre Tipo de Dato Longitud Ejemplo Llave Descripción

Page 20: Proyecto Hotel (Final)

folio String 8 "ABCD001" Primaria Se utiliza para almacenar el número de folio del comprobantetotal_bruto float 8 12535.25 Se utiliza para almacenar el costo bruto de la cuentatotal_iva float 8 12535.25 Se utiliza para almacenar el tipo de IVA (11% o 16%)total_neto float 8 12535.25 Se utiliza para almacenar el total neto de la cuentadesgloce1 String 255 "Habitacion 101, 102, 103" Se utiliza para almacenar el desglose de la cuentadesgloce2 String 255 "Servicio de lavanderia" Se utiliza para almacenar el desglose de la cuenta si el espacio 1 no es suficienteid_cuenta String 13 "calf760123bm8" Secundaria Igual a la del id_cliente para identificar la cuenta asociada a él.tipo Char 1 s , f Indica el tipo de comprobante que es (s = sencillo, f = factura)

Page 21: Proyecto Hotel (Final)

HABITACIONNombre Tipo de Dato Longitud Ejemplo Llave Descripción

id_habitacion String 3 101 Primaria Se utiliza para identificar la habitación tipo_hab Char 1 s,d,f Tipo de habitaciones (s = sencilla, d = doble, f = familiar)cap_hab Numeric 1 1,2,3,…,9 Se indica la capacidad de personas que tiene la habitaciónestado_hab Char 1 o, l, r, d o = ocupada, l = en limpieza, r = reservada, d = disponibletel_hab numeric 3 102 almacena la extensión telefónica de la habitaciónasignado String 13 "calf760123bm8" Se utiliza para identificar al titular de la cuenta, asignada a la habitacióndescripcion1 String 255 "Cama doble, frigobar, TV" Se utiliza para almacenar las especificaciones de la habitacióndescripcion2 String 255 " Ropero, mesa de noche" Se utiliza para almacenar las especificaciones de la habitación

ConsumoNombre Tipo de Dato Longitud Ejemplo Llave Descripcion

id_cuenta String 13 "calf760123bm8" Secundaria Igual a la del id_cliente para identificar la cuenta asociada a él.id_producto String 10 "refresco01" Se utiliza para identificar el producto producto_prec float 8 12.5 Se utiliza para almacenar el precio del producto

Page 22: Proyecto Hotel (Final)

Diagrama Entidad-Relación

Page 23: Proyecto Hotel (Final)

Diagrama de Flujo de Datos

1. Proceso de Reservación

2. Check In

Page 24: Proyecto Hotel (Final)

3. Generación de consumos

Page 25: Proyecto Hotel (Final)
Page 26: Proyecto Hotel (Final)

4. Check Out

Page 27: Proyecto Hotel (Final)

Especificación de procesos

1. Alta reservación:

InicioMostrar (“Datos de Reservación”)Mostrar (“Ingrese cantidad de habitaciones a reservar”)Leer num_habSi num_hab <= 5 entonces

Mostrar (“Ingrese nombre del titular””)Leer nom_titularMostrar (“Ingrese apellido paterno del titular””)Leer app_titularMostrar (“Ingrese apellido materno del titular””)Leer apm_titularMostrar (“Ingrese fecha llegada””)Leer fecha_llegadaMostrar(“Ingrese fecha de salida”)Para ( i =0, i<num_hab, i++) repetir

Mostrar (“Tipo de Habitacion, S = Sencillo, D = Doble, F = Familiar”)Leer Tipo[i] //Arreglo de caracteres de 5 posiciones.

Fin ParaMostrar(“Desea Guardar la información, SI o No”)Leer OpSi op = ‘S’ o op=’s’ entonces

Num_reservacion = generaReservacion()guardaReservacion(Num_reservacion, nom_titular, app_titular,

apm_titular, Tipo, fecha_llegada, fecha_salida, hoy())Mostrar (“Su reservación es: ”, num_reservacion)

Finsi

Finsi

Fin

Page 28: Proyecto Hotel (Final)

2. Consulta Reservación.

Inicio Mostar (“Introduzca Numero de reservación”)Leer num_reservacionBuscar(num_reservacion)Si encontro() entonces

Reservacion = LeerRegistro(Num_reservacion)Nombre = LeerRegistro(nom_titular)Paterno = LeerRegistro(app_titular)Materno = LeerRegistro(apm_titular)tipoHab = LeerRegistro(Tipo)fecha1 = LeerRegistro(fecha_llegada)fecha2 = LeerRegistro(fecha_salida)fecha3 = LeerRegistro(fecha_sol)Mostrar(Reservacion)Mostrar(Nombre)Mostrar(Paterno)Mostrar(Materno)Mostrar(tipoHab)Mostrar(fecha1)Mostrar(fecha2)Mostrar(fecha3)

Si noMostrar(“No ha hecho una reservación”)

Endsi

Fin

Page 29: Proyecto Hotel (Final)

3. Baja Reservación

Incio

Mostar (“Introduzca Numero de reservación”)Leer num_reservacionBuscar(num_reservacion)Si encontro() entonces

Mostrar (“Esta seguro que desea eliminar la reservacion”)Leer Op

Si op = ‘S’ o op=’s’ entonceseliminarReservacion(num_reservacion)finsi

sino Mostrar(“No ha hecho una reservación”)

finsi

Fin

Page 30: Proyecto Hotel (Final)

4. Check In

InicioMostrar (“Regristro de CheckIn”)Mostrar(“¿Tiene reservación?”)Leer op Si op = ‘S’ o op=’s’ entonces

Mostar (“Introduzca Numero de reservación”)Leer num_reservacionBuscar(num_reservacion)Si encontro() entonces

asignaReservacion(num_reservaion)sino

Mostrar(“No se encuentra, favor de llamar a soporte tecnico”)Finsi

Finsi

Mostrar (“Ingrese cantidad de habitaciones”)

Leer num_habSi num_hab <= 10 entonces

Mostrar (“Ingrese nombre del titular””)Leer nom_titularMostrar (“Ingrese apellido paterno del titular””)Leer app_titularMostrar (“Ingrese apellido materno del titular””)Leer apm_titularMostrar (“Ingrese fecha llegada””)Leer fecha_llegadaMostrar(“Ingrese fecha de salida”)Mostrar (“Ingrese apellido RFC”)Leer RFCMostrar (“Ingrese Razon Social””)Leer razonsocialNum_cuenta = generacuenta()Para ( i =0, i<num_hab, i++) repetir

Mostrar (“Tipo de Habitacion, S = Sencillo, D = Doble, F = Familiar”)Leer TipoHabbuscaHabitacion(TipoHab)if encontró() entoneces

asignaHabitacion(num_cuenta)Mostar(“Entrega Llaves”)

sinoMostrar(“No hay habitaciones”, tipoHab, “ Disponibles”)

FinsiFin Para

SinoMostrar(“Limite de habitaciones alcanzado”)

Finsi

Fin

Page 31: Proyecto Hotel (Final)

5. Generar consumo

InicioMostrar (“Generacion de consumo por cuenta”)Mostrar (“Ingrese el ID del producto”)Leer num_prodbuscarProducto(num_producto)si econtro() entonces

producto = leerRegistro(nom_producto)precio = leerRegistro(precio_producto)Mostrar (“Ingrese Número de cuenta”)Leer Num_cuentabuscarNumCuenta(Num_cuenta)si encontro() entoncesMostrar(“Producto: “ producto, “ Su precio es: ”, precio”)Mostrar(“Desea asignarlo a la cuenta”)

Leer op Si op = ‘S’ o op=’s’ entonces

guardaConsumo(num_cuenta, id_producto)

finsi

finsi

sinoMostrar(“No se encuentra la cuenta”)

finsiFin

Page 32: Proyecto Hotel (Final)

6. Check Out

Inicio

Mostrar(“ChecOut del tiular”)Mostrar(“Favor de enviar a revisar la habitacion”)Mostrar (“Ingrese Número de cuenta”)Leer Num_cuentabuscarNumCuenta(Num_cuenta)si encontro() entonces

totalconsumo = generaTotalConsumo(num_cuenta)totalhabitaciones = generaTotalHabitacion(num_cuenta)total = totalconsumo + totalhabitacionesMostrar(“Desea Factura”)Leer opsi op = ‘S’ o op = ‘s’ entonces

rfc = leerRegistro(RFC_titular)razon = leerRegistro(rznscl_titular)

ImprimeFactura(total, num_cuenta, rfc, razon)

Sino

ImprimeSencillo(total, num_cuenta)

Finsi

Hacer

Mostrar (“Forma de pago T = tarjeta, E = efectivo”)Leer opPagoencaso(opPago) //Switch Case

caso ‘T’Mostrar(“Deslize Tarjeta”)LeerTarjeta()cierraCuenta(num_cuenta)

break()caso ’E’

Mostrar(“Ingrese Cantidad”)Leer cantidadcambio = cobrar(total, cantidad)cierraCuenta(num_cuenta)break()

DefaultMostrar(“Error Ingrese una opción valida”)

Finencaso

Mientras(opPago != ‘T’ o opPago! = ‘E’)

Sino Mostrar(“Error: no se encuentra la cuenta, Comunicarse con el Administrador”)

Finsi

Mostrar(“Gracias por preferirnos vuelva pronto”)

Page 33: Proyecto Hotel (Final)

Modelo de diseño

Diseño de la base de datos

Page 34: Proyecto Hotel (Final)

Diseño de Interfaces

Page 35: Proyecto Hotel (Final)
Page 36: Proyecto Hotel (Final)
Page 37: Proyecto Hotel (Final)
Page 38: Proyecto Hotel (Final)

Diseño de Arquitectura

Page 39: Proyecto Hotel (Final)

Diseño de Componentes

Page 40: Proyecto Hotel (Final)

Modelo de Implementación

En este modelo se implementará una prueba de ambiente controlado, en la cual conocemos los resultados obtenidos, se utilizara una prueba de verificación, esta prueba consiste en revisar los resultados correspondientes a la especificación del sistema, esta prueba se aplicará al módulo de Reservación de este sistema. Las especificaciones que se validarán son las siguientes:

Generación correcta del Id del Cliente Generación correcta del Número de reservación Validación de los datos, para que mantenga un estado consistente el sistema de

reservación. Validación de habitaciones por reservación con respecto al requerimiento NFSIS-003.

Esta prueba se hará con los siguientes datos:

Usuario del sistema: administrador Contraseña del sistema: admin123 Nombre: Juan Apellido Paterno: Pérez Apellido Materno: Hernández Fecha de llegada: 28/Marzo/2012 Fecha de salida: 1/Abril/2012 Habitaciones: 5 (1 Familiar, 2 Dobles, 2 Sencillas) Observaciones: Tener el A/C encendido para cuando se registre la persona

El sistema generará los siguientes datos:

Numero Id_titularo Este se genera utilizando las dos primeras letras del apellido paterno, la

primera letra del apellido materno y el primer del nombre y se adjunta 9 dígitos alfanuméricos generados al azar. Este Id se guardará en la tabla de reservación.

o Este número no se podrá generar si algún campo del titular esta vacio.

Numero id_reservaciono Este tomará los 4 primeros dígitos del numero Id_titular y le agregará 4 dígitos

alfanuméricos generados al azar.o Este número no se podrá generar si el id_titular no se ha generado previamente

Limite de personao El sistema calculará el límite de personas en la reservación, este deberá ser

informado por el recepcionista al cliente, este límite no se deberá superar en el procedimiento de Check IN.

Numero de nocheso El número de noches se generará automáticamente después que las

validaciones sobre las fechas sean todas correctas. Esta se hará mediante una resta de la fecha de salida a la fecha de entrada.

Page 41: Proyecto Hotel (Final)

El sistema validará lo siguiente:

El sistema validará que se informe el número de reservación de forma correcta. El recepcionista deberá dictar letra por letra al cliente y la escribirá en el campo “Confirmar numero de reservación”.

El sistema validará que el número de reservación y la confirmación sean iguales. El sistema validará que los campos no estén vacios. El sistema validará las fechas, que la fecha de llagada no sea menor que el día en que

se haga la reservación y que la fecha de salida no sea menor que el día de llegada. Las habitaciones se habilitarán de acuerdo al número de habitaciones introducido.

El modulo de reservación consta de 3 partes, marcadas por un número dentro de paréntesis, el recepcionista deberá seguir este procedimiento paso a paso:

(1) Datos de cliente: Se tomarán los datos de cliente y se generará el id_titular(2) Datos de la reservación: Se tomarán los datos de la reservación, ambas fechas, número

de habitaciones y se calculara e informará el límite de personas en la reservación.(3) Número de la reservación: Se generará el número de reservación, se dictará al cliente y se

validará que se haya dictado de forma correcta.(4) Guardar reservación: se almacenará en la base de datos dicha reservación.

Se validara que no falte ninguno de estos procedimientos antes de guardar la reservación mediante control de banderas (F o V) de forma interna. Todas las banderas deberán estar en verdadero antes de guardar. El sistema informará de incompleto en caso contrario.

Ejecución de la prueba:

Page 42: Proyecto Hotel (Final)

Entrada al sistema

Bienvenido al modulo y selección del módulo de reservación

Page 43: Proyecto Hotel (Final)

Modulo de reservación:

Page 44: Proyecto Hotel (Final)

Para mantener en un estado consistente los datos, los campos de fechas se han inicializado al día de hoy y una noche en el hotel, el numero de habitación será siempre mayor o igual que uno.

Validación de campos vacios

Page 45: Proyecto Hotel (Final)

Se ingresarán los datos siguientes:

Page 46: Proyecto Hotel (Final)

Nombre: Juan Apellido Paterno: Pérez Apellido Materno: Hernández

Generación del Id_titular:

Page 47: Proyecto Hotel (Final)

Error en número Id_titular

Validación de fechas:

Page 48: Proyecto Hotel (Final)

La fecha de llegada no puede ser antes que la fecha de reservación:

La fecha de salida no puede ser menor a la de la llegada

Page 49: Proyecto Hotel (Final)

Se ingresarán los siguientes datos:

Page 50: Proyecto Hotel (Final)

Fecha de llegada: 28/Marzo/2012 Fecha de salida: 1/Abril/2012

Validación de numero de habitación (el dato será introducido por teclado)

Si el dato se introduce mediante las flechas de selección, este no subirá más de 5 y no bajara más de 1

Se introducirán los siguientes datos:

Page 51: Proyecto Hotel (Final)

Habitaciones: 5 (1 Familiar, 2 Dobles, 2 Sencillas)

Calculo del límite de reservación:

El cálculo se hace mediante una suma algebraica de acuerdo a los siguientes datos:

Sencilla = 1 personas Doble = 2 personas Familiar = 5 personas

1 familiar + 1 doble + 1 doble + 1 sencillo + 1 sencillo = 5+2+2+1+1 = 11 Personas.

Generación del número de reservación:

Page 52: Proyecto Hotel (Final)

Error en la validación de la confirmación del número de reservación:

Error cuando no se ha generado el número Id_titular

Page 53: Proyecto Hotel (Final)

Se ingresará el último dato:

Page 54: Proyecto Hotel (Final)

Observaciones: Tener el A/C encendido para cuando se registre la persona

Mensaje de formulario completo y mensaje de almacenamiento exitoso:

Page 55: Proyecto Hotel (Final)

Error de formulario incompleto

Generación del informe sobre reservaciones

Page 56: Proyecto Hotel (Final)

Después de ingresar al sistema e ingresar al modulo de reservación, escribir cualquier nombre en el campo de Nombre para saltar la validación del nombre y después dar clic en el botón informe:

Vista del informe:

Page 57: Proyecto Hotel (Final)

Este informa mostrará todas las reservación hechas.