Professional Documents
Culture Documents
Control 5
Juan Alvarez Nelson Baloian
Kurt Schwarze Erich Reimberg Andrs Muoz
1
2
Gua de Estudio: Control 5
CC10A 2003
Tabla de Contenidos
Tabla de Contenidos 2
1. CAJERO AUTOMTICO 3
2. VENDOMTICA 4
3. APUESTAMTICO 5
4. VIDEOJUEGO 6
6. CENTRAL TELEFNICA 11
7. LA BIBLIOTECA 12
8. EL VUELO 14
9. FUTBOL ON-LINE 15
3
Gua de Estudio: Control 5
CC10A 2003
1. Cajero automtico
El banco EstafaBank necesita ayuda para modelar el sistema que har funcionar sus nuevos
cajeros automticos porttiles. stos, del porte de un telfono pblico, le permitirn al usuario
realizar slo las operaciones ms simples: retirar, depositar y consultar saldo (ni soar con
movimientos entre cuentas o compras de tarjetas de prepago telefnico). Para ello ten en
consideracin que:
Se pide ingresar la clave del usuario posteriormente al paso de la tarjeta por la ranura.
No se puede retirar ms fondos de los que realmente hay, notificando de esta situacin al
usuario.
<<u s e s >>
C o n s u lt a r
S a ld o
<<u s e s >>
D e p o s it a r
4
Gua de Estudio: Control 5
CC10A 2003
2. Vendomtica
La empresa Nerdcaf tiene planes para instalar una nueva mquina vendomtica inteligente
en la facultad. Inteligente porque cuando detecte que un cliente intenta comprar un producto
agotado, se conectar automticamente a la central de abastecimiento y dar aviso para
realizar la reposicin. Adems, como buena vendomtica, debe dar vuelto y no dejar que la
hagan lesa pagando menos del precio de lo que est vendiendo.
<<u s e s >>
C lie n te
C o n e x i n
C e n tr a l d e
a b a s te c im ie n to
5
Gua de Estudio: Control 5
CC10A 2003
3. Apuestamtico
Esta es la ltima papita para los apostadores empedernidos: una mquina que les permite
obtener informacin de caballosc / carreras / premios, cargar crdito de dinero desde su
cuenta corriente (accesible va RedBanc), realizar apuestas y hasta imprimir un boleto que es
cambiable por efectivo en la caja del local de apuestas (ya que volver a depositarla es incentivo
para que no la gaste).
O b te n e r <<u s e s >>
r e s u lta d o s C o n s u lt a
c a rre ra s
<<u s e s >>
B D T e le tr a k
<<u s e s >>
P a g a rs e Im p r e s i n
C a rg a r <<u s e s >>
c r d ito T r a n s a c c i n
A p o s ta d o r
e m p e d e r n id o
< < e x te n d s > > C r d ito R edbanc
A p o s ta r
n o a lc a n z a
6
Gua de Estudio: Control 5
CC10A 2003
4. Videojuego
Esto es una invencin de los aos 70, que para ser revividos dentro de un computador hogareo
deben utilizarse los llamados emuladores. Para construir uno se te pide comenzar por disear
los casos de uso del sistema (suponiendo que es una mquina arcade original) en que el jugador
puede escoger un personaje, una misin, jugar la misin y, si logra un buen desempeo, ingresar
su top-score. Tambin se pide incluir los casos en que el jugador conoce del tema y activa las
claves para acceder a los personajes y misiones ocultas del juego.
E scoger
E scoger < < e x te n d s > >
m is i o n e s
m is i n
o c u lta s
<<u s e s >>
J ugar
m is i n
G u a rd a r
T o p -s c o r e
7
Gua de Estudio: Control 5
CC10A 2003
El lenguaje de The Three Amigos (Jacobson, Boosh y Rumbaugh) sirve para apoyar el
V
desarrollo de software. (1 punto)
Los Diagramas de Clases detallan el sentido de la ejecucion del programa, indicando que
F
componentes se ejecutan despues de otra. (1 punto)
8
Gua de Estudio: Control 5
CC10A 2003
Registro
Usuario
Verificar
<<uses>>
Aerolnea
Realizar
Reserva
Cancelar
Reserva
Cliente
- Solo hay 3 actores. Si no reconocen los 3 actores, descontar 0.5 por cada actor
que no vean o 0.5 por actor de ms. Es cruel, pero no reconocern ms de 4
actores.
- Los procesos base representables en casos de uso son: Registro (1 punto y obvio),
Reserva (2 puntos) y Cancelar (2 puntos). El caso de uso Verificar es solo un caso
especial en el caso de realizar reserva. Tambin es posible que Cancelar sea un
<<extends>> de Reserva.
- No es necesario que usen <<uses>> o <<extends>>
Respuesta de la Pregunta 2
9
Gua de Estudio: Control 5
CC10A 2003
3. Diagrama de Interaccin
Identifique los objetos (2 puntos) y dibuje el Diagrama de Secuencia (5 puntos) para el
proceso de reserva de avin del problema anterior, considerando que:
Al igual que en la Preg 2, esta es solo una solucin (aunque es ms facil que la lgica sea obvia de revisar):
cliente := verifica()
ver_aerolinea()
compra()
- Los objetos base son: Reserva (1 punto), Pasaje (1 punto). Cliente y Vuelo son
objetos que pueden ser creados para que cada uno verifique las condiciones.
- Los importante es que en el diagrama aparezcan las verificaciones y condiciones (a)
de 1 punto (b) de 1 punto y (c) de 1 punto.
- Los puntos restantes son por darse cuenta que Pasaje se crea solo cuando todo es
verdadero y ste debe comprar fsicamente la reserva (2 puntos).
- ver_aerolnea() y compra() son autodelegaciones para llamar al software externo.
Respuesta de la Pregunta 3
10
Gua de Estudio: Control 5
CC10A 2003
4. Diagramas de Estado
Elija uno de los objetos dibujados en el problema 3 y dibuje su Diagrama de Estados (7
puntos). Si no hizo la pregunta 3, suponga que tiene la clase Reserva y piense qu estados
posee.
[pasa]
Canelada
[se cancela]
do/devolver
pasaje
Programada Proceso
do/cancelar completar do/comprar
do/realizar pasaje
vuelo
[se realiza]
- Los estados no sean acciones condicionadas, sino que verdaderos estados. Aqu
estn todos los estados de una Reserva (3 puntos).
- Las actividades corresponden a las acciones que puede realizar la reserva en cada
estado y no a condiciones o una secuencia de llamadas a mtodos (2 puntos).
- Las transiciones son acciones condicionadas o no. Solo son condiciones si tienen ms
de una salida. Las otras son transiciones con o sin etiqueta. (2 puntos)
- Recuerden que pueden hacer cualquier objeto (pasaje por ejemplo) que es ms
facil.
Respuesta de la Pregunta 4
11
Gua de Estudio: Control 5
CC10A 2003
6. Central Telefnica
Gentileza del Profesor Kurt Schwarze
Se quiere modelar una llamada a travs de una central telefnica.
Para esto se tienen cuatro objetos involucrados: dos interlocutores (s y r), una central y una
conversacin. La secuencia empieza cuando un interlocutor enva un mensaje a la central al
descolgar al auricular. La central da el tono de llamada, y el interlocutor marca el numero al
que desea llamar. El tiempo de marcado debe ser menor que 30 segundos.
12
Gua de Estudio: Control 5
CC10A 2003
7. La Biblioteca
Gentileza del Profesor Kurt Schwarze
Se quiere modelar el comportamiento de una biblioteca con diagramas de clases. Este
comportamiento se puede modelar de la siguiente forma:
La agregacin es simple de leer, puesto que en el caso de la clase Biblioteca y la clase Lector se
puede decir que biblioteca tiene como integrantes a los lectores, sin embargo ambos pueden
vivir por separado (rombos sin rellenar).
13
Gua de Estudio: Control 5
CC10A 2003
Estas son las clases que son generadas. Para agregar funcionalidades a los metodos de las
clases, es necesario ver el diagrama de estado correspondiente a cada clase.
14
Gua de Estudio: Control 5
CC10A 2003
8. El Vuelo
Gentileza del Profesor Kurt Schwarze
Se desea modelar con un diagrama de estados un Vuelo. Esto es, desde que se toma el taxi
hasta que despega el avin.
Vemos que el diagrama puede poseer cero o ms puntos de salida, pero solo un punto de
partida.
15
Gua de Estudio: Control 5
CC10A 2003
9. Futbol On-Line
La ANFP quiere comprar un software para mantener en lnea los resultados de los partidos de
ftbol en un servidor web existente. Este software debe ser operado por unos especialistas
que se encuentran en la caseta de transmisin del estadio, y sera alimentado con los siguientes
datos:
Al inicio del software, ingresa los nombres de los equipos y la nmina de jugadores.
Durante el partido se van almacenando los goles indicando el minuto, el jugador y equipo
que convirti el equipo.
Tambin se pueden ingresar casualidades como tarjetas amarillas, tarjetas rojas,
lesiones y cambios en la formacin del equipo.
(a) Identifique los casos de uso y los actores que permitan dibujar un diagrama bsico del
sistema.
Operador
Ingresar
Equipo
Ingresar
Gol
Ingresar
Casualidad <<uses>>
<<extends>>
<<extends>> <<uses>> <<uses>>
Ingresar
Amonestaci
n
Ingresar Publicar
<<extends>> Cambio Resultados
<<uses>>
Servidor
Ingresar
Web
Lesin
16
Gua de Estudio: Control 5
CC10A 2003
(b) Escoja el proceso Ingresar Equipo del sistema y escriba un diagrama de Interaccin,
identificando los objetos que participan en ese proceso.
17
Gua de Estudio: Control 5
CC10A 2003
(f) Dibuje el diagrama de clases que representa la mayor parte del sistema.
18
Gua de Estudio: Control 5
CC10A 2003
Problema 1
Responda (V)erdadero o (F)also:
1. Los diagramas de estado son para analizar el estado del sistema a lo largo de la
F
ejecucin.
2. Los diagramas de secuencia son para saber en qu orden se ejecutan las acciones
V
dentro de un proceso.
3. Las clases Java del sistema son representadas en un diagrama de clase. V
4. Al disear el sistema es importante siempre dibujar diagramas con el enfoque de
F
implementacin, porque es ms facil de construir.
5. Los diagramas de colaboracin son para mostrar cmo se comunican los actores del
F
sistema.
6. Si un programador tiene que escribir un mdulo del sistema, debe usar el diagrama
F
de estados para obtener las clases.
7. Las especificacin de un proceso (en un diagrama de Casos de Uso) sirve para
V
describir cmo se comporta ste.
Problema 2
Dado el siguiente sistema de control de salidas de buses, en su especificacin de casos de uso:
Proceso de Ingreso de Planilla: En este proceso, el operador indica las patentes de los buses
que deben salir, andn y el horario de salida de ste. Esto se hace 1 vez al da y se planifican
todas las salidas del da.
Proceso de Ingreso de Salida: En este proceso, el operador ingresa la patente del bus que va
saliendo y el sistema guarda la hora de llegada. Adems, el sistema actualiza que el andn en el
cul estaba ahora est vaco.
Proceso de Ingreso de Llegada: En este proceso, el operador ingresa la patente del bus que
viene llegando y el sistema guarda la hora de llegada. Adems, el sistema devuelve el andn en
el cul debe estacionarse el bus (andn vaco).
Proceso de Consulta de Salida y Llegadas: En este proceso, el usuario ve una planilla obtenida
desde la base de datos con todas las prximas salidas (prxima hora) y las llegadas que han
ocurrido en esa ltima media hora.
19
Gua de Estudio: Control 5
CC10A 2003
Ingreso
Planillas
Ingreso
Planillas
Operador Ingreso
Salida
Ingreso
Llegada
Consulta
Salidas y
Llegadas
Usuario
(a) Dibuje el diagrama de Secuencia para el proceso de Ingreso de Llegada. Recuerde que si no
hay andn vaco, el bus debe quedar en espera hasta que lo haga.
consulta()
ex := falso
*[no ex]
*[cada anden]
ex := vacio()
asignar_a_bus()
20
Gua de Estudio: Control 5
CC10A 2003
(b) Dibuje el diagrama de Estados del objeto Bus durante todo el sistema, es decir, desde que
es ingresado hasta que sale y llega al terminal de buses.
inscribir
INSCRITO ASIGNADO
patente, chofer, anden
sobrec, cap hora_salida
asignar en
planilla
iniciar servicio
ESTACIONADO
anden, destino
hora_salida
salir del andn
enter/indicar()
exit/indicar()
llegar a andn
VIAJANDO LLEGANDO
destino origen
llegar a
hora_llegada
terminal
do/buscanden()
21
Gua de Estudio: Control 5
CC10A 2003
Si un jugador logra mover una de sus piezas hasta el borde del tablero del oponente, entonces
esta pieza es promovida a Dama. Una Dama tiene poderes especiales: adems de poder
moverse diagonalmente hacia adelante, puede tambin hacerlo hacia atrs.
El juego se gana cuando el jugador ha capturado todas las piezas de su oponente (se puede
empatar si un jugador no puede moverse ms o ninguno pude comer piezas del otro).
Dado que el juego ocurre en una simulacin en el computador, se necesitar un controlador del
juego que le pregunta a cada jugador de turno su movida. Cuando se reciba una movida de un
jugador, se solicita al tablero que valide la movida. Si sta es vlida entonces la pieza del
jugador actual es movida en el tablero. Si se captura alguna pieza sta es removida del tablero.
El tablero es desplegado y se evala el nuevo estado del juego. Este proceso se repite hasta
que un jugador gane al dejar a su ponente sin piezas o se llegue a una posicin de bloqueo.
22
Gua de Estudio: Control 5
CC10A 2003
Pieza
Posicin (Pos)
tipo: int
x: int color: Color
y: int
promover()
Tablero Celda
vaciar()
desplegar() verContenido():Pieza
evaluar():int poner(Pieza)
mover(p:Pos) estaVacia():boolean
remover(p:Pos)
validar(m:Movida):boolean
Controlador Jugador
nombre: String
color: Color
jugar() obtenerMovida():
Movida
Movida
color: Color
agregar(Pos)
23
Gua de Estudio: Control 5
CC10A 2003
class Controlador
// ...
T.inicializar()
Movida m = Jturno.obtenerMovida() ;
boolean movOK = T.validar(m) ;
if (movOK) {
T.ejecutar(m) ;
cambiarTurno() ;
}
// ...
class Jugador {
...
public Movida obtenerMovida() {
Movida m = new Movida() ;
...
return m ;
}
...
inicializar()
m := obtenerMovida()
new
movOk := validar(m)
[movOk] ejecutar(m)
[movOk] cambiarTurno()
24
Gua de Estudio: Control 5
CC10A 2003
inicializando
esperando
jugada
validando
[ambos con fichas,
ambos se pueden
mover]
[jugada vlida]
ejecutando
[jugada ejecutada]
analizando
25
Gua de Estudio: Control 5
CC10A 2003
DIAGRAMA DE ESTADOS
Subiendo
subir(piso)
Detenido en 1 Piso do / Ir al piso
Bajando
Bajando a 1 Piso
viajar
[tiempo espera] do / Ir al piso
DIAGRAMA DE CLASE
n 1
Ascensor Control_Ascensor
piso_id: int Puerta
direccion: boolean posicin: int
direccion: boolean cerrada: boolean=true
piso_actual
mover() 1 cerrar()
abrir()
detener() m
status()
Boton
iluminar: boolean=false
Boton_Piso
iluminar()
Boton_Ascensor cancelar_iluminar() piso num: int
status() direccion: boolean
piso_num:int
Solucin
class Ascensor{
public Ascensor(){
}
public void mover(){
piso_actual+=direccion;
}
public void detener(){
direccion=0;
}
public int status(){
return direccion;
26
Gua de Estudio: Control 5
CC10A 2003
}
}
class Puerta{
boolean cerrada;
public Puerta(){
cerrada=true;
}
public void cerrar(){
cerrada=true;
}
public void abrir(){
cerrada=false;
}
}
class Boton{
boolean iluminar;
public Boton(){
iluminar=false;
}
int n= 10;
long T_ultimo;
Boton[] bp=new Boton_Piso[n];
Boton[] ba=new Boton_Ascensor[n];
27
Gua de Estudio: Control 5
CC10A 2003
for(int i=0;i<n;i++){
bp[i]=new Boton_Piso(i);
ba[i]=new Boton_Piso(i);
}
while(true){
//vemos que pisos han sido apretaods y los agregamos a la cola
for(int i=0;i<n;i++){
if(bp[i].status()&(bp[i].piso_num-
a.piso_actual)/a.direccion=1){
cola.encolar(bp[i]);
bp[i].cancelar_linuminar();
}
if(ba[i].status()& (ba[i].piso_num-
a.piso_actual)/a.direccion=1){
cola.encolar(bp[i]);
ba[i].cancelar_linuminar();
}
}
if (cola.vacia() && TimeAhora()-T_ultimo< T_espera){
cola.encolar(1);
direccion = -1;
}
28
Gua de Estudio: Control 5
CC10A 2003
- Un cliente puede tener varios carrito de compras, cuando desea comprar algo lo sube a
algun carrito, y cuando cambia de opinin lo puede sacar, puediendo comprar ms de un
item del mismo producto.
- Una vez que el carrito contiene todo lo que el cliente desea, este puede solicitar la
compra de los productos.
- Los clientes pagan el contenido de un carrito utilizando su tarjeta de credito, la cual
es verificada previamente.
- Cada cliente tiene que especificar su nombre, direccin de envo, direccin de cobro,
email. Algunos clientes son preferenciales, a quienes se les hace un porcentaje de
descuento.
29