La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

1 Ingeniería del Software Ejercicios de Análisis  Caso de Uso Cambiar Médico Cabecera (Enero 2002)  Caso de Uso Reasignar Citas (Junio 2002)  Caso de.

Presentaciones similares


Presentación del tema: "1 Ingeniería del Software Ejercicios de Análisis  Caso de Uso Cambiar Médico Cabecera (Enero 2002)  Caso de Uso Reasignar Citas (Junio 2002)  Caso de."— Transcripción de la presentación:

1 1 Ingeniería del Software Ejercicios de Análisis  Caso de Uso Cambiar Médico Cabecera (Enero 2002)  Caso de Uso Reasignar Citas (Junio 2002)  Caso de Uso Trasladar Empleado (Febrero 2003)  Caso de Uso Verificar Pedido (Junio 2003)  Caso de Uso Modificar Reserva (Febrero 2004)  Caso de Uso Anular Reserva Pista (Junio 2004)  Caso de Uso Comprar Entradas Numeradas (Febrero 2005)  Para todos ellos se pide:  Diagrama de Secuencia del Sistema  Contratos  Modelo de Jacobson

2 2 Ingeniería del Software Ejercicios de Análisis  Caso de Uso Cambiar Médico Cabecera (Junio 2003)  Se pide:  Modelo de Jacobson

3 3 Ingeniería del Software Caso de uso: Cambiar Médico Cabecera PACIENTE Cambiar Médico Cabecera

4 4 Ingeniería del Software Modelo de Dominio Paciente dni nss nombre fechaAsigMed Médico numColegiado nombre maxPacientes asignado * 0..1 ** AsignadoAntes fechaInicio fechaFin suPacienteActual suDoctorActual suPacientePasadosuDoctorPasado

5 5 Ingeniería del Software Caso de Uso Expandido: Cambiar Médico Cabecera Caso de uso: Cambiar Médico Cabecera Actores:Paciente Descripción:El paciente cambia de médico de cabecera Curso normal de los eventos

6 6 Ingeniería del Software Caso de Uso Expandido: Cambiar Médico Cabecera Curso normal de los eventos 1.Paciente: Este caso de uso empieza cuando el paciente quiere cambiar de médico de cabecera. Se identifica dando su número de la Seguridad Social. 2.Sistema: Muestra los nombres de todos los médicos de cabecera a los que, en principio puede cambiar (los que no hayan llegado al máximo de pacientes asignados) 3.Paciente: Selecciona el médico que desea. 4.Sistema: Se registra el nuevo médico y se quita el que tenía, añadiéndolo como médico de cabecera asignado anteriormente. Cursos alternativos 1.Si el paciente no tiene médico de cabecera asignado actualmente, no se le permite cambiar de médico 2.Si el paciente escoge como nuevo médico de cabecera uno que ya tenía, entonces no se le permite cambiar de médico

7 7 Ingeniería del Software Diagrama de Jacobson Cambiar Médico Cabecera (1) :Paciente :IUCMC :Médico Cabecera :Paciente :AsignadoAntes ** :GestorMédicos :GestorPacientes 1, 11 2 3 7, 8, 10 4, 6, 9, 12, 14 *0..1 5, 13, 15, 16

8 8 Ingeniería del Software Diagrama de Jacobson Cambiar Médico Cabecera (2) 1: Paciente proporciona NSS 2: Obtener Paciente dado el NSS 3: Obtener NSS 4: Obtener médico de cabecera del Paciente 5: Obtener médico de cabecera del Paciente 6: Obtener médicos disponibles (no han llegado al máximo) 7: Obtener máximo Pacientes 8: Obtener sus Pacientes asignados 9: Obtener nombre del médico 10: Obtener nombre 11: Paciente escoge nuevo médico de cabecera 12: Obtener médicos anteriores del Paciente

9 9 Ingeniería del Software Diagrama de Jacobson Cambiar Médico Cabecera (3) 13: Obtener médicos anteriores 14: Cambiar de médico al paciente (dando el anterior y el nuevo). Modificar atributo fechaAsigMed 15: Asignar nuevo médico de cabecera (se puede pedir al médico de cabecera que asigne al paciente) 16: Añadir médico anterior como asignado anteriormente (creará objeto en AsignadoAntes)

10 10 Ingeniería del Software Ejercicios de Análisis  Caso de Uso Reasignar Citas (Junio 2002)  Se pide:  Modelo de Jacobson

