11.05.2013 Views

Guia Trabajos Practicos - Departamento de Computación ...

Guia Trabajos Practicos - Departamento de Computación ...

Guia Trabajos Practicos - Departamento de Computación ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Programación Orientada a Objetos Facultad <strong>de</strong> Ciencias Exactas - UBA<br />

Pare, Atención, Mo<strong>de</strong>le<br />

Lea con atención la resolución <strong>de</strong>l siguiente ejercicio. El objetivo es que empiece a familiarizarse con la<br />

resolución <strong>de</strong> los problemas que se presentarán, utilizando la notación <strong>de</strong> la cátedra.<br />

Enunciado<br />

1. Mo<strong>de</strong>le un semáforo.<br />

2. Mo<strong>de</strong>le un semáforo para peatones.<br />

Resolución <strong>de</strong>l punto 1<br />

I<strong>de</strong>ntificar los objetos<br />

En esta primera iteración, intentamos i<strong>de</strong>ntificar los objetos que vamos a<br />

necesitar. Sin entrar <strong>de</strong>masiado en <strong>de</strong>talle, parece obvio que vamos a<br />

necesitar al semáforo y a las lámparas <strong>de</strong> colores.<br />

Notar que se puso unaLamparaVer<strong>de</strong> y no unaLuzVer<strong>de</strong>, ya que el<br />

semáforo interactúa con las lámparas y no con la luz que éstas emiten.<br />

Primer diagrama <strong>de</strong> secuencia<br />

Intentemos hacer un diagrama <strong>de</strong> secuencia que muestre el funcionamiento normal <strong>de</strong>l semáforo. Para eso<br />

<strong>de</strong>scribimos primero qué queremos mostrar exactamente.<br />

Este diagrama <strong>de</strong> secuencia muestra un ciclo <strong>de</strong> funcionamiento <strong>de</strong> un semáforo, <strong>de</strong>s<strong>de</strong> que está en ver<strong>de</strong> hasta<br />

que vuelve a estarlo.<br />

Empecemos entonces...<br />

unSemaforo unaLamparaVer<strong>de</strong> unaLamparaAmarilla unaLamparaRoja<br />

encen<strong>de</strong>r<br />

Nos encontramos ahora con el primer problema: ¿cómo se apaga la lámpara ver<strong>de</strong>? Es <strong>de</strong>cir, ¿cuándo se apaga?<br />

¿Quién la apaga?<br />

Una opción es que la lámpara se apague sola, pero parece más coherente que<br />

el semáforo la apague, ya que él la pren<strong>de</strong>.<br />

Esto no resuelve el hecho <strong>de</strong> saber cuándo apagarla, por más que el semáforo<br />

pueda saber que la luz ver<strong>de</strong> <strong>de</strong>be estar encendida por 40 segundos por<br />

ejemplo, <strong>de</strong>cidir cuándo pasaron los 40 segundos parece <strong>de</strong>masiado para el<br />

semáforo. Necesitamos un timer:<br />

¿Qué mensaje le enviamos al timer entonces?<br />

Programa <strong>de</strong> la materia guia 2011.doc Página 10

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!