Gu´ıa de ejercicios de la unidad “Modelado de Sistemas...

5
66.48 Seminario de Electr ´ onica: Sistemas Embebidos Gu´ ıa de ejercicios de la unidad “Modelado de Sistemas Embebi- dos” 1 er cuatrimestre de 2010 1. Dar dos ejemplos de lenguajes de modelado, uno que sea gr´ afico y uno que no lo sea. 2. Explicar por qu´ e modelar puede servir para evitar malentendidos entre colegas. 3. ¿Verdadero o falso? V F El UML es un lenguaje de modelado gr ´ afico, compuesto por varios tipos de diagra- mas. Los diagramas de casos de uso de UML generalmente se dibujan en etapas tard´ ıas del dise ˜ no. El IBM Rational Rhapsody (antes Telelogic Rhapsody) es una herramienta de desa- rrollo basado en modelos. En el IBM Rational Rhapsody, los planes de aceptaci´ on suelen incluir modelos. 4. Los diagramas del UML pueden clasificarse en dos grupos: diagramas de estructura y diagramas de comportamiento. Explicar qu´ e caracteriza a cada grupo. 5. ¿Qu´ e tipo de diagrama es el del dibujo siguiente? Explicar la situaci´ on que est´ a descri- biendo. 1

Transcript of Gu´ıa de ejercicios de la unidad “Modelado de Sistemas...

66.48 Seminario de Electronica: Sistemas Embebidos

Guıa de ejercicios de la unidad “Modelado de Sistemas Embebi-dos”1er cuatrimestre de 2010

1. Dar dos ejemplos de lenguajes de modelado, uno que sea grafico y uno que no lo sea.

2. Explicar por que modelar puede servir para evitar malentendidos entre colegas.

3. ¿Verdadero o falso?

V F

© © El UML es un lenguaje de modelado grafico, compuesto por varios tipos de diagra-mas.

© © Los diagramas de casos de uso de UML generalmente se dibujan en etapas tardıasdel diseno.

© © El IBM Rational Rhapsody (antes Telelogic Rhapsody) es una herramienta de desa-rrollo basado en modelos.

© © En el IBM Rational Rhapsody, los planes de aceptacion suelen incluir modelos.

4. Los diagramas del UML pueden clasificarse en dos grupos: diagramas de estructura ydiagramas de comportamiento. Explicar que caracteriza a cada grupo.

5. ¿Que tipo de diagrama es el del dibujo siguiente? Explicar la situacion que esta descri-biendo.

1

6. Diagramas de secuencia. Dibujar el diagrama de secuencia de la transmision de unbyte desde un componente X hasta un componente Y, con handshaking de cuatro fases(ver Diapositiva 15 de la presentacion “Modelado de Sistemas Embebidos”).

7. Dibujar un diagrama de secuencia similar al anterior, pero para dos transacciones (unaseguida de la otra), esta vez con handshaking de dos fases.

8. Redes de Petri. Para este ejercicio y algunos de los siguientes, usamos el simulador deredes de Petri de:

http://robotics.ee.uwa.edu.au/pns/java/

Para empezar, familiarıcense con el simulador. Para eso dibujen una red de Petri sencilla,siguiendo los pasos de la siguiente figura:

El primero es incluir dos lugares, o posiciones, y dos transiciones, como se ve en la pri-mera figura, usando los modos de edicion correspondientes al segundo y tercer ıcono delsimulador (contandolos desde el borde izquierdo). El segundo paso es conectarlos me-diante arcos, seleccionando para eso el cuarto ıcono. Para el tercer paso hay que agregaruna ficha, o token, con el quinto ıcono, y nombrar las posiciones, con el sexto.

Ahora podemos simular la red. Primero seleccionemos Settings > Sequential > Manual,lo que nos va a permitir disparar las transiciones a mano. Despues, cliqueemos sobre elpenultimo ıcono del simulador, es decir, la flecha verde azulada. La red va a empezar acorrer, mostrando en amarillo las transiciones que estan habilitadas, o sea, que estanen condiciones de ser disparadas dado que todos sus posiciones de entrada tienen fichas.Cliqueando sobre las transiciones habilitadas, las disparamos. Prueben hacerlo, y cortarla simulacion (cliqueando nuevamente sobre el penultimo ıcono) para agregar posicionesy transiciones.

Por ejemplo, pueden agregar una transicion sin ninguna posicion de entrada, con ciertolugar de salida, por ejemplo a. Esa transicion siempre estara habilitada, al dispararla secrearan nuevos tokens en a.