11 11 Ingeniería del Software Caso de uso: Reasignar Citas Médico Reasignar Citas

12 12 Ingeniería del Software Modelo de Dominio Paciente dni nss nombre teléfono Médico numColegiado nombre maxPacientes 0..1 1 Cita fechaYHora suPacientesuMedico **

13 13 Ingeniería del Software Caso de Uso Expandido: Reasignar Citas Caso de uso: Reasignar Citas Actores:Médico Descripción:El médico médico quiere reasignar a otro médico las citas de un dia determinado Curso normal de los eventos

14 14 Ingeniería del Software Caso de Uso Expandido: Reasignar Citas Curso normal de los eventos 1.Médico: Este caso de uso empieza cuando el médico quiere reasignar a otro médico las citas de un dia determinado. Se identifica dando su número de colegiado e indica el día que quiere cancelar sus citas. 2.Sistema: Reasigna las citas del médico a otro médico, siempre que tenga una cita no asignada a la misma hora. Genera un listado con todas las citas canceladas o reasignadas (nombre del paciente, teléfono, fecha y hora cita, y si se ha podido, el nombre del nuevo médico asignado) Nota: Se supone que los objetos de la clase Cita ya estarán creados para todos los médicos de cabecera. Para cancelar una cita con un médico, y para que no se le reasigne más adelante otro paciente, simplemente borraremos el objeto cita.

15 15 Ingeniería del Software Diagrama de Jacobson Reasignar Citas (1) :Médico :IURC :Médico Cabecera :Paciente :Cita :GestorCitas 1 2, 6, 9 8 *10..1* 3, 4 5, 7, 10, 11, 12, 13

16 16 Ingeniería del Software Diagrama de Jacobson Reasignar Citas (2) 1: Proporcionar número de colegiado y fecha de cancelación de citas 2: Buscar citas del médico 3: Obtener número de colegiado 4: Obtener sus citas 5: Obtener obtener fecha 6: Obtener obtener datos (teléfono, nombre) del paciente de la cita 7: Obtener paciente 8: Obtener datos (teléfono, nombre) del paciente 9: Reasignar cita a otro médico (devuelve el nuevo médico asignado, si ha podido) 10: Obtener fecha 11: Obtener paciente (ver si cita está libre) 12: Asignar paciente anterior 13: Borrar cita

17 17 Ingeniería del Software Diagrama de Jacobson Cambiar Médico Cabecera (3) 13: Obtener médicos anteriores 14: Cambiar de médico al paciente (dando el anterior y el nuevo) 15: Asignar nuevo médico de cabecera (se puede pedir al médico de cabecera que asigne al paciente) 16: Añadir médico anterior como asignado anteriormente (creará objeto en AsignadoAntes)

18 18 Ingeniería del Software Ejercicios de Análisis  Caso de Uso Trasladar Empleado (Febrero 2003)  Se pide:  Diagrama de Secuencia del Sistema  Contratos  Modelo de Jacobson

19 19 Ingeniería del Software Ejercicio 1: Caso de uso: Traslado empleado DIRECTOR PERSONAL Trasladar empleado

20 20 Ingeniería del Software Modelo de Dominio Empleado Nombre Apellido Departamento Nombre /Empleados dirige 11 *1 Asignado Cargo FechaInicio Salario director

21 21 Ingeniería del Software Caso de Uso Expandido: Trasladar empleado Caso de uso: Trasladar empleado Actores:Director Personal Descripción:El director de personal traslada un empleado de un departamento a otro. Curso normal de los eventos

22 22 Ingeniería del Software Caso de Uso Expandido: Trasladar empleado Curso normal de los eventos 1.Director de Personal: Este caso de uso empieza cuando el director de personal quiere trasladar a un empleado de un departamento a otro. 2.Sistema: Muestra todos los departamentos existentes en la empresa. 3.Director de Personal: Selecciona el departamento origen. 4.Sistema: Muestra los datos de todos los empleados del departamento origen menos los de su director. 5.Director de Personal: Selecciona un empleado. 6.Sistema: Muestra todos los departamentos existentes en la empresa menos el departamento origen. 7.Director de Personal: Selecciona el departamento destino. 8.Sistema: Pregunta por los datos de la nueva asignación departamental. 9.Director de Personal: Introduce los datos de la nueva asignación departamental. 10.Sistema: Presenta un resumen de los datos de la operación y pide una confirmación. 11.Director de Personal: Confirma el traslado. 12.Sistema: Actualiza los datos del empleado y de los departamentos involucrados.

