caso de estudio: un sistema de mensajería elo-329:diseño y programación orientados a objetos

26
Caso de estudio: Un sistema de mensajería ELO-329:Diseño y programación orientados a objetos

Upload: chus-silguero

Post on 02-Apr-2015

106 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Caso de estudio: Un sistema de mensajería ELO-329:Diseño y programación orientados a objetos

Caso de estudio: Un sistema de mensajería

ELO-329:Diseño y programación orientados a objetos

Page 2: Caso de estudio: Un sistema de mensajería ELO-329:Diseño y programación orientados a objetos

Descripción general

Usaremos texto a cambio de voz, teclas del teléfono y denotar el colgar.

1 2 ... 0 # solos en una línea significarán teclas del teléfono.

H sobre una línea significa colgar. Toda otra entrada significará voz. Es posible definir una GUI adecuada, por

ejemplo poniendo botones para las teclas y campos de texto para los mensajes. Dejaremos esto de lado.

Page 3: Caso de estudio: Un sistema de mensajería ELO-329:Diseño y programación orientados a objetos

Análisis: como herramienta usaremos definición de casos de uso.

Caso de uso “Dar con una extensión.” 1. Usuario digita el número principal del

sistema. 2. El sistema responde:

Ingrese el número de la casilla seguido de # 3. El usuario digita el número de la

extensión. 4. El sistema responde

Usted ha dado con la casilla xxxx. Por favor deje su mensaje ahora.

Page 4: Caso de estudio: Un sistema de mensajería ELO-329:Diseño y programación orientados a objetos

Caso de uso: Dejar un mensaje

1. El llamador lleva a cabo el caso “dar con una extensión”.

2. Llamador expresa su mensaje 3. Llamador cuelga 4. EL sistema deja el mensaje en la

casilla.

Page 5: Caso de estudio: Un sistema de mensajería ELO-329:Diseño y programación orientados a objetos

Caso de uso: “Log in”

1. EL dueño de la casilla desarrolla el caso “Dar con una extensión”

2. El dueño de la casilla digita su password y #

(Default password = número de casilla. Para cambiarla, ver “Cambio de código de entrada”)

3. El sistema reproduce el menú de la casilla: Ingrese 1 para administrar sus mensajes. Ingrese 2 para cambiar su código de entrada. Ingrese 3 para cambiar su saludo.

Page 6: Caso de estudio: Un sistema de mensajería ELO-329:Diseño y programación orientados a objetos

Caso de uso: Escuchar Mensajes. 1. El dueño de la casilla lleva acabo el “Log in” 2. El dueño de la casilla selecciona la opción ”escuchar mensajes" del

menú. 3. El sistema responde con el menú:

Presione 1 para escuchar el mensaje actual Presione 2 para borrar el mensaje actual Presione 3 para grabar el mensaje actual Presione 4 para volver al menú de la casilla.

4. El dueño de la casilla selecciona ”escuchar el mensaje actual" 5. El sistema reproduce el mensaje nuevo mensaje más actual, o si no

hay nuevos mensajes, el menos antiguo. Nota: Mensajes reproducidos no implica que se remuevan de la cola. 6. El sistema reproduce el menú de mensajes. 7. Usuario selecciona “borrar mensaje actual”. 8. El sistema remueve el mensaje. 9. Continúa con paso 3.

Page 7: Caso de estudio: Un sistema de mensajería ELO-329:Diseño y programación orientados a objetos

Caso de uso: Escuchar un Mensaje

Variación #1 1.1. Llegar hasta paso 6 1.2. Usuario Selecciona ”grabar mensaje

actual". El mensaje es removido de la cola de

mensaje nuevos y es puesto en la de antiguos.

1.3. El caso de uso continúa en paso 3.

Page 8: Caso de estudio: Un sistema de mensajería ELO-329:Diseño y programación orientados a objetos

Caso de uso: Cambio de mensaje de saludo

1. El dueño de la casilla lleva a cabo el caso “Log in”

2. El dueño de la casilla selecciona la opción “Cambio de mensaje de saludo” del menú.

3. El dueño de la casilla dice el nuevo mensaje de saludo.

4. El dueño presiona # 5. El sistema configura el nuevo saludo.

Page 9: Caso de estudio: Un sistema de mensajería ELO-329:Diseño y programación orientados a objetos

Variante caso: Cambio de mensaje de saludo.

Variación #1: Cuelga antes de confirmar. 1.1. Comenzando de paso 3. 1.2. EL dueño cuelga. 1.3. El sistema mantiene le antiguo

mensaje de saludo.

Page 10: Caso de estudio: Un sistema de mensajería ELO-329:Diseño y programación orientados a objetos

Caso de uso: Cambio de password

1. El dueño de la casilla lleva a cabo el caso “Log in”

2. El dueño selecciona la opción ”cambio de password” del menú.

3. El dueño digita el nuevo código de paso.

4. El dueño presiona # 5. El sistema configura la nueva

password.

Page 11: Caso de estudio: Un sistema de mensajería ELO-329:Diseño y programación orientados a objetos

Variación a caso de uso: Cambio de password.