En el modo para agregar transiciones (tercer ıcono del simulador) se puede cambiarla orientacion de las que ya fueron agregadas, cliqueando sobre estas. Si cliquean porcuarta vez, van a notar que la barra se convierte en un cuadrado. Esa es otra formacomun de dibujar las transiciones (en realidad, se usan rectangulos), mientras que lasposiciones a veces se dibujan como ovalos. Eso es practico para tener lugar dentro de lossımbolos para escribir sus nombres o funciones (pero en este simulador no se puede).

Antes de seguir con el ejercicios de modelado, repasemos algunos conceptos. En las re-des de Petri, las transiciones generalmente representan algun tipo de procesamiento,que requiere pre-condiciones (o sea, fichas en los lugares de entrada) y produce post-condiciones (o sea, fichas en los lugares de salida). Los lugares, por lo tanto, pueden ser

2

flags, buffers de entrada conteniendo datos a ser procesados, o conjuntos de datos yaprocesados (o sea, de salida), entre otras interpretaciones que tienen.El disparo de las transiciones puede estar sujeto a condiciones externas al modelo. Porejemplo, el diagrama de la figura de arriba puede ser la representacion de un circuito queenciende y apaga una lampara, donde la ficha en a indica que la lampara esta encendida,y en ¬a que esta apagada. Siendo ası, las transiciones representan el “procesamiento” deencender y apagar la lampara. El encendido se dispara solo si la lampara esta apagada,pero tambien esta sujeto a una condicion externa, tal como la presion de un pulsador porparte del usuario. Esas condiciones externas las estamos simulando cuando hacemosclick sobre las transiciones amarillas.Una forma de implementar entradas es hacer que sean condiciones externas que dis-paran transiciones, como hicimos en el ejemplo anterior. Pero hay otra, que es agregarfichas directamente en ciertas posiciones. En realidad, es lo mismo que poner una tran-sicion sin entradas que tenga a esa posicion como salida, pero en este simulador haceuna diferencia, ya que la segunda forma nos permite dejar que la red corra sola (conSettings > Sequential > Random) mientras que nosotros solo interactuamos ingresandoentradas (o sea, agregando tokens, quinto ıcono, boton derecho para quitarlos) durantelas interrupciones que ocurren cuando la red queda muerta, es decir, sin transiciones ha-bilitadas (hasta que agreguemos fichas). De esa forma evitamos establecer un orden dedisparo, cosa que puede ser desable si consideramos que ese orden podrıa ser cualquieraen la aplicacion real.Las redes de Petri son un modelo de computacion utilizado en lenguajes de modelado deuso en embebidos, aunque no son ni el mas comun ni el de mas inmediata aplicacion.Son utiles para modelar procesamiento distribuıdo (sistemas asincronicos, de tiemporeal, algoritmos para multicores, patrones de concurrencia, etc.) Mas alla de que seautil que se familiaricen con esta herramienta, la razon para darles este espacio entrelos ejercicios es que la existencia de un simulador gratuito, de facil uso, nos permitever como el modelado permite explorar detalles de los requerimientos que en lenguajecoloquial pueden pasar desapercibidos, como ası tambien documentarlos, ponernos deacuerdo con colegas y, en algunos casos, solucionar errores temprano.Cuidado que las redes de Petri no son diagramas de estado, aunque podemos represen-tarlos mediante ellas, si respetamos algunas reglas. Ahora sı, pasemos a los ejercicios demodelado.

9. Handshaking de cuatro fases. Modelar, mediante una red de Petri, la emision de da-tos paralelos con un handshaking de cuatro fases. Que la red tenga un lugar llamadodata que va a tener un token cuando haya un dato estable en la lınea de salida siendotransmitido, y dos lugares, req y ack, que van a tener tokens solo cuando la lınea co-rrespondiente tenga un uno logico. Ademas, que haya un lugar que represente la cola dedatos esperando a ser enviados (un token para cada dato en espera) y otro que, cuandocontenga un token, indique que el circuito esta listo para transmitir. Este ultimo depen-dera unicamente de lo que este ocurriendo en la red, pero el anterior representa unaentrada del sistema, como ası tambien ack, que es una entrada que viene del circuitoreceptor. Por lo tanto, el movimiento de tokens en esos dos lugares estara gobernadopor transiciones accionadas manualmente, para que nosotros podamos tomar el lugar deesos otros circuitos durante la simulacion.Se pueden representar arcos negativos en el simulador, pero esta vez vamos a prescindirde esa funcion, lo que nos obliga a crear posiciones ¬req (o sea req negado) y ¬ack. Sonentonces solo siete los lugares que hacen falta para resolver el problema.

3

10. ¿Cuantos estados diferentes existen para la red de Petri del punto anterior? Justificar.