23 23 Ingeniería del Software Diagrama secuencia sistema: Trasladar empleado :Director Personal :Sistema ObtenerListaDep() : listaDep SeleccionarDep(nombreDO) : listaDep ObtenerListaEmp(nombreDO) : ListaEmp SeleccionarDep(nombreDD) : listaDep SeleccionarEmp(nombre, apellido) : info PreguntarDatosAsig(Cargo, FechaInicio, Salario) : info TrasladarEmp(ok)

24 24 Ingeniería del Software Contrato operación ObtenerListaDep  Name:ObtenerListaDep() : listaDep  Responsabilities Obtiene en ListaDep todos los Nombres de los departamentos existentes en la empresa.  Preconditions La empresa tiene departamentos  Postconditions  Salida listaDep = conjunto de los Nombres de todos los departamentos de la empresa

25 25 Ingeniería del Software Contrato operación SeleccionarDep  Name:SeleccionarDep(nombreD) : listaDep  Responsabilities Presenta todos los Nombres de listaDep y permite seleccionar a uno de ellos: nombreD. Luego, lo elimina de listaDep.  Preconditions Se dispone de ListaDep  Postconditions  Salida ListaDep = ListaDep – {nombreD}

26 26 Ingeniería del Software Contrato operación ObtenerListaEmp  Name: ObtenerListaEmp(nombreDO) : listaEmp  Responsabilities Obtiene en ListaEmp todos los Nombres y Apellidos de los empleados del departamento nombreDO, excepto a su director.  Preconditions Se dispone de nombreDO  Postconditions  Salida listaTemp = Nombres y Apellidos de los empleados del departamento nombreDO director = Nombre y Apellidos del director del departamento nombreDO listaEmp = listaTemp – {director}

27 27 Ingeniería del Software Contrato operación SeleccionarEmp  Name:SeleccionarEmp(nombre, apellido) : Info  Responsabilities Presenta todos los Nombres y Apellidos de los Empleados de ListaEmp y permite seleccionar a uno de ellos por su nombre y apellido.  Preconditions Se dispone de listaEmp  Postconditions  Salida Info = nombreDO, nombre, apellido, cargo, FechaInicio, salario

28 28 Ingeniería del Software Contrato operación PreguntarDatosAsig  Name:PreguntarDatosAsig(cargo, FechaInicio, salario) : info  Responsabilities Pregunta y obtiene nuevo cargo y salario del empleado. Presenta un resumen de los datos del traslado: departamento origen, destino, empleado, cargo y salario.  Preconditions cargo != director, Salario > 0 Se dispone de nombreDO, nombreDD, nombreE, apellidoE  Postconditions  Salida info = nombreDO, nombreDD, nombreE, apellidoE, cargo, FechaInicio, salario

29 29 Ingeniería del Software Contrato operación TrasladarEmp  Name: TrasladarEmp(ok)  Responsabilities Pide la confirmación del traslado y en caso afirmativo, actualiza los datos.  Preconditions Se dispone de: nombreDO, nombreDD, nombreE, apellidoE, cargo y salario.  Postconditions  Se da de baja asociación Asignado entre Empleado con nombre nombreE y apellido apellidoE, y Departamento nombreDO.  /Empleados = /Empleados – 1 en Departamento nombreDO  Se da de alta asociación Asignado entre Empleado nombreE y Departamento nombreDD con nuevos cargo, salario y fecha: Asignado.cargo = cargo; Asignado.salario = salario; Asignado.FechaInicio = FechaInicio  /Empleados = /Empleados + 1 en Departamento nombreDD  Salida

30 30 Ingeniería del Software Diagrama de Jacobson Trasladar Empleado (1) :Director Personal :IUTE :Departamento :Empleado :Asignado 1* :GestorDepartamentos 1, 4, 9, 10, 11, 12 11 2, 5, 13 83, 6, 7, 16, 17 14, 15

31 31 Ingeniería del Software Diagrama de Jacobson Trasladar Empleado (2) 1: Iniciar traslado 2: Obtener lista departamentos 3: Obtener nombre departamento 4: Seleccionar departamento 5: Obtener lista empleados menos director 6: Obtener empleados del departamento 7: Obtener director del departamento 8: Obtener nombre y apellidos de los empleados 9: Elegir empleado 10: Seleccionar departamento nuevo 11: Dar cargo y fecha 12: Confirmar datos

