Hotel Un nuevo cliente en la empresa para la cual trabajamos es dueño del futuro hotel “Estrellita de Mar” y nos comenta su problema de no poder encontrar un software en el mercado que cubra todas sus necesidades. Luego de haber realizado un par de reuniones, y de realizada la propuesta, y aprobada por el cliente, podemos identificar los siguientes requerimientos: Ingresar las habitaciones, según su tipo (simple, doble y matrimonial) y comodidades (frigobar, TV, y DVD). Consultar las habitaciones disponibles y poder reservar habitaciones en su hotel. El hotel posee dos tipos de clientes: habituales y esporádicos. Una reserva almacena datos del cliente, de la habitación reservada, la fecha de comienzo y el número de días que será ocupada la habitación. El recepcionista del hotel debe poder hacer las siguientes operaciones: · Obtener un listado de las habitaciones disponible de acuerdo a su tipo. · Preguntar por el precio de una habitación de acuerdo a su tipo. · Preguntar por el descuento ofrecido a los clientes habituales. · Preguntar por el precio total para un cliente dado, especificando su número de reserva, tipo de habitación y número de noches. · Dibujar en pantalla la foto de una habitación de acuerdo a su tipo. · Reservar una habitación especificando el número de la pieza, reserva y nombre del cliente. · Eliminar una reserva especificando el número de la habitación. El administrador puede usar el programa para: · Cambiar el precio de una habitación de acuerdo a su tipo. · Cambiar el valor del descuento ofrecido a los clientes habituales. · Calcular las ganancias que tendrán en un mes especificado (considere que todos los meses tienen treinta días). El diseño a desarrollar debe facilitar la extensibilidad de nuevos tipos de habitaciones o clientes y a su vez permitir agregar nuevas consultas. También, nuestro cliente, quiere realizar un portal en la web, en donde, los visitantes puedan reservar una o las habitaciones que desee (si el mismo posee tarjeta de crédito). Este debe registrarse al Portal, por el cual el sistema deberá reconocer el tipo de cliente. Actividades: 1. Leer atentamente el enunciado y actividades. 2. Realizar todas las consultas que crean necesarias. 3. Realizar el Diagrama de Casos de Uso. Opcional: Realizar previamente un listado con todos los requerimientos, del cual se van a derivar los casos de uso. 4. Realizar dos Casos de Uso críticos y que no representen funcionalidad de consulta. 5. Realizar los Casos de Prueba de los dos casos de uso anteriores. 6. Realizar el Diagrama de Clases. 7. Realizar el Diagrama de Actividad de alta de reserva. 8. Realizar el Diagrama de Estado de la reserva de una Habitación (en esta actividad puede utilizar supuestos). 1. Diagrama de Casos de Uso Observaciones: ¿No faltaría el Caso de Uso donde se administren las habitaciones? ¿No faltaría el Caso de Uso donde se valide la tarjeta de crédito del cliente? 2. Casos de Uso 2.1.1. Caso de Uso de Alto Nivel RES1_Alta de Reserva Nombre Actores Tipo Descripción RES1_Alta de Reserva Recepcionista Principal y Esencial El módulo deberá permitir al actor hacer la reserva de una habitación a un cliente para un período determinado. 2.1.2. Caso de Uso Extendido RES1_Alta de Reserva Nombre Actores Tipo Resumen Objetivo Precondición Poscondición Curso normal de acontecimientos RES1_Alta de Reserva Recepcionista Principal y Esencial El módulo deberá permitir al actor hacer la reserva de una habitación a un cliente para un período determinado. Reservar una habitación. El actor debe estar logueado en el sistema Hotelería. El sistema deberá mostrar la pantalla de Alta de Reserva con los parámetros en blanco. El actor podrá seguir ingresando altas, o bien, salir de la opción para ingresar en otra funcionalidad dentro del módulo. 1. El actor ingresa al módulo de Reservas y selecciona la opción Alta de Reserva. 2. El sistema muestra la pantalla “Alta de Reserva” con los siguientes campos: Fecha desde (campo obligatorio): el sistema deberá desplegar un calendario para que el actor seleccione la fecha. Fecha hasta (campo obligatorio): el sistema deberá desplegar un calendario para que el actor seleccione la fecha. Tipo de Habitación (combo opcional): lista todos los tipos de habitaciones activas. 3. El actor registra los parámetros de búsqueda y presiona Aceptar. 4. El sistema muestra todas las habitaciones disponibles por tipo para las fechas indicadas. El sistema detallará los siguientes campos: Fecha Desde Fecha Hasta Numero de Habitación Tipo de Habitación 5. El actor selecciona una habitación entre las desplegadas y presiona “Continuar”. 6. El sistema solicita el ingreso de un Cliente para la reserva. Alternativas 7. El actor ingresa el cliente y presiona Aceptar. 8. El sistema indica: Precio diario y total (con descuentos): correspondiente a la habitación seleccionada para el cliente registrado. Detalle de Descuentos 9. El actor presiona aceptar para hacer efectiva la reserva. El sistema muestra un mensaje de Reserva Exitosa en caso que se haya efectivizado la misma. En ese mensaje también se indicará un código numérico de la reserva que estará asociado a ese evento. 2.1 El sistema deberá validar que: la fecha hasta sea mayor o igual a la fecha desde. La fecha desde sea igual o mayor a sysdate. El punto 2.1 no es un curso alterno, estas validaciones deberían estar en el curso normal; dentro de las alternativas mostraríamos que pasaría si estas validaciones no se cumplieran. 5.1 El sistema deberá validar que el actor haya seleccionado una o más habitaciones. Caso contrario, se mostrará el mensaje “Debe seleccionar al menos una habitación”. 7.1 El sistema validará que el cliente exista en el maestro de clientes. VAL1_Valida Cliente. En caso que no exista mostrará el mensaje “Ingrese un Cliente existente”. EN que Caso de Uso se ingresar el cliente 7.1 El actor podrá presionar Cancelar para volver atrás con la Reserva. Se visualizará la pantalla de Alta de Reserva con los parámetros en blanco. 9.1 El actor podrá presionar Volver para cancelar la operación. 9.2 El sistema deberá mostrar la pantalla de Alta de Reserva con los parámetros en blanco para que puedan ingresarse nuevos. RES1 Alta Reserva Include Recepcionista VAL1 Valida Cliente 2.2.1. Caso de Uso de Alto Nivel RES2_Baja de Reserva Nombre Actores Tipo Descripción RES2_Alta de Reserva Recepcionista Principal y Esencial El módulo deberá permitir al actor hacer la baja de una reserva ya efectuada de una habitación a un cliente para un período determinado. 2.2.2. Caso de Uso Extendido RES2_Baja de Reserva Nombre Actores Tipo Resumen Objetivo Precondición Poscondición Curso normal de acontecimientos RES2_Baja de Reserva Recepcionista Principal y Esencial El módulo deberá permitir al actor hacer la baja de una reserva ya efectuada de una habitación a un cliente para un período determinado. Dar de baja una reserva de una habitación. El actor debe estar logueado en el sistema Hotelería. El sistema deberá mostrar la pantalla de Baja de Reserva con los parámetros en blanco. El actor podrá seguir ingresando bajas, o bien, salir de la opción para ingresar en otra funcionalidad dentro del módulo. 1. El actor ingresa al módulo de Reservas y selecciona la opción Baja de Reserva. 2. El sistema muestra la pantalla “Baja de Reserva” con los siguientes campos: Código de Reserva (combo opcional): el sistema deberá desplegar un campo de búsqueda con todas las reservas activas. Cliente (campo opcional) Fecha desde (campo opcional): el sistema deberá desplegar un calendario para que el actor seleccione la fecha. Fecha hasta (campo opcional): el sistema deberá desplegar un calendario para que el actor seleccione la fecha. 3. El actor registra los parámetros de búsqueda y presiona Aceptar. 4. El sistema muestra el siguiente detalle de campos de acuerdo a los parámetros indicados: Código de Reserva Cliente Tipo de Cliente Fecha Desde Fecha Hasta Habitación Tipo Habitación Precio total Detalle de Descuentos 5. El actor selecciona la reserva y presiona Aceptar. 6. El sistema muestra el mensaje “Está seguro que desea cancelar la reserva”. 7. El actor presiona Aceptar para Cancelar la misma. 8. El sistema muestra el mensaje “Reserva Cancelada” en caso que se haya efectivizado la operación. Alternativas 2.1 El sistema deberá validar que: La fecha hasta sea mayor o igual a la fecha desde. La fecha desde sea igual o mayor a sysdate. El cliente exista en el maestro de clientes. VAL1_Valida Cliente. En caso que no exista mostrará el mensaje “Ingrese un Cliente existente” El código de reserva corresponda a una reserva que exista. VAL2_Valida Reserva 4.1 En caso que el actor no ingrese ninguno de los parámetros indicados, el sistema mostrará todas las reservas activas detallándose los siguientes campos: Código de Reserva Cliente Tipo de Cliente Fecha Desde Fecha Hasta Habitación Tipo Habitación Precio total Detalle de Descuentos 7.1 El actor podrá presionar Cancelar para volver atrás con la operación. El sistema mostrará la pantalla de Cancelar Reserva con los parámetros en blanco. 8.1 El sistema deberá mostrar la pantalla de Baja de Reservas con los parámetros en blanco para que puedan ingresarse nuevos. RES1 Alta Reserva Include Include Recepcionista VAL1 Valida Cliente VAL2 Valida Reserva 3. Casos de Prueba 3.1 Caso de Uso RES1_Alta de Reserva Observaciones: Seria bueno estructurarlos en columnas, Por ejemplo: Nombre | Tipo Pasos | Resultado Esperado | Resultado obtenido. Positivos 1. En la pantalla de Alta de Reserva ingresar: Fecha Desde: 01/06/2009 Fecha Hasta: 01/06/2009 Tipo de Habitación El actor debe presionar Aceptar. El sistema deberá mostrar todas las habitaciones disponibles para la fecha indicada. Negativos 1. En la pantalla de Alta de Reserva ingresar una fecha anterior a la fecha del día. Faltaría un poco mas de detalle de cómo ingresar a la pantalla Alta de Reserva. Con que acción se dispara el mensaje (Presionar la opción Aceptar)? El sistema deberá mostrar un mensaje “Ingrese una fecha mayor o igual que la fecha del día”. ¿Después que sucede? 2. Seleccionar una habitación y presionar “Continuar”. Faltan Pasos. El sistema deberá solicitar que el actor ingrese un cliente. 3. Ingresar el Cliente Juan Fernandez. El sistema debe mostrar los precios para ese cliente de acuerdo a los parámetros seleccionados. 2. Ingresar una fecha desde menor que la fecha hasta. Faltan Pasos. El sistema deberá mostrar un mensaje “La fecha hasta no puede ser inferior a la fecha desde”. ¿Después que sucede? 3. Ingresar en la pantalla de Alta de Reserva y no indicar una fecha desde. Presionar Aceptar. El sistema debe mostrar el mensaje “Ingrese una fecha desde y hasta para su búsqueda”. ¿Después que sucede? 4. Presionar Cancelar Reserva. El sistema deberá volver a la pantalla de Alta de Reserva con los parámetros en blanco. 4. Ingresar en la pantalla de Alta de Reserva indicando: Fecha Desde: 01/06/2009 Fecha Hasta: 01/06/2009 Tipo de Habitación Presionar Aceptar. Cuando el sistema solicite seleccionar una habitación, no seleccione ninguna y presione “Continuar”. (Según caso de uso esta bien, pero se podría definir que hasta no se seleccione ninguna no se habilite la opción “Continuar”) 5. Repetir las acciones 1, 2, y 3. Presionar el botón Aceptar. El sistema deberá mostrar el mensaje que la reserva fue realizada. Se visualizará la pantalla de Alta de Reserva con los parámetros en blanco. (Podríamos verificar en la base de datos si realmente se realizo la Alta de la reserva) El sistema mostrará el mensaje “Debe seleccionar una o más habitaciones para continuar” ¿Después que sucede? 5. Volver a realizar el paso anterior seleccionando una habitación. Presione “Continuar”. No ingrese cliente alguno. Presione Aceptar. El sistema mostrará el mensaje “Debe ingresar un Cliente”. 3.2 Caso de Uso RES2_Baja de Reserva Observaciones generales: Después de que el sistema nos de un mensaje, ¿qué sucede? Los Pasos a seguir están incompletos. Positivos 1. En la pantalla de Baja de Reserva Negativos 1. En la pantalla de Baja de Reserva indique: Fecha Desde: 01/06/2009 Fecha Hasta: 01/06/2009 El sistema mostrará las reservas de esa fecha en caso que haya alguna. 2. En la pantalla de Baja de Reserva indique: Código de Reserva: 000302 (se supone que ese código existe para una fecha futuro determinada). ingresar una fecha anterior a la fecha del día. El sistema deberá mostrar un mensaje “Ingrese una fecha mayor o igual que la fecha del día”. 2. Ingresar una fecha desde menor que la fecha hasta. El sistema deberá mostrar un mensaje “La fecha hasta no puede ser inferior a la fecha desde”. El sistema mostrará la reserva correspondiente a ese código. 3. Una vez completado el paso 2, seleccione la reserva y presione Aceptar. 3. Ingresar un código de reserva inexistente. El sistema mostrará el mensaje “Está seguro que desea cancelar la reserva”. El sistema mostrará un mensaje “Ingrese un código de reserva existente”. 4. Una vez realizado el paso 3, presione Aceptar. 4. No seleccione ningún parámetro y presione Aceptar. Se visualizarán todas las reservas activas. Presione Aceptar sin seleccionar reserva alguna para dar de baja. El sistema mostrará un mensaje “Debe seleccionar al menos una reserva”. 5. Vuelva a la pantalla principal de Baja de Reserva. Entre los parámetros de búsqueda ingrese un Cliente inexistente. El sistema mostrará un mensaje que la reserva ha sido cancelada. Debe volver a la pantalla de Baja de reservas con los parámetros en blanco. 5. Estando en el paso 3, presione Cancelar. El sistema deberá volver atrás con la reserva. Debe volver a la pantalla de Baja de reservas con los parámetros en blanco. El sistema mostrará el mensaje “Ingrese un Cliente existente”. 4. Diagrama de Actividad Observaciones: Faltaría la validación de la tarjeta de crédito del Cliente 5. Diagrama de Clases Observaciones: Las clases no se representan de dicha manera. ¿Y los atributos y métodos? En principio los conceptos “Bonificación”, “Habituales” y “Precios” no parecerían ser clases, sino más bien atributos de otros objetos. 5. Diagrama de Estados (de la reserva de una Habitación) Observaciones: Si se toma como entidad a la Reserva, esta muy bien. Estaría bueno tomar los estados posibles que tendría una habitación en relación a una Reserva.