100 likes | 199 Views
Obtener mejores películas. ESTRATEGA. Ingeniería del Software. Ejercicio 3: Películas de mayor éxito. 1. *. *. *. Película. Sala. título metraje /venta. número aforo. Multicine. dni tel. Pase. fecha /venta. 1. *. Localidad. fila asiento vendida. Ingeniería del Software.
E N D
Obtener mejores películas ESTRATEGA Ingeniería del Software Ejercicio 3: Películas de mayor éxito
1 * * * Película Sala título metraje /venta número aforo Multicine dni tel ... Pase fecha /venta 1 * Localidad fila asiento vendida Ingeniería del Software Modelo de dominio
:Sistema :Administrador ObtenerSalas() : listaSalas EliminarPases(sala, fecha) Ingeniería del Software Diagrama de Secuencia de Sistema
1 * * * Ciclo Película Sala nombre ... título ... códigoSala aforo Pase fecha hora /venta Ingeniería del Software Modelo de dominio
* Ingeniería del Software :Pase :GestorEliminarPases :Ciclo ObtenerCiclos() ObtenerNombre() nombre Lista(nombre)
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.
* Ingeniería del Software :Pase :GestorEliminarPases :Ciclo :Película ObtenerPelículas(nombre) ObtenerTitulos(nombre) ObtenerTítulo() título Lista(título) Lista(título)
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.
Ingeniería del Software :Pase :Pase :GestorEliminarPases :Pelicula :Pase EliminarPases(titulo,fecha) * EliminarPase(fecha) * ComprobarPase() EliminarPases(ListaPelículas, fecha) ok [ok] EliminarAsocSala() ok [ok] EliminarAsocPase() [ok]
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.