34
1 Ingeniería del Software Ejercicio 2: P2P Examen Febrero 2005 (1h ¼) Diagrama de Casos de Uso y Casos de uso expandido (2,5 puntos) Modelo de Dominio (1 puntos)

1 Ingeniería del Software Ejercicio 2: P2P Examen Febrero 2005 (1h ¼) Diagrama de Casos de Uso y Casos de uso expandido (2,5 puntos) Modelo de

Embed Size (px)

Citation preview

Page 1: 1 Ingeniería del Software Ejercicio 2: P2P  Examen Febrero 2005 (1h ¼)  Diagrama de Casos de Uso y  Casos de uso expandido (2,5 puntos)  Modelo de

1

Ingeniería del Software

Ejercicio 2: P2P

Examen Febrero 2005 (1h ¼)

Diagrama de Casos de Uso y

Casos de uso expandido (2,5 puntos)

Modelo de Dominio (1 puntos)

Page 2: 1 Ingeniería del Software Ejercicio 2: P2P  Examen Febrero 2005 (1h ¼)  Diagrama de Casos de Uso y  Casos de uso expandido (2,5 puntos)  Modelo de

2

Ingeniería del Software

Jerarquía de actores

PEER

CENTRAL

Page 3: 1 Ingeniería del Software Ejercicio 2: P2P  Examen Febrero 2005 (1h ¼)  Diagrama de Casos de Uso y  Casos de uso expandido (2,5 puntos)  Modelo de

3

PLANIFICADOR

Obtener el tren más pesado

Page 4: 1 Ingeniería del Software Ejercicio 2: P2P  Examen Febrero 2005 (1h ¼)  Diagrama de Casos de Uso y  Casos de uso expandido (2,5 puntos)  Modelo de

4

Ingeniería del Software

Actor CENTRAL

CENTRAL

Activar nodo CENTRAL

Desactivar nodo CENTRAL

Page 5: 1 Ingeniería del Software Ejercicio 2: P2P  Examen Febrero 2005 (1h ¼)  Diagrama de Casos de Uso y  Casos de uso expandido (2,5 puntos)  Modelo de

5

Ingeniería del Software

Modelo de dominio

1 *Estación

códigociudadpermiteCambio?

Película

título...

Pase

fechahora/venta

* * Sala

códigoSalaaforo

Page 6: 1 Ingeniería del Software Ejercicio 2: P2P  Examen Febrero 2005 (1h ¼)  Diagrama de Casos de Uso y  Casos de uso expandido (2,5 puntos)  Modelo de

6

Ingeniería del Software

Actor PEER (1)

PEER

Dar de alta nodo PEER

Modificar Recursos

<<uses>>

Dar de baja nodo PEER

Page 7: 1 Ingeniería del Software Ejercicio 2: P2P  Examen Febrero 2005 (1h ¼)  Diagrama de Casos de Uso y  Casos de uso expandido (2,5 puntos)  Modelo de

7

Ingeniería del Software

Actor PEER (2)

PEER

Conectar

Desconectar

Consultar nodo CENTRALSolicitar recurso

Solicitar recurso

<<extends>>

Page 8: 1 Ingeniería del Software Ejercicio 2: P2P  Examen Febrero 2005 (1h ¼)  Diagrama de Casos de Uso y  Casos de uso expandido (2,5 puntos)  Modelo de

8

Ingeniería del Software

Casos de uso de alto nivel (1)

Caso de uso: Activar nodo CENTRAL Actores: CENTRALTipo: SecundarioDescripción: El nodo CENTRAL se pone en marcha. Con

ello se inicializa la lista de resursos disponibles y el historial.

Caso de uso: Desactivar nodo CENTRAL Actores: CENTRALTipo: Secundario

Descripción: El nodo CENTRAL deja de estar activo.

Page 9: 1 Ingeniería del Software Ejercicio 2: P2P  Examen Febrero 2005 (1h ¼)  Diagrama de Casos de Uso y  Casos de uso expandido (2,5 puntos)  Modelo de

9

Ingeniería del Software

Casos de uso de alto nivel (2)

Caso de uso: Dar de alta nodo PEER Actores: PEERTipo: SecundarioDescripción: El nodo PEER se registra en el sistema

proporcionando su dirección IP.

