Etapa de Diseño: Gestión de Hotel Diseño de Sistemas Software Antonio Falcón Aragón José Luis Falcón Ramírez Carlos Villegas Nuñez 15 de marzo de 2010 1
Índice 1. Diseño de la Aplicación 3 1.1. Diagrama de clases UML........................... 3 1.2. Descripción de clases............................. 3 1.2.1. Clase Hotel.............................. 3 1.2.2. Clase Habitación........................... 3 1.2.3. Clase Reserva............................. 4 1.2.4. Clase Factura............................. 4 1.2.5. Clase Cliente............................. 4 1.2.6. Clase Llamada............................ 4 1.2.7. Clase Minibar............................. 4 1.2.8. Bebida................................. 4 1.2.9. Clase ListadoLibre.......................... 5 1.3. Diagrama de Dependencia.......................... 5 1.4. Diagramas de Secuencia........................... 5 1.4.1. Consulta de Habitación Disponible................. 5 1.4.2. Reserva de Habitación Disponible.................. 7 1.4.3. Cancelar Reserva........................... 8 1.4.4. Llamada Telefónica.......................... 9 1.4.5. Llegada de un cliente con reserva.................. 10 1.4.6. Calcula Factura............................ 10 1.4.7. Salida del Cliente........................... 11 2
1. Diseño de la Aplicación 1.1. Diagrama de clases UML 1.2. Descripción de clases 1.2.1. Clase Hotel Esta clase nos sirve para conocer el número de habitaciones que hay en el hotel. Nos permitirá conocer qué habitaciones y de qué tipo y categoría están libres, y cuáles reservadas. 1.2.2. Clase Habitación En esta clase tenemos información del tipo de habitación, es decir, si es individual o doble, y además podremos conocer la categoría de la misma (Business, Alta o Normal). Además de esto cada habitación tendrá un número que la distinguirá del resto. 3
1.2.3. Clase Reserva Mediante esta clase guardaremos algunos datos que se obtienen en el momento de hacer la reserva y que más adelante (por ejemplo al facturar) nos pueden ser útiles. Guardaremos el identificador de la reserva, la fecha de la misma y si el cliente desea o no cama supletoria (para luego sumar el correspondiente importe). 1.2.4. Clase Factura La clase factura va a generar toda la información importante relativa a la estancia del cliente en el hotel. Aquí tendremos datos como la fecha de llegada y de salida, el coste total de la estancia (incluyendo minibar y llamadas), el identificador de la factura asociada a un determinado cliente, etc. Además guardaremos información de si un determinado cliente ha cancelado una reserva, para lo cuál habrá que realizarle o no una factura con el determinado importe de cancelación. 1.2.5. Clase Cliente Aquí guardaremos la información útil del cliente, como su nombre, apellidos, DNI, el número de la tarjeta de crédito y un teléfono de contacto. Siempre es bueno dedicar una clase para guardar información relativa al cliente. 1.2.6. Clase Llamada En esta clase guardaremos información que nos será útil para calcular el gasto que ha tenido un cliente en cuanto a llamadas telefónicas. Para ellos guardamos datos como la duración de la llamada y la tarifa por minuto, dependiendo de si es una llamada nacional o internacional. 1.2.7. Clase Minibar La clase Minibar tendrá información referente al gasto que realiza un determinado cliente en consumiciones. Habrá que tener en cuenta la categoría de la habitación para determinar la calidad y el precio de las bebidas. 1.2.8. Bebida Aquí guardamos información del tipo de bebida que el cliente ha tomado, la cantidad de cada una de ellas y su precio. 4
1.2.9. Clase ListadoLibre Mediante esta clase guardamos información de la cantidad de habitaciones libres que hay en el hotel (para una fecha determinada) de cada uno de los tipos y categorías. Así tendremos un listado de las habitaciones libres que hay de cada tipo, que nos será útil en el momento de realizar una reserva. 1.3. Diagrama de Dependencia 1.4. Diagramas de Secuencia 1.4.1. Consulta de Habitación Disponible 5
El caso de uso Consulta de habitaciones libres funciona del siguiente modo: Desde la pantalla de la recepción o en la web se piden las fechas de entrada y duración de la estancia, así como el tipo de habitación que desea. Desde la clase controladora obtenemos el número de habitaciones libres, consultando el listado de habitaciones libres para esa fecha y con la habitación del tipo y clase deseado. Debido a que los listados están realizados por días el número obtenido será el menor de los listados. En caso de que se quiera una habitación individual y no se disponga de ella, y sí existan habitaciones dobles de la misma categoría, se mostrará la cantidad de habitaciones dobles disponibles. 6
1.4.2. Reserva de Habitación Disponible En primer lugar la clase :Pantalla Reserva representa la interfaz gráfica que el recepcionista tendría al entrar en el menú de reservas, la clase :Reserva Control controla el proceso de reservas. El caso de uso comienza mostrando un menú gráfico al actor recepcionista, el actor introduciría los datos de la reserva, estos datos son: fecha de entrada, duración de estancia, tipo y clase de habitación que solicita, si necesita cama supletoria y los datos del cliente tales como nombre, apellidos, DNI, teléfono de contacto y número de tarjeta de crédito, para hacer efectivo el pago en caso de cancelación y no lo haga con suficiente tiempo. La clase Reserva Control accede a los listados de habitaciones libres del tipo de habitación que ha solicitado el cliente en las fechas deseadas, si hay habitaciones libres en esa fecha, continúa el proceso de reserva. Se crea una instancia de la clase Reserva y se almacenan los datos de la reserva tales como la fecha de la reserva y si necesita o no cama supletoria. 7
Luego se comprueba en el sistema si el cliente está registrado en el hotel, si está registrado se actualiza la referencia de la clase reserva con la referencia del cliente, en caso contrario se crearía una instancia de la clase cliente con los datos del cliente anteriormente descritos. Por último se actualiza en el objeto Hotel la referencia del nuevo objeto reserva creado. 1.4.3. Cancelar Reserva El caso de uso se comporta de manera similar a las anteriores, desde la pantalla de la recepción o mediante la web se solicitará el identificador numérico de la reserva. Una vez que se introduce el identificador de la reserva, la clase controladora obtendrá la referencia a la reserva cuyo identificador es igual al introducido. Una vez que se obtiene la fecha de entrada de la reserva, luego se calculará el coste teniendo la fecha de entrada y la fecha actual, si la diferencia de fechas es mayor o igual a 5 días no se cobrará nada en la tarjeta, en caso contrario se cobrará en la tarjeta de crédito del cliente el importe. 8
Por último se destruye el objeto de la reserva que se ha cancelado, se aumenta en uno el número de habitaciones libres del mismo tipo y categoría en las fechas seleccionadas y por último se elimina en el objeto Hotel la referencia al objeto destruido. 1.4.4. Llamada Telefónica Cuando se realiza este caso de uso se almacena la información de la llamada y su coste asociado siguiendo los siguientes pasos: Primero la clase de control se encarga de crear una instancia de la clase Llamada con los datos de la llamada que ha realizado el cliente, los cuales son la referencia a la habitación desde la que se realiza la llamada, la duración, el tipo y la tarifa. Una vez actualizado estos datos se calcula el coste de la llamada. Por último debemos añadir la referencia de la llamada a la habitación para enlazarla. 9
1.4.5. Llegada de un cliente con reserva Se introduce el número de la habitación en la que se va a alojar el cliente, y la clase de control Llegada se encarga de buscar la habitación, actualizando su estado a ocupada y reiniciando el contador de llamadas. 1.4.6. Calcula Factura El caso de uso calcular factura de realiza de la siguiente forma: 10
La clase de control de factura es la encargada de crear la instancia de factura. Lo primero que se hace al crearse es buscar la referencia de la habitación que ha ocupado el cliente a través de su número y actualizarla. A continuación se calcula el coste de la factura a partir de las llamadas que se hayan producido desde la habitación y del consumo del minibar mediante la función Obtener- Coste(). Por último se imprime la factura y se presenta. 1.4.7. Salida del Cliente El caso de uso se produce con la salida del cliente del hotel. Lo primero que ocurre es el caso de uso relatado anteriormente, donde se crea y calcula la factura que devuelve un impreso. A continuación una vez presentada la factura, a partir de la clase de control de esta 11
buscamos la referencia de la habitación y accedemos a ella. Desde la habitación accedemos a su correspodiente minibar buscando su referencia por su identificador que se proporcionada con los datos, reponiendo las bebidas que hayan sido consumidas. Por último aumentamos como libre una habitación y eliminamos las referencias a las llamadas producidas desde la habitación 12