Variación #1: Cuelga antes de confirmar. 1.1. Comienza en paso 3 1.2. El dueño cuelga. 1.3. El sistema mantiene la antigua

password.

Page 12: Caso de estudio: Un sistema de mensajería ELO-329:Diseño y programación orientados a objetos

Análisis/Diseño

Tarjetas CRC para sistema de mensajería. Algunas clases que parecen obvias * Casilla * Mensaje * SistemaMensajería

Page 13: Caso de estudio: Un sistema de mensajería ELO-329:Diseño y programación orientados a objetos

Tarjetea CRC Iniciales

Para Casilla (Mailbox)

Para Cola de mensajes

Sistema de Mensajería

Page 14: Caso de estudio: Un sistema de mensajería ELO-329:Diseño y programación orientados a objetos

Teléfono

¿Quién interactúa con el usuario? El teléfono toma los ingresos vía teclado y

voz. El teléfono reproduce los mensajes al

usuario. Así el teléfono puede ser:

Page 15: Caso de estudio: Un sistema de mensajería ELO-329:Diseño y programación orientados a objetos

Conexión

¿Con quién se comunica el teléfono? Con el sistema de mensajería? Qué tal si hay múltiples teléfonos? Cada conexión puede estar en diferente

estado (marcando, grabando, recuperando un mensaje, ...)

Debería el sistema de mensajería seguir la pista de todas las conexiones?

Es mejor dar esta responsabilidad a una nueva clase.

Page 16: Caso de estudio: Un sistema de mensajería ELO-329:Diseño y programación orientados a objetos

Conexión

Page 17: Caso de estudio: Un sistema de mensajería ELO-329:Diseño y programación orientados a objetos

Análisis de casos de uso: Caso de uso: Dejar un mensaje 1. Usuario digita extensión. El teléfono envía número a conexión.

(Agregar Conexión como colaborador de teléfono.) 2. Conexión pide al sistema de mensajería buscar una casilla. 3. Conexión pide a casilla el mensaje de saludo.

(Agregar responsabilidad “Administrar saludo” a casilla, agregar Casilla como colaborador de conexión)

4. Conexión pide a Teléfono reproducir el saludo. 5. Usuario dice el mensaje. El teléfono pide a conexión grabarlo.

(Agregar responsabilidad “grabar entrada de voz” en conexión) 6. Usuario cuelga. Teléfono notifica a Conexión. 7. Conexión construye Mensaje. (Agregar tarjeta para clase Mensaje, agregar Mensaje como

colaborador de Conexión) 8. Conexión agrega mensaje a casilla.

Page 18: Caso de estudio: Un sistema de mensajería ELO-329:Diseño y programación orientados a objetos

Resultado del Análisis

Page 19: Caso de estudio: Un sistema de mensajería ELO-329:Diseño y programación orientados a objetos

Análisis de caso de uso: Escuchar un mensaje.

1. Usuario tipea password. Teléfono notifica a conexión. 2. Conexión pide a casilla chequear la password. (agregar responsabilidad “Administrar password” a casilla). 3. Conexión define casilla actual y pide a teléfono reproducir menú. 4. Usuario selecciona ”administrar mensajes". Teléfono pasa tecla a Conexión. 5. Conexión pide a Teléfono reproducir menú. 6. Usuario selecciona ”escuchar mensaje actual". Teléfono pasa tecla a

conexión. 7. Conexión obtiene primer mensaje desde la casilla actual (agregar ”obtener mensaje" como responsabilidad de casilla). Conexión pide al teléfono reproducir en mensaje. 8. Conexión pide a teléfono reproducir menú. 9. Usuario Selecciona ”grabar mensaje actual". Teléfono pasa tecla a conexión 10. Conexión pide a casilla grabar el mensaje (Modificar responsabilidad de Casilla para “recuperar, grabar, borrar

mensajes”) 11. Conexión pide a teléfono reproducir menú.

Page 20: Caso de estudio: Un sistema de mensajería ELO-329:Diseño y programación orientados a objetos

Resultado de análisis

Page 21: Caso de estudio: Un sistema de mensajería ELO-329:Diseño y programación orientados a objetos

Diagramas UML: Dependencia

Page 22: Caso de estudio: Un sistema de mensajería ELO-329:Diseño y programación orientados a objetos

Diagramas UML: Diagrama de clases

Page 23: Caso de estudio: Un sistema de mensajería ELO-329:Diseño y programación orientados a objetos

Diagramas UML: Diagrama de secuencia: Dejar un mensaje

Page 24: Caso de estudio: Un sistema de mensajería ELO-329:Diseño y programación orientados a objetos

Diagramas UML: Diagrama de secuencia: Escuchar mensaje

Page 25: Caso de estudio: Un sistema de mensajería ELO-329:Diseño y programación orientados a objetos

Diagramas de estado de una conexión

Page 26: Caso de estudio: Un sistema de mensajería ELO-329:Diseño y programación orientados a objetos

Implementación

Message.java MessageQueue.java Mailbox.java Connection.java MailSystem.java Telephone.java MailSystemTest.java Todas aquí