32 32 Ingeniería del Software Diagrama de Jacobson Trasladar Empleado (3) 13: Trasladar el empleado 14: Borrar la vieja asignación 15: Crear la nueva asignación empleado, con cargo y sueldo 16: Decrementa número de empleados del departamento viejo 17: Incrementa número de empleados del departamento nuevo.

33 33 Ingeniería del Software Ejercicios de Análisis  Caso de Uso Verificar Pedido (Junio 2003)  Se pide:  Diagrama de Secuencia del Sistema  Contratos  Modelo de Jacobson

34 34 Ingeniería del Software Ejercicio 2: Caso de uso: Verificar Pedido TRABAJADOR Verificar Pedido

35 35 Ingeniería del Software Modelo de Dominio Producto Código: string Nombre: string Cantidad: int Pedido fechaYHora: date código: int estado: string * LineaPedido cantidad: int *

36 36 Ingeniería del Software Caso de Uso Expandido: Verificar Pedido Caso de uso: Verificar Pedido Actores:Trabajador Descripción:Comprueba la cantidad en stock de los productos de un pedido Curso normal de los eventos 1.Trabajador: Este caso de uso empieza cuando el trabajador quiere servir un determinado pedido proporcionando su código. 2.Sistema: Comprueba que haya suficiente cantidad de cada producto del pedido. En caso afirmativo, se actualiza el stock de cada producto, se actualiza el estado del pedido a “servido” y se informa al trabajador que el pedido se puede servir correctamente. En caso negativo, ni el stock ni el pedido se modifican y se informa al trabajador de los productos cuya falta de stock impide servir el pedido.

37 37 Ingeniería del Software Diagrama secuencia sistema: Verificar Pedido :Trabajador ObtenerPedido(código) : pedido ComprobarCantidades(pedido) : HayDeTodo [HayDeTodo] ActualizarStock(pedido) [no HayDeTodo] InformarCarencias(pedido): ListaPCC :Sistema

38 38 Ingeniería del Software Contrato operación ObtenerPedido  Name: ObtenerPedido(código) : pedido  Responsabilities:  Localizar Pedido.código = código  Preconditions:  Existe un pedido p de Pedido.código = código  Postconditions:  Salida: p

39 39 Ingeniería del Software Contrato operación ComprobarCantidades  Name: ComprobarCantidades(pedido) : booleano  Responsabilities:  Verificar que hay suficiente stock para formalizar el pedido  Preconditions:  Postconditions:  Salida: HayDeTodo = cierto si para cada producto prod asociado a la línea de pedido lp asociada a pedido, lp.cantidad < prod.cantidad

40 40 Ingeniería del Software Contrato operación ActualizarStock  Name: ActualizarStock(pedido)  Responsabilities:  Actualizar la cantidad de cada producto según el pedido  Preconditions:  Postconditions:  Para cada producto prod asociado a la línea de pedido lp y al pedido, prod.cantidad = prod.cantidad – lp.cantidad  pedido.estado = “servido”  Salida:

41 41 Ingeniería del Software Contrato operación ActualizarStock  Name: InformarCarencias(pedido)  Responsabilities:  Mostrar los productos de los cuales no hay stock suficiente  Preconditions:  Postconditions:  Salida:  ListaProductosConCarencia = Todos los productos prod asociados a la línea de pedido lp y al pedido donde lp.cantidad < prod.cantidad

42 42 Ingeniería del Software Ejercicios de Análisis  Caso de Uso Modificar Reserva (Febrero 2004)  Se pide:  Diagrama de Secuencia del Sistema  Contratos  Modelo de Jacobson

43 43 Ingeniería del Software Ejercicio 2: Caso de uso: Modificar Reserva SOCIO Modificar Reserva ENCARGADO