Caso de uso: Dar de baja nodo PEER Actores: PEERTipo: SecundarioDescripción: El nodo PEER se da de baja del sistema.

Se eliminan todos sus datos excepto del historial. Sus recursos dejan de estar disponibles.

Page 10: 1 Ingeniería del Software Ejercicio 2: P2P  Examen Febrero 2005 (1h ¼)  Diagrama de Casos de Uso y  Casos de uso expandido (2,5 puntos)  Modelo de

10

Ingeniería del Software

Casos de uso de alto nivel (2)

Caso de uso: Conectar nodo CENTRAL Actores: PEERTipo: SecundarioDescripción: El nodo PEER se conecta al nodo CENTRAL.

El nodo PEER debe estar registrado. Sus recursos pasan a estar disponibles.

Caso de uso: Desconectar nodo CENTRAL Actores: PEERTipo: SecundarioDescripción: El nodo PEER se desconecta del nodo

CENTRAL. Sus recursos dejan de estar disponibles.

Page 11: 1 Ingeniería del Software Ejercicio 2: P2P  Examen Febrero 2005 (1h ¼)  Diagrama de Casos de Uso y  Casos de uso expandido (2,5 puntos)  Modelo de

11

Ingeniería del Software

Casos de uso de alto nivel (3)

Caso de uso: Modificar recursos Actores: PEERTipo: SecundarioDescripción: Los usuarios registrados podrán cambiar el

conjunto de recursos a compartir, pero mientras estén registrados al menos deberán dejar algún recurso compartido. (a) Los nuevos recursos compartidos se almacenan en el historial.

Page 12: 1 Ingeniería del Software Ejercicio 2: P2P  Examen Febrero 2005 (1h ¼)  Diagrama de Casos de Uso y  Casos de uso expandido (2,5 puntos)  Modelo de

12

Ingeniería del Software

Casos de uso de alto nivel (4)

Caso de uso: Consultar nodo CENTRAL Actores: PEERTipo: SecundarioDescripción: Cuando un usuario desea algún recurso,

realiza una consulta al nodo CENTRAL para que le indique qué nodos PEER lo facilitan. El nodo CENTRAL sólo proporcionará información de los nodos PEER conectados al sistema en ese momento. Al realizar una búsqueda de recursos, el usuario proporciona una o varias palabras clave. El nodo CENTRAL buscará en las descripciones textuales y nombres de los recursos. La información devuelta por el nodo CENTRAL será una lista de elementos de la forma: <IP, Nombre, Descripción>, donde IP es el número IP del nodo PEER que facilita el recurso, Nombre el nombre del recurso (fichero o directorio) que se desea compartir y Descripción la descripción textual del recurso.

Page 13: 1 Ingeniería del Software Ejercicio 2: P2P  Examen Febrero 2005 (1h ¼)  Diagrama de Casos de Uso y  Casos de uso expandido (2,5 puntos)  Modelo de

13

Ingeniería del Software

Caso de uso de alto nivel (5)

Caso de uso: Solicitar recurso Actores: PEERTipo: Secundario

Descripción: Un usuario puede solicitar un recurso proporcionando: <IP, Nombre, Descripción>. Si el nodo PEER situado en dicha IP está conectado entonces le enviará el contenido del recurso con dicho Nombre y Descripción. (b) El sistema guardará un historial con la información de todos los recursos que en el pasado se han compartido.

Page 14: 1 Ingeniería del Software Ejercicio 2: P2P  Examen Febrero 2005 (1h ¼)  Diagrama de Casos de Uso y  Casos de uso expandido (2,5 puntos)  Modelo de

14

Ingeniería del Software

Modelo de dominio (a)

1 *Central

IP/conectados/registrados...

PEER

IPconectado/recursos

1 * Recurso

nombrecontenido

Fichero

descripción

Directorio

1 *historial

Page 15: 1 Ingeniería del Software Ejercicio 2: P2P  Examen Febrero 2005 (1h ¼)  Diagrama de Casos de Uso y  Casos de uso expandido (2,5 puntos)  Modelo de

15

Ingeniería del Software

Modelo de dominio (b)

1 *Central

IP/conectados/registrados...

PEER

IPconectado/recursos

1 * Recurso

nombrecontenido

Fichero

descripción

Directorio

*

*

Historial

nombreficherodescripción

