Documente Academic
Documente Profesional
Documente Cultură
Taller
‐ Diagrama de clases que incorporen la herencia al simulador del elevador
Una empresa pretende construir un edificio de oficinas de 02 pisos y equiparlo con un elevador. La
empresa desea que desarrolle un simulador de software orientado a objetos en Java, que modele
la operación del elevador para determinar si dicho elevador satisface las necesidades de la empresa.
Su simulador debe incluir un reloj que comience, en segundos, en cero. El reloj hace tic (incrementa
el tiempo en uno) cada segundo, pero no sigue el rastro de las horas y de los minutos. Además, su
simulador debe incluir una bitácora que comience el día programado dos tiempos al azar: el
momento en que la primera persona entra al piso 1 y presiona el botón de dicho piso para llamar al
elevado, y el momento en que una persona entra al piso 2 y oprime el botón de dicho piso para
llamar al elevador. Cada uno de estos momentos representa un entero al azar en un rango de 5 a
20 segundos, inclusivos (es decir, 5, 6,7,…, 20). Cuando el tiempo del reloj = al primero de estos dos
tipos, la bitácora crea una persona, quien entonces entra al piso apropiado y presiona el botón del
piso. [Nota: es posible que estos dos tiempos al azar programados pudieran ser idénticos, en cuyo
caso la gente entra en ambos pisos y presionan los botones de piso al mismo tiempo.] El botón de
piso se ilumina, lo que indica que está presionado [Nota: la iluminación del botón de piso ocurre de
manera automática cuando el botón se presiona y no necesita programación; la luz integrada en el
botón se apaga automáticamente cuando el botón se restablece.] Al principio de la simulación, el
elevador comienza el día esperado con sus puertas cerradas en el piso 1. Para conservar energía, el
elevador se mueve sólo cuando es necesario. El elevador alterna direcciones entre el movimiento
hacia arriba y el movimiento hacia abajo.
Por simplicidad, el elevador y cada uno de los pisos tienen una capacidad de una persona. La
bitácora verifica primero que el piso esté desocupado, antes de crear a una persona que entre en
ese piso. Si el piso está ocupado, la bitácora retrasa un segundo la creación de la persona (y con ello
permite al elevador la oportunidad de recoger a una persona y moverse al piso). Después de que
una persona entra en el piso, la bitácora crea el siguiente tiempo al azar (entre 5 y 20 segundos
hacia el futuro) para que una persona entre en el piso y presione el botón de piso.
Cuando el elevador llega a un piso, restablece el botón del elevador y suena la campana del elevador
(la cual se encuentra dentro del elevador). Entonces, el elevador le indica su llegada al piso. El piso,
en respuesta, restablece el botón del piso y enciende la luz de llegada del elevador, y una persona,
si existe una que espere en ese piso, entra al elevador. Aunque cada piso tiene capacidad para una
persona, suponga que existe espacio suficiente en cada piso para que una persona espere en ese
piso mientras el pasajero del elevador sale.
Una persona que entra al elevador presiona el botón del elevador, el cual se ilumina (de manera
automática, sin programación) cuando se presiona, y se apaga, cuando el elevador llega al piso y
restablece el botón del elevador Nota: Debido a que el edificio tiene solo dos pisos es necesario un
botón por piso; el botón notifica al elevador que se mueva hacia el otro piso) a continuación el
elevador cierra su puerta y comienza a moverse hacia el otro piso. Cuando el elevador llega a un
piso, si una persona no entra en el elevador y el botón del piso en el otro piso no está presionado,
el elevador cierra su puerta y permanece en ese piso hasta que otra persona presione el botón en
ese piso.
Por simplicidad suponga que todas las actividades que sucedes, desde que el elevador llega a un
piso hasta que el elevador cierra su puerta, toman un tiempo cero Nota: Aunque estas actividades
toman un tiempo cero, ocurren de manera secuencial; por ejemplo, la puerta del elevador se debe
abrir antes de que el pasajero salga del elevador). El elevador toma cinco segundo para moverse de
un piso a otro. Una vez por segundo, el simulador proporciona el tiempo a la bitácora y al elevador.
La bitácora y el elevador emplean el tiempo para determinar qué acciones deben tomar cada uno
en un momento en particular (por ejemplo, la bitácora debe determinar si es tiempo de crear a una
persona, y el elevador, si está en movimiento, debe determinar que es tiempo de llegar a su piso de
destino).
El simulador debe desplegar mensajes en la pantalla que describan las actividades que ocurren en
el sistema. Estas incluyen a una persona que presiona un botón de piso, el elevador llega a un piso,
el reloj hace tic, una persona que entra al elevador, etcétera.