44 44 Ingeniería del Software Caso de uso: Modificar Reserva Actores:Socio, Encargado Descripción:Un socio del club de tenis solicita el cambio de una reserva para una nueva fecha y hora determinadas. El encargado verifica la disponibilidad de pistas para esa nueva fecha y hora, y hace efectivo el cambio. Curso normal de los eventos: 1.Socio: Este caso de uso comienza cuando un socio solicita al encargado que quiere modificar una reserva del club de tenis. El Socio se identifica, proporciona la fecha y hora de la reserva actual y facilita la fecha y horas de la nueva reserva. 2.Encargado: Identifica al socio. 3.Sistema: Presenta la información del socio y sus reservas. 4.Encargado: Verifica la reserva a anular y la selecciona. 5.Sistema: Comprueba la fecha de la reserva a cancelar con la fecha actual. 6.Encargado: Introduce la fecha de la nueva reserva. 1.Sistema: Para esa fecha, presenta los horarios de las pistas no reservadas (libres). 2....

45 45 Ingeniería del Software... 8.Encargado: Verifica la hora que quiere reservar el socio, asigna alguna de las pistas al socio para el horario solicitado y confirma la nueva reserva. 9.Sistema: Registra la cancelación de la reserva antigua y le asigna tarifa T4 (cancelación). Registra la nueva reserva sin asignarle tarifa. Cursos alternativos: Paso 3. No se trata de un Socio. Sugerir hacerse socio. Paso 4. El socio no tenia reserva para esa fecha y horario. Paso 5. El socio quiere cancelar una reserva para el mismo día. Paso 7. La nueva fecha es superior a un mes a la fecha actual. Paso 8. No hay pistas libres para la nueva fecha y horarios solicitados.

46 46 Ingeniería del Software Modelo de dominio ** * 1 Socio dni tel... Pista Número pista Reserva num fecha Hora /importe Tarifa tipo precio

47 47 Ingeniería del Software Diagrama secuencia sistema: Modificar Reserva :Encargado IdentificarSocio(dni) : socio Reservas(dni) : ListaReservas ComprobarFechaV(fechaV) : fVOk [fVOk and fNOk] Registrar(socio,fechaV,fechaN,hora,pistaV, pistaN) [fVOk and fNOk] PistasLibres(fechaN) : ListaPistas :Sistema ComprobarFechaN(fechaN) : fNOk

48 48 Ingeniería del Software Contrato operación IdentificarSocio  Name:IdentificarSocio(dni) : socio  Responsabilities Obtener la información del socio.  Preconditions Dni es un código válido  Postconditions  Salida La información disponible sobre el socio con dni

49 49 Ingeniería del Software Contrato operación Reservas  Name:Reservas(dni) : ListaReservas  Responsabilities Obtener las reservas de un socio.  Preconditions Dni es un código válido.  Postconditions  Salida ListaReservas = todas las reservas pendientes que el socio ha realizado. Para cada una se obtiene también el número de pista reservada

50 50 Ingeniería del Software Contrato operación ComprobarFechaV  Name: ComprobarFechaV(fechaV) : fVOk  Responsabilities Identificar y verificar la reserva que se quiere anular.  Preconditions fechaV es una fecha válida  Postconditions  Salida fVOk es cierto si fechaV no es la fecha actual

51 51 Ingeniería del Software Contrato operación ComprobarFechaN  Name: ComprobarFechaN(fechaN) : fNOk  Responsabilities Comprobar que la fecha de la nueva reserva es anterior a un mes a la fecha actual  Preconditions fechaN es una fecha válida  Postconditions  Salida fNOk es cierto si fechaN es menor a la fecha actual más un mes

52 52 Ingeniería del Software Contrato operación PistasLibres  Name: PistasLibres(fechaN) : ListaPistas  Responsabilities Obtener las pistas no reservadas para una fecha concreta  Preconditions fechaN es una fecha válida  Postconditions  Salida ListaPistas = Listado de pistas y horas no reservadas para la fechaN

53 53 Ingeniería del Software Contrato operación Registrar  Name: Registrar(socio,fechaV,fechaN,hora,pistaV,pistaN)  Responsabilities Registrar la modificación de la reserva  Preconditions fechaV y fechaN son fechas válidas  Postconditions Se asigna a la reserva R con R.fecha = fechaV asociada al socio y pistaV la tarifa T con T.tarifa=T4 Se crea una nueva instancia reserva NR con NR.fecha=fechaN y NR.hora=hora Se asocia NR al socio y a la pistaN  Salida

54 54 Ingeniería del Software Ejercicio de Análisis  Caso de Uso Anular Reservas Pista (Junio 2004)  Se pide:  Diagrama de secuencia del sistema  contratos

55 55 Ingeniería del Software Caso de uso: Anular Reservas Pista Anular Reservas Pista ENCARGADO