Page 16: 1 Ingeniería del Software Ejercicio 2: P2P  Examen Febrero 2005 (1h ¼)  Diagrama de Casos de Uso y  Casos de uso expandido (2,5 puntos)  Modelo de

16

Ingeniería del Software

Ejercicio 3: Comprar Entradas Numeradas

Examen Febrero 2005 (45 min)

Diagrama de Secuencia de Sistema

Contratos

Page 17: 1 Ingeniería del Software Ejercicio 2: P2P  Examen Febrero 2005 (1h ¼)  Diagrama de Casos de Uso y  Casos de uso expandido (2,5 puntos)  Modelo de

17

Ingeniería del Software

Ejercicio 3: Comprar Entradas Numeradas

CLIENTE

Comprar entradas numeradas

TAQUILLERA

Page 18: 1 Ingeniería del Software Ejercicio 2: P2P  Examen Febrero 2005 (1h ¼)  Diagrama de Casos de Uso y  Casos de uso expandido (2,5 puntos)  Modelo de

18

Ingeniería del Software

Modelo de dominio

1 *Multicine

dnitel...

1

*

Película

títulociclo.../venta

Pase

fecha/venta

Localidad

filaasientovendida

* * Sala

númeroaforo

Page 19: 1 Ingeniería del Software Ejercicio 2: P2P  Examen Febrero 2005 (1h ¼)  Diagrama de Casos de Uso y  Casos de uso expandido (2,5 puntos)  Modelo de

19

Ingeniería del Software

Caso de uso: Comprar entradas numeradasActores: Cliente, TaquilleraDescripción: Un cliente llega a la taquilla del Multicine y pide las

entradas que desea comprar. La taquillera registra los la compra las entradas y recibe un pago en efectivo. Al terminar la operación, el Cliente se marcha con las entradas compradas

 Curso normal de los eventos:1. Cliente: Este caso de uso comienza cuando el Cliente llega a

la taquilla del Multicine y solicita entradas para una película y un pase.

2. Taquillera: Consulta los pases de la película.3. Sistema: Presenta la información de los distintos pases

disponibles para ese día y las salas que proyectan la película solicitada y su grado de ocupación.

4. Taquillera: Selecciona uno de los pases. 5. Sistema: Presenta un plano de la sala con las localidades

libres y las ya vendidas. 6. Taquillera: Le informa de las distintas posibilidades y solicita

al Cliente sus preferencias....

Page 20: 1 Ingeniería del Software Ejercicio 2: P2P  Examen Febrero 2005 (1h ¼)  Diagrama de Casos de Uso y  Casos de uso expandido (2,5 puntos)  Modelo de

20

Ingeniería del Software

...• Cliente: Informa a la taquillera de sus preferencias y escoge

alguna posibilidad.• Taquillera: Selecciona unas localidades que se ajustan a las

preferencias del Cliente.• Sistema: Calcula y presenta el importe total.• Taquillera: Indica el total al Cliente.• Cliente: Efectúa el pago en efectivo.• Taquillera: Introduce la cantidad abonada.• Sistema: Calcula la diferencia entre pago y el importe. Emite

las entradas compradas y registra la venta.• Taquillera: Entrega las entradas y el cambio si es que ha

pagado en efectivo.• Cliente: Se marcha con las entradas compradas.Cursos alternativos:Paso 4. No quedan localidades para el pase solicitado. Informar

de otros pases disponibles.Paso 7. El Cliente prefiere no comprar las entradas. Paso 11. El Cliente no dispone de suficiente dinero.

Page 21: 1 Ingeniería del Software Ejercicio 2: P2P  Examen Febrero 2005 (1h ¼)  Diagrama de Casos de Uso y  Casos de uso expandido (2,5 puntos)  Modelo de

21

:Taquillera

ConsultarPases(título) : listaInfoPases

ConsultarEstadoLocalidades(titulo, sala, fecha) : listaInfoLocalidades

SeleccionarLocalidades(listaLocalidades) : importe

:Sistema

RegistrarVenta(listaLocalidades, importe, monto) : cambio

*

Diagrama de secuencia de sistema

Page 22: 1 Ingeniería del Software Ejercicio 2: P2P  Examen Febrero 2005 (1h ¼)  Diagrama de Casos de Uso y  Casos de uso expandido (2,5 puntos)  Modelo de

