Sunteți pe pagina 1din 2

 

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.  

S-ar putea să vă placă și