Caso 1.
Sistema de gestión de agendas y reuniones
Enunciado
La práctica consiste en analizar y diseñar con UML para gestionar agendas personales,
gestionar grupos de usuarios y organizar reuniones entre personas adscritas al sistema. Los
usuarios del sistema se pueden asociar a grupos de trabajo que se definieran en el sistema,
pero esto lo hace el administrador de grupos. Cualquier usuario se puede convertir en
administrador de grupos, y este puede crear un grupo y se encarga de su gestión (alta y baja
de usuarios en el grupo y eliminación del grupo). Un usuario puede pertenecer a varios grupos.
Cada usuario tiene acceso a una agenda personal. La agenda consta de un calendario, un
directorio de contactos, una lista de tareas y una lista de notas. El calendario permite ver por
días, semanas, meses o años las entradas que se hubieran creado en el mismo. Estas
entradas pueden ser creadas por el usuario o por el administrador de reuniones. Cada entrada
tiene un título, una fecha (día y hora) y comentarios. Las entradas pueden ser públicas
(cualquier otro usuario puede verlas), de grupo (sólo visibles por los usuarios de uno o más
grupos al que pertenece el usuario) o privadas (sólo el usuario). El calendario también ofrece
la posibilidad de sacar una lista de todas las entradas, con varias opciones, por ejemplo, entre
dos fechas, a partir de una fecha, las relacionadas con un grupo, etc. El directorio de contactos
es una lista de personas con sus datos de contacto (nombre, alias, dirección, teléfonos, email,
etc.) y notas adicionales. Se podrá crear, consultar, buscar, modificar o borrar elementos de
este directorio. En la lista de tareas, cada una consta de una fecha de terminación (o sin fecha
de terminación), un título, un texto descriptivo, una prioridad, y una categoría (para clasificarlas
en grupos de tareas). También tienen un indicador de hasta qué punto se ha cumplido
(porcentaje, cuando llega a 100 es que se ha completado). Se podrá crear, consultar (de varias
maneras, por nombre, grupo de tareas, estado y fecha de terminación), modificar o borrar
elementos de esta lista. La fecha de terminación se verá reflejada en el calendario. En la lista
de notas, cada nota consta de un título y un texto. Pueden estar asociadas a una categoría.
Se podrá crear, consultar, buscar, modificar o borrar notas. En la agenda se podrán crear,
modificar o borrar nombres de categorías. En los campos de texto se pueden poner enlaces a
otras entradas de la agenda (por ejemplo, en una nota, un enlace a un contacto, o en una
entrada del calendario un enlace a una tarea). El sistema de gestión de reuniones es un
sistema auxiliar y externo al sistema, que permite a los usuarios de un grupo concertar
reuniones buscando el momento más propicio. Cada reunión tendrá un título y una descripción
de los objetivos y la agenda de la reunión, así como un lugar, fecha y duración. Para decidir la
fecha el usuario que propone la reunión indicará un rango de fechas y el sistema proporcionará
una lista de las más convenientes para todos según sus agendas. El promotor de la reunión
podrá elegir una fecha entre éstas o pedir al sistema que permita votar (en un tiempo límite) a
los invitados a la reunión por una fecha, en cuyo caso se elegirá la fecha más votada. Cada
invitado recibirá la solicitud de voto cuando se conecte al sistema. La fecha de la reunión final
se apuntará en la agenda de todos los usuarios invitados a la reunión.
Caso 2. Librería en Internet
Enunciado
Se trata de construir el modelo UML de análisis de una solución de software para una compañía
que vende libros a través de Internet. Los clientes acceden a la información sobre los libros a
través de la Web y realizan búsquedas por autor, título o ISBN. A medida que navegan por las
distintas páginas encuentran algún libro que les interesa y lo incluyen en el carrito de la compra
para efectuar al final el pedido correspondiente. Para realizar un pedido, un cliente debe estar
previamente registrado como tal. Esto significa introducir una serie de datos personales
(nombre y apellidos, dirección, localidad, código postal, país,), datos de la tarjeta de crédito
(tipo de tarjeta, número, fecha límite de validez) y sobre preferencias de envío (correo normal,
expreso, internacional o courier). Asociado a un pedido específico pueden introducirse
opciones de empaquetado (estándar o regalo), tarjeta con mensaje adicional cuando es un
regalo, o un nombre y dirección de otra persona a la que se le hace enviar un pedido. Como
es habitual en este tipo de aplicaciones, deberá elegir un nombre de usuario y una clave como
método de autentificación para efectuar las transacciones habituales con la librería. Cuando
se han incluido en el carrito de la compra el conjunto de los libros deseados (cantidad, título y
autor), se debe pasar al proceso de confirmar el pedido que deberá requerir un paso previo de
seguridad para garantizar que el cliente es quien dice ser. Una vez introducidos todos los datos
adicionales, el cliente confirma el pedido que pasa a un estado de espera -90 minutos- durante
el cual es posible modificar algunos de los ítems del pedido (eliminar o cambiar cantidad) pero
no añadir nuevos ítems, para lo cual se deberá crear un nuevo pedido. También se pretende
incorporar el mecanismo de “1-click”, es decir que una vez que se ha detectado el libro que se
quiere comprar se pueda efectuar el pedido con solo pulsar un botón con la etiqueta de “1-
click”. Este mecanismo puede ser habilitado/deshabilitado por el usuario –que deberá ser un
cliente registrado- y cuando se utiliza es posible acumular todos los ítems deseados que luego
se agruparán en un único pedido para optimizar los gastos de empaquetamiento y envío. El
criterio es agrupar todos los ítems a partir de un primer pedido realizado en modalidad de “1-
click” que caigan dentro de un plazo de 90 minutos. Cualquier cambio en los datos del cliente
implica requiere también un paso previo de seguridad para confirmar que el cliente es el
correcto. Por parte de la librería, se deberán recoger los pedidos de acuerdo a las modalidades
que hemos descrito anteriormente, y rearmar en uno único los pedidos aislados que estén
dentro del plazo de 90 minutos, ya se hayan hecho con la modalidad del carrito o con “1-click”.
Este período es el que se permite además para realizar las modificaciones, por lo que a partir
del momento en que se rearman los pedidos para optimizar gastos de empaquetado y envío,
quedan confirmados definitivamente y no se pueden modificar ni anular. La empresa puede
realizar envíos parciales en función de la disponibilidad de los ítems, pero sin modificar el costo
total de envío debido a este fraccionamiento del pedido. A medida que se van rearmando los
pedidos se envía un e-mail al cliente para confirmarle el pedido, lo mismo que al realizar el
envío correspondiente. Si considera que en estos requisitos faltan datos, realice las
suposiciones necesarias –de una forma lógica y simple- y añádalas junto al diagrama
correspondiente.
Caso 3. Reserva de vuelos.
Enunciado
El sistema de reserva de vuelos es un sistema que permite al usuario hacer consultas y
reservas de vuelos, además de poder comprar los billetes aéreos de forma remota, sin la
necesidad de recurrir a un agente de viajes humano. Se desea que el sistema de reservas sea
accesible a través de la World Wide Web. El sistema actualmente tiene un Terminal de Servicio
de Reserva en donde se presenta un mensaje de bienvenida describiendo los servicios
ofrecidos junto con la opción para registrarse por primera vez, o si ya se está registrado, poder
utilizar el sistema de reserva de vuelos. Este acceso se da por medio de la inserción de un
login previamente especificado (dirección de correo electrónico del usuario) y una contraseña
previa mente escogida y que debe validarse. Una vez registrado el usuario, y después de
haberse validado el registro y contraseña del usuario, se pueden seleccionar las siguientes
actividades:
Consulta de vuelos.
Reserva de vuelos.
Compra de billetes.
La consulta de vuelos se puede hacer de tres maneras diferentes:
Horarios de Vuelos.
Tarifas de Vuelos.
Información de Vuelo
La consulta según horario muestra los horarios de las diferentes aerolíneas que dan servicio
entre dos ciudades. La consulta según tarifas muestra los diferentes vuelos entre dos ciudades
ordenados por su costo. La información de vuelos se utiliza principalmente para consultar el
estado de algún vuelo, incluyendo información de si existen asientos disponibles y, en el caso
de un vuelo para el mismo día, si éste está en hora. Se pueden incluir preferencias en las
búsquedas, como fecha y horario deseado, categoría de asiento, aerolínea deseada y si se
desean sólo vuelos directos. La reserva de vuelo permite al cliente hacer una reserva para un
vuelo particular, especificando la fecha y horario, bajo una tarifa establecida. Es posible
reservar un itinerario compuesto de múltiples vuelos, para uno o más pasajeros, además de
poder reservar asientos.
La compra permite al cliente, dada una reserva de vuelo previa y una tarjeta de crédito válida,
adquirir los billetes aéreos. Los billetes serán posteriormente enviados al cliente, o estarán
listos para ser recogidos en el mostrador del aeropuerto antes de la salida del primer vuelo. Es
necesario estar previamente registrado con un número de tarjeta de crédito válida para poder
hacer compras de billetes, o bien proveerla en el momento de la compra. Además de los
servicios de vuelo, el usuario podrá en cualquier momento leer, modificar o cancelar su propio
registro, todo esto después de haber sido el usuario validado en el sistema.
Caso 4. Parque de Atracciones.
Enunciado
La empresa DIVERTIMENTO, S. A., tiene varios parques de atracciones repartidos por la
geografía colombiana. Lo que más preocupa a esta empresa es la seguridad en algunas de
las atracciones, ya que un error mecánico podría producir daños materiales y humanos que
plantearían serios problemas para la empresa. Hoy por hoy sólo es posible detectar fallos en
las atracciones, cuando los operarios encargados realizan actividades de mantenimiento.
La empresa quiere informatizar sus parques de atracciones y para ello ya ha decidido poner
en marcha un proyecto piloto cuyo objetivo será el de dotar a uno de sus parques de
atracciones de un sistema de detección automática de fallos en las atracciones.
En un primer momento se va a preparar el sistema para gestionar la noria (rueda de chicago)
y la montaña rusa. La noria tiene una serie de vehículos dotados cada uno de ellos de un
detector gracias al cual se sabe en cada momento si el vehículo está suficientemente bien
anclado a la estructura metálica de la noria. Si en un momento determinado se detectara
pérdida de anclaje, el correspondiente vehículo se lo comunicaría a la Central Receptora de
Averías (CRA) y también a la atracción de la que forma parte dicho vehículo, así en la próxima
parada de dicha a tracción se tendrá constancia de que uno de sus vehículos ha solicitado
revisión. Por su parte, en la montaña rusa cada vagón está dotado de igual modo de un
detector de anclaje con el vagón que lleva detrás (en el caso de llevarlo). Cada vagón detecta
si existe suficiente anclaje con el vagón posterior y en caso de falta de anclaje avisa a la CRA
y a la atracción, en este caso la montaña rusa.
Cuando la CRA recibe un aviso, en el que se le indica el vehículo o vagón con posible avería
y la atracción de que se trata, busca inmediatamente un operario de mantenimiento disponible.
En caso de no haber ninguno libre, informa al componente en cuestión de que su petición no
puede ser atendida, así dicho componente emitirá una señal de solicitud de revisión hasta que
su petición le sea satisfecha.
Como cada operario de mantenimiento cobra un extra en función del número de averías que
atiende al mes, cada uno tiene asignado mensualmente un dispositivo gracias al cual recibe
las posibles averías a atender, independientemente de en qué zona del parque se encuentre.
Cuando la CRA demanda la revisión de una posible avería y encuentra un operario de
mantenimiento libre le manda un mensaje indicándole la calle del parque en la que se
encuentra la atracción y el número de vehículo o vagón con posible avería. Automáticamente,
el dispositivo del operario pasa a indicar que ese operario se encuentra ocupado atendiendo
una posible avería. Cuando el operario ha terminado de supervisarla, indica a su dispositivo
que ha quedado libre para la siguiente petición de avería que reciba. A su vez dicho dispositivo
informa a la CRA y al componente revisado. Dicho componente avisará a su atracción de que
la operación de mantenimiento solicitada ha terminado para que ésta lo tenga en cuenta a la
hora de poner la atracción en marcha de nuevo.
Además, el sistema tendrá que ser capaz de contabilizar las personas que entran y salen de
una atracción, con el fin de controlar dos cosas; en primer lugar, que no entren más personas
de las que la atracción es capaz de sostener y, en segundo lugar, que todo el mundo abandone
la atracción una vez finalizado cada viaje.
El controlador de arranque y parada de la atracción puede recibir un mensaje indicando que la
atracción está llena, para que inicie las labores de puesta en marcha de la atracción; dicho
mensaje puede provenir del torniquete de entrada que detecta cuando se produce la ocupación
máxima de la atracción, o bien del propio operario que vigila la atracción siempre que aún no
estando llena no ha y más personas esperando para subir y él considera que es tiempo
suficiente como para que se ponga en marcha. Una vez que el dispositivo de parada y arranque
de la atracción detecta que la atracción está detenida, le envía al torniquete de salida un
mensaje para que se prepare para que la gente pase por él. El torniquete de salida sabe el
número de personas que hay en la atracción gracias al torniquete de entrada, así sabe el
número de personas que se tienen que bajar de la atracción.
Cuando el torniquete de salida determina que el número de personas que han abandonado la
atracción es igual al número de ellas que entró, envía al torniquete de entrada un mensaje para
que ponga a cero el contador de personas en la atracción y además se libere y muestre un
indicador verde para que la gente pueda tomar asiento en la atracción. Si pasados cinco
minutos desde que la atracción se paró el torniquete de salida no ha liberado al torniquete de
entrada, es indicativo de que alguien se ha quedado dentro y es necesario entrar a buscarlo.
Cuando el torniquete de entrada recibe, del torniquete de salida, el mensaje de liberarse,
primero consulta a la atracción si tiene alguna avería pendiente. Esto se reflejará en la
atracción cuando uno o varios de los vehículos o vagones soliciten reparación. La atracción
lleva un contador de averías pendientes de manera que sólo en el caso en que este contador
esté a 0 el torniquete de entrada se pondrá verde para que entren los usuarios. En caso
contrario permanecerá en amarillo, indicativo de estar esperando reparación.