22

Contrato operación ConsultarPases

Name:ConsultarPases(título) : listaInfoPases Responsabilities

Presenta la información de los distintos pases disponibles para ese día y las salas que proyectan la película solicitada y su grado de ocupación.

PreconditionsEl título de la película es válido

Postconditions Salida

listaInfoPases = lista de salas, fechas (horas) y grados de ocupación (sala.aforo – pase.venta) en las que se proyecta ese día la película solicitada

Page 23: 1 Ingeniería del Software Ejercicio 2: P2P  Examen Febrero 2005 (1h ¼)  Diagrama de Casos de Uso y  Casos de uso expandido (2,5 puntos)  Modelo de

23

Contrato operación ConsultarEstadoLocalidades

Name:ConsultarEstadoLocalidades(título, sala, fecha) : listaInfoLocalidades

ResponsabilitiesSeleccionado un pase, obtener la información de las localidades libres y las ya vendidas

PreconditionsEl título, sala y fecha son válidos

Postconditions Salida

listaInfoLocalidades = lista de todas las localidades asignadas al pase incluyendo para cada una de ellas fila, columna y si està vendida

Page 24: 1 Ingeniería del Software Ejercicio 2: P2P  Examen Febrero 2005 (1h ¼)  Diagrama de Casos de Uso y  Casos de uso expandido (2,5 puntos)  Modelo de

24

Contrato operación SeleccionarLocalidades

Name:Seleccionarlocalidades(listaLocalidades) : importe Responsabilities

Calcula y presenta el importe total de las localidades seleccionadas en listaLocalidades (lista de <titulo, sala, fecha, fila, columna>).

PreconditionslistaLocalidades es válido

Postconditions Salida

Importe = precio total de las localidades vendidas (cardinalidad de listaLocalidades * precioEntrada)

Page 25: 1 Ingeniería del Software Ejercicio 2: P2P  Examen Febrero 2005 (1h ¼)  Diagrama de Casos de Uso y  Casos de uso expandido (2,5 puntos)  Modelo de

25

Contrato operación RegistrarVenta

Name:RegistrarVenta(listaLocalidades, importe, pago) : cambio

ResponsabilitiesCalcula la diferencia entre el pago y el importe. Emite las entradas compradas y registra la venta: asigna como vendidas todas las localidades de listaLocalidades (lista de <titulo, sala, fecha, fila, columna>).

PreconditionslistaLocalidades es válido, importe <= pago.

PostconditionsPara cada localidad l de listaLocalidades l.vendida = truePara el pase p (de la película, sala y fecha),

p.venta = p.venta + | listaLocalidades |Para la película p, p.venta = p.venta + | listaLocalidades |

Salidacambio = pago – importe (y emitir las localidades de listaLocalidades)

Page 26: 1 Ingeniería del Software Ejercicio 2: P2P  Examen Febrero 2005 (1h ¼)  Diagrama de Casos de Uso y  Casos de uso expandido (2,5 puntos)  Modelo de

26

Ingeniería del Software

Ejercicio 4: Eliminar Pases

Examen Febrero 2005 (45 min)

Diagrama de Secuencia

Page 27: 1 Ingeniería del Software Ejercicio 2: P2P  Examen Febrero 2005 (1h ¼)  Diagrama de Casos de Uso y  Casos de uso expandido (2,5 puntos)  Modelo de

27

:Administrador

ObtenerCiclos() : listaCiclos

ObtenerPelículas(nombre) : listaPelículasCompleta

EliminarPases(listaPelículas, fecha)

:Sistema

Diagrama de Secuencia de Sistema

Ingeniería del Software

Page 28: 1 Ingeniería del Software Ejercicio 2: P2P  Examen Febrero 2005 (1h ¼)  Diagrama de Casos de Uso y  Casos de uso expandido (2,5 puntos)  Modelo de

28

Ingeniería del Software

Modelo de dominio

1 *Ciclo

nombre...

Película

título...

Pase

fechahora/venta

* * Sala

códigoSalaaforo

Page 29: 1 Ingeniería del Software Ejercicio 2: P2P  Examen Febrero 2005 (1h ¼)  Diagrama de Casos de Uso y  Casos de uso expandido (2,5 puntos)  Modelo de

29

:Pase

Ingeniería del Software

