La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

1 Ingeniería del Software Ejercicios de Diseño  Caso de Uso Generar Facturas (Junio 2003)  Caso de Uso Grado de Ocupación (Febrero 2004)  Caso de Uso.

Presentaciones similares


Presentación del tema: "1 Ingeniería del Software Ejercicios de Diseño  Caso de Uso Generar Facturas (Junio 2003)  Caso de Uso Grado de Ocupación (Febrero 2004)  Caso de Uso."— Transcripción de la presentación:

1 1 Ingeniería del Software Ejercicios de Diseño  Caso de Uso Generar Facturas (Junio 2003)  Caso de Uso Grado de Ocupación (Febrero 2004)  Caso de Uso Clientes Pelicula (Junio 2004)  Caso de Uso Programar Pases (Septiembre 2004)  Caso de Uso Eliminar Pases (Febrero 2005)  Se pide:  Diagrama de Secuencia

2 2 Ingeniería del Software Ejercicios de Diseño  Caso de Uso Generar Facturas (Junio 2003)  Se pide:  Diagrama de Secuencia

3 3 Ingeniería del Software Llamada teléfonoDestino: String dia: Integer mes: Integer año: Integer inicio: Integer duración: Integer /importe: Real Cliente teléfono: String nombre: String nif: String dirección: String Factura mes: Integer año: Integer cobrada: Boolean=False /total: Integer=0 Tarifa tipo: String precio: Real * 1* 1 *0..1 /pertenece 1* Ejercicio 1: Caso de uso: Generar Facturas

4 4 Ingeniería del Software :Administrador :Sistema generarFacturas(año,mes) Ejercicio 1: Caso de uso: Generar Facturas

5 5 Ingeniería del Software Contrato de la operación generarFacturas: Operación:generarFacturas(año: Integer; mes: Integer) Responsabilidades: Generar las facturas mensuales de los clientes Precondiciones:argumentos no nulos y válidos Postcondicones: 1. Se ha dado de alta una instancia de factura para cada cliente que tenga como mínimo una llamada en el mes y año indicado 2. Se ha asignado el importe de cada llamada 3. Se han asignado los atributos mes, año, cobrado y total de la instancia creada. 4. Se asocia la factura al cliente 5. Se asocian las llamadas a la factura creada

6 6 Ingeniería del Software generarFacturas(año,mes) :GestorFacturas gF(año,mes) importe [n>0] precio?() * * :Factura [n>0] importe() :Tarifa importeLlamada() :Cliente :Llamada numLlamadas(año,mes) n * b := añoMes?(año,mes) [n>0] asociarLlamada() * asociarLlamada()

7 7 Ingeniería del Software generarFacturas(año,mes) :GestorFacturas gF(año,mes) importe [n>0] precio?() * * :Factura [n>0] importe() :Tarifa importeLlamada() [n>0] * asociarLlamada() :Cliente :Llamada n := numLlamadas(año,mes)

8 8 Ingeniería del Software Escogemos el patrón controlador para gestionar el evento externo generarFacturas. 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: GestorFacturas. Además, esta clase artificial agrupa a todos los clientes de la compañía. Con ello pretendemos un diseño global con alta cohesión y bajo acoplamiento. Por el patrón experto, el método gF es el encargado de verificar que el cliente haya realizado llamadas en ese mes y año (numLlamadas()>0) para poder crear una factura. El método generarFacturas de la clase GestorFacturas aplica el método gF de Cliente a cada cliente. Utilizando el patrón experto, se asigna la responsabilidad de calcular el importe de las distintas llamadas de un cliente a la clase Llamada. Se calcula el /importe de cada llamada - importeLlamada() - y se acumula para el atributo /total de Factura. Para ello debe consultarse el precio de la tarifa de cada llamada. Utilizando el patrón creador, cada Cliente crea su Factura, la asocia a su atributo /pertenece y le asigna los valores pertinentes – mes, año, /total –. Por último, el Cliente, siendo el experto en llamadas, es el que debe asociar la Factura creada a cada Llamada.

9 9 Ingeniería del Software Ejercicios de Diseño  Caso de Uso Grado de Ocupación (Febrero 2004)  Se pide:  Diagrama de Secuencia

10 10 Ingeniería del Software Grado de Ocupación: Modelo de Dominio

11 11 Ingeniería del Software Grado de Ocupación: Diagrama de Secuencia de Sistema :Administrador :Sistema gradoOcupacion(ciclo, fecha) : go

12 12 Ingeniería del Software Contrato de la operación gradoOcupación: Operación:gradoOcupacion(ciclo, fecha) : go Responsabilidades:Obtener el grado de ocupación de un determinado ciclo en una fecha concreta Precondiciones:argumentos no nulos y válidos Postcondicones: Salida: go = ratio (en tanto por ciento) entre el total de entradas de un ciclo vendidas hasta una fecha y el total de entradas disponibles de un ciclo determinado.

13 13 Ingeniería del Software Grado de Ocupación: Modelo de Dominio Película ciclo título director actores descripción duracion imagen Sala nombre butacas Pase fecha horaIncio horaFin precio /vendidas Entradas num Cesta fecha hora importe ** * *

14 14 Ingeniería del Software Grado de Ocupación: Modelo de Dominio: Normalización Película ciclo título director actores descripción duracion imagen Sala nombre butacas Pase fecha horaIncio horaFin precio /vendidas Entradas num Cesta fecha hora importe * * * *