56 56 Ingeniería del Software Modelo de dominio (1) ** * 1 Socio dni tel e-mail Pista Número pista Reserva num fecha hora /importe Tarifa tipo precio

57 57 Ingeniería del Software Diagrama secuencia sistema: Anular Reservas Pista :Encargado :Sistema ConsultarReservas(fecha,pista) : reservas ConfirmarAnulación() : anular [anular] Reasignar(fecha,pista) : reasignadas [anular] Anular(fecha,pista) : anuladas

58 58 Ingeniería del Software operación ConsultarReservas  Name:ConsultarReservas(fecha,pista) : reservas  Responsabilities Obtener las reservas no canceladas (que no tengan la tarifa T4) para esa fecha de la pista  Preconditions Argumentos no nulos y válidos (la fecha no es la actual ni la superior a un mes a la fecha actual)  Postconditions  Salida Reservas = Todas las reservas para la fecha y pista determinada

59 59 Ingeniería del Software operación ConfirmarAnulación  Name:ConfirmarAnulación() : anular  Responsabilities Consultar la Confirmación de la anulación  Preconditions  Postconditions  Salida anular = cierto si confirma la anulación

60 60 Ingeniería del Software operación Reasignar  Name:Reasignar(fecha,pista) : reasignadas  Responsabilities Buscar para la misma hora una pista libre np para toda reserva r de esa fecha.  Preconditions argumentos no nulos y válidos  Postconditions  Eliminar la reserva r  Crear una nueva reserva nr para la misma fecha y hora para la pista np  Asociar la reserva nr al socio s y la pista np  Salida reasignadas = lista de e-mail, fecha, hora, pista y np

61 61 Ingeniería del Software operación Anular  Name:Anular(fecha,pista) : anuladas  Responsabilities Eliminar toda reserva r de esa fecha que para su misma hora no hay una pista libre.  Preconditions argumentos no nulos y válidos  Postconditions  Eliminar la reserva r  Salida anuladas = lista de e-mail, fecha, hora, pista

62 62 Ingeniería del Software Ejercicio de Análisis  Caso de Uso Comprar Entradas Numeradas (Febrero 2005)  Se pide:  Diagrama de secuencia del sistema  contratos

63 63 Ingeniería del Software Ejercicio 3: Comprar Entradas Numeradas CLIENTE Comprar entradas numeradas TAQUILLERA

64 64 Ingeniería del Software Modelo de dominio 1* 1 * Multicine dni tel... Película título metraje /venta Pase fecha /venta Localidad fila asiento vendida ** Sala número aforo

65 65 Ingeniería del Software Caso de uso: Comprar entradas numeradas Actores:Cliente, Taquillera Descripció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....

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

67 67 :Taquillera ConsultarPases(título) : listaInfoPases ConsultarEstadoLocalidades(titulo, sala, fecha) : listaInfoLocalidades SeleccionarLocalidades(listaLocalidades) : importe :Sistema RegistrarVenta(listaLocalidades, importe, monto) : cambio * Diagrama de secuencia de sistema

68 68 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.  Preconditions El 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

69 69 Contrato operación ConsultarEstadoLocalidades  Name:ConsultarEstadoLocalidades(título, sala, fecha) : listaInfoLocalidades  Responsabilities Seleccionado un pase, obtener la información de las localidades libres y las ya vendidas  Preconditions El 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

70 70 Contrato operación SeleccionarLocalidades  Name:Seleccionarlocalidades(listaLocalidades) : importe  Responsabilities Calcula y presenta el importe total de las localidades seleccionadas en listaLocalidades (lista de ).  Preconditions listaLocalidades es válido  Postconditions  Salida Importe = precio total de las localidades vendidas (cardinalidad de listaLocalidades * precioEntrada)

71 71 Contrato operación RegistrarVenta  Name:RegistrarVenta(listaLocalidades, importe, pago) : cambio  Responsabilities Calcula 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 ).  Preconditions listaLocalidades es válido, importe <= pago.  Postconditions Para cada localidad l de listaLocalidades l.vendida = true Para 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 |  Salida cambio = pago – importe (y emitir las localidades de listaLocalidades)


Descargar ppt "1 Ingeniería del Software Ejercicios de Análisis  Caso de Uso Cambiar Médico Cabecera (Enero 2002)  Caso de Uso Reasignar Citas (Junio 2002)  Caso de."

Presentaciones similares


Anuncios Google