ObtenerCiclos()

:GestorEliminarPases

ObtenerNombre()

:Ciclo

Lista(nombre)

nombre

*

Page 30: 1 Ingeniería del Software Ejercicio 2: P2P  Examen Febrero 2005 (1h ¼)  Diagrama de Casos de Uso y  Casos de uso expandido (2,5 puntos)  Modelo de

30

Ingeniería del Software

Escogemos el patrón controlador para gestionar el evento externo ObtenerCiclos. Aunque otras opciones son posibles, a falta de más información al tratarse de modelar un caso de uso, seleccionamos un controlador de caso de uso: GestorEliminarPases. Además, esta clase artificial agrupa a todos los ciclos del festival. Con ello pretendemos un diseño global con alta cohesión y bajo acoplamiento.

 Por el patrón experto, el método ObtenerNombre es el encargado de

buscar el nombre del ciclo.

Page 31: 1 Ingeniería del Software Ejercicio 2: P2P  Examen Febrero 2005 (1h ¼)  Diagrama de Casos de Uso y  Casos de uso expandido (2,5 puntos)  Modelo de

31

:Pase

Ingeniería del Software

ObtenerPelículas(nombre)

:GestorEliminarPases

ObtenerTítulo()

:Película

Lista(título)

título

*

ObtenerTitulos(nombre)

:Ciclo

Lista(título)

Page 32: 1 Ingeniería del Software Ejercicio 2: P2P  Examen Febrero 2005 (1h ¼)  Diagrama de Casos de Uso y  Casos de uso expandido (2,5 puntos)  Modelo de

32

Ingeniería del Software

Escogemos el patrón controlador para gestionar el evento externo ObtenerPelículas. Aunque otras opciones son posibles, a falta de más información al tratarse de modelar un caso de uso, seleccionamos el mismo controlador de caso de uso que para la operación anterior: GestorEliminarPases. Además, esta clase artificial agrupa a todos los ciclos del festival y los tiene accesibles para recorrido y de forma directa (hash). Con ello pretendemos un diseño global con alta cohesión y bajo acoplamiento.

 Por el patrón experto, el método ObtenerTítulos es el encargado de

buscar las películas asociadas al ciclo nombre.

Por el patrón experto, el método ObtenerTítulo es el encargado de buscar el título de la película.

Page 33: 1 Ingeniería del Software Ejercicio 2: P2P  Examen Febrero 2005 (1h ¼)  Diagrama de Casos de Uso y  Casos de uso expandido (2,5 puntos)  Modelo de

33

:Pase

Ingeniería del Software

Elim

inarP

ase

s(Li

staPelíc

ula

s, f

ech

a)

:GestorEliminarPases

EliminarPase(fecha)

:Pase

EliminarPases(titulo,fecha)

:Pase:Pelicula

ComprobarPase()

[ok] EliminarAsocSala()

ok

ok

[ok] EliminarAsocPase()

[ok]

*

*

Page 34: 1 Ingeniería del Software Ejercicio 2: P2P  Examen Febrero 2005 (1h ¼)  Diagrama de Casos de Uso y  Casos de uso expandido (2,5 puntos)  Modelo de

34

Ingeniería del Software

Escogemos el patrón controlador para gestionar el evento externo EliminarPases. Aunque otras opciones son posibles, a falta de más información al tratarse de modelar un caso de uso, seleccionamos el mismo controlador de caso de uso que para la operación anterior: GestorEliminarPases. Además, esta clase artificial agrupa también todas las películas del festival. Con ello pretendemos un diseño global con alta cohesión y bajo acoplamiento.

 Por el patrón experto, el método EliminarPases de Película es el

encargado de eliminar los pases de las películas cuyo título aparece en ListaPelículas y cumplan las condiciones impuestas. En el caso de cumplirlas, eliminaremos su asociación con el pase (realizado por EliminarAsocPase) y por último lo destruiremos.

Por el patrón experto, el método EliminarPase de Pase es el encargado de comprobar si Pa.venta=0 y Pa.fecha > fecha (realizado por ComprobarPase). En el caso de cumplirse la condición, eliminaremos su asociación con Sala (realizado por EliminarAsocSala).

Nota: podría ser que la Sala también tuviera una asociación con Pase. En ese caso, también deberíamos acceder a Sala para eliminarla.