11. Ampliar el modelo del punto 9, agregandole el comportamiento del circuito receptor. Esdecir que no se pueda mover el token entre ack y ¬ack arbitrariamente, sino que hayaque respetar el protocolo, y que exista un lugar representando la cola de salida, con untoken por cada dato recibido.

12. Garage. Modelar, en el simulador de redes de Petri, un garage, en donde N valets atien-den a los clientes. Los clientes hacen dos colas: una para dejar su auto, otra para pasara buscarlo. Los valets atienden indistintamente las dos colas, estacionando los autos enel garage.

Usen, en total, siete posiciones. Una va a ser el estacionamiento, donde M tokens repre-senten M autos estacionados. Otras dos, “valet(s) estacionando autos” y “valet(s) retiran-do autos”, que tengan un token por cada auto que se este estacionando o retirando. Otrasera la cola de gente que, habiendole dado su ticket a un valet, esta esperando que estellegue con el auto. Piensen ustedes que van a representar las tres posiciones restantes.

13. Maquina expendedora. Modelar, en el simulador de redes de Petri, el comportamientode una maquina expendedora de cafe y chocolate caliente. La maquina tiene tres pulsa-dores: “cafe”, “chocolate” y “cancelar”. Recibe solo monedas de $ 1, que es lo que vale labebida. El vaso debe ser colocado por el usuario, a mano, pero la maquina tiene un sensorpara detectar si esta en la posicion correcta. Al cancelar, se devuelve todo el credito. Paraeso, esta vez sı vamos a usar la negacion de arcos (o sea, definir que una transicion sehabilite cuando una posicion de entrada no tenga tokens). Los negamos usando el modode edicion (sexto ıcono), cliqueando sobre el arco y seleccionando Negated.

14. En la maquina expendedora del punto anterior, ¿el usuario puede poner la monedadespues de haber seleccionado la bebida? ¿Puede hacerlo antes tambien? ¿O cancelaren cualquier momento (mientras no se haya empezado a servir la bebida)? ¿Revisa lamaquina que el vaso se haya retirado, antes de servir la siguiente bebida? ¿Se reseteala seleccion de la bebida despues de servir, para evitar que la maquina empiece a serviral estar listos solo el vaso y el credito, antes de que el usuario pueda elegir una nuevaopcion? Si la respuesta a cualquiera de estas preguntas es no, modifıquen el diagrama.Estos son ejemplos de detalles que coloquialmente suelen quedar indeterminados, perono en un modelo.

15. Handshaking de dos fases. Repetir los ejercicios de los puntos 9 y 11, pero para hands-haking de dos fases.

16. ¿Que dos reglas tiene que cumplir el diseno de una red de Petri, para que esta sea lomismo que un diagrama de estados?

17. ¿Que diagrama del UML se parece mucho a una red de Petri?

18. Dado el siguiente StateChart:

4

a) Luego de ser reseteada, ¿en que estados queda la maquina? Se pregunta sobre losestados, ası en plural, porque si un estado inicial esta englobado dentro de un estadomas grande, corresponde indicar los dos como estados iniciales.

b) ¿Que accion (m, n u o) se ejecuta inmediatamente luego de ser reseteada, antes derecibir cualquier estımulo?

c) ¿Que serie de acciones ejecuta si, luego de ser reseteada, recibe la siguiente secuen-cia de estımulos: b, c, c, d, b? (Responder con una serie de letras.)

d) Despues de la secuencia del punto anterior, ¿en que estados termina la maquina?(No se olviden de ninguno.)

19. Modificar el StateChart anterior, de la forma mas simple y clara, para lograr lo siguiente:

a) Si la maquina esta en el estado C y recibe el estımulo d, debe pasar al estado E (queesta dentro de B).

b) Al entrar en el estado B, se debe ejecutar la accion o.

20. Las siguientes afirmaciones corresponden al StateChart de la Diapositiva 5 de la pre-sentacion “Sistemas de Tiempo Real”. Indicar verdadero o falso:

V F

© © Para acumular el valor de las monedas ingresadas se usa la variable amt.© © Si, estando la maquina en el estado WaitingForSelection, el usuario elije una selec-

cion invalida,la variable amt se inicializa en cero.© © Si el credito que el usuario ingresa sobra para comprar una bebida (ej., ingresa $ 3

cuando la bebida vale $ 2,50), entonces el vuelto queda guardado hasta que el usua-rio compra otra bebida o acciona el returnChange. (Return change es la traduccionde devolver el cambio.)

© © En el rotulo que empieza con returnChange (que esta en la parte de arriba deldiagrama) falta una barra.

21. ¿En que lugar del diagrama colocarıan la accion EntregarBebida()?

5