15 15 Ingeniería del Software Grado de Ocupación: Diagrama de clases: accesibilidad Película ciclo título director actores descripción duracion imagen Sala nombre butacas Pase fecha horaIncio horaFin precio /vendidas Entradas num Cesta fecha hora importe * * * * Controlador

16 16 :Pase :Pelicula Ingeniería del Software gradoOcupacion(ciclo,fecha) :GestorOcupacion Tbutacas(ciclo) butacas() :Pelicula :Pase:Sala butacasPase() * * TVendidas(ciclo,fecha) tv * vendidasPase(fecha) * v :Cesta vendidas(fecha) * v comprobar(fecha) go=tb/tv*100 tb b :Pase :Entradas

17 17 Ingeniería del Software Escogemos el patrón controlador para gestionar el evento externo gradoOcupación. 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: GestorOcupación. Además, esta clase artificial agrupa a 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 TButacas es el encargado de obtener el total de butacas disponibles para un ciclo determinado. Para ello, primero se seleccionan todas las películas del ciclo. Con ellas, también por el patrón experto, se seleccionan todos los pases y salas donde se proyecta la película. Acumulamos el resultado en la variable tb. Por el patrón experto, el método TVendidas es el encargado de obtener el total de entradas vendidas hasta una fecha. Para ello, primero se seleccionan todas las películas del ciclo. Con ellas, también por el patrón experto, se seleccionan todos los pases. Ahora, también por el patrón experto, seleccionamos las entradas y cestas con fecha menor o igual a la proporcionada. Acumulamos el resultado en la variable tv. Por último, se obtiene el valor de go = tb / tv * 100

18 18 Ingeniería del Software Examen Junio 2003-2004  4a Parte: Diseño: ClientesPelicula  Se pide:  Diagrama de secuencia

19 19 Ingeniería del Software Grado de Ocupación: Modelo de Dominio

20 20 Ingeniería del Software Grado de Ocupación: Diagrama de Secuencia de Sistema :Administrador :Sistema clientesPelícula(código) : clientes

21 21 Ingeniería del Software Contrato de la operación clientesPelícula: Operación:clientesPelícula(código) : clientes Responsabilidades:Obtener los clientes que hayan comprado entradas de cualquier pase de una película Precondiciones:argumento no nulo y válido Postcondicones: Salida: clientes = lista de los nombres e e-mails de los clientes que hayan comprado entradas de cualquier pase de una determinada película.

22 22 :Entradas :Pase Ingeniería del Software clientesPelicula(código) :GestorClientesPelicula CP(código) EntradasPase() :Pelicula :Pase :Entradas PasesPelicula() :Cesta CestaEntrada() :Cliente * * ClienteCesta() nombre, e-mail nombre, e-mail Lista(nombre, e-mail) eliminarRepetidos() Lista(nombre, e-mail) Lista(nombre, e-mail) Lista(nombre, e-mail)

23 23 Ingeniería del Software Escogemos el patrón controlador para gestionar el evento externo ClientesPelícula. 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: GestorClientesPelícula. Además, esta clase artificial agrupa a 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 CP es el encargado de buscar la película. Por el patrón experto, el método PasesPelícula es el encargado de buscar todos los pases de la película, y el método EntradasPase, todas las entradas vendidas de un determinado pase. Por el patrón experto, el método CestaEntrada es el encargado de obtener la cesta que incluía la entrada venida, y el método ClienteCesta el cliente que realizó esa compra. De ese cliente se obtiene su nombre e e-mail. Por último, el método EliminarRepetidos elimina los nombres e e-mails que pudieran estar repetidos de los clientes que compraron alguna entrada para una determinada película.

24 24 Ingeniería del Software Examen Febrero 2004-2005  Eliminar Pases  Se pide:  Diagrama de secuencia

25 25 :Administrador ObtenerCiclos() : listaCiclos ObtenerPelículas(nombre) : listaPelículasCompleta EliminarPases(listaPelículas, fecha) :Sistema Diagrama de Secuencia de Sistema Ingeniería del Software

26 26 Ingeniería del Software Modelo de dominio 1* Ciclo nombre... Película título... Pase fecha hora /venta ** Sala códigoSala aforo

27 27 :Pase Ingeniería del Software ObtenerCiclos() :GestorEliminarPases ObtenerNombre() :Ciclo Lista(nombre) nombre *

28 28 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.

29 29 :Pase Ingeniería del Software ObtenerPelículas(nombre) :GestorEliminarPases ObtenerTítulo() :Película Lista(título) título * ObtenerTitulos() :Ciclo Lista(título)

30 30 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.

31 31 :Pase Ingeniería del Software EliminarPases(ListaPelículas, fecha) :GestorEliminarPases EliminarPase(fecha) :Pase EliminarPases(titulo,fecha) :Pase :Pelicula ComprobarPase() [ok] EliminarAsocSala() ok [ok] EliminarAsocPase() [ok] * *

32 32 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 acceso directo (hash). 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.


Descargar ppt "1 Ingeniería del Software Ejercicios de Diseño  Caso de Uso Generar Facturas (Junio 2003)  Caso de Uso Grado de Ocupación (Febrero 2004)  Caso de Uso."

Presentaciones similares


Anuncios Google