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.

Slides:



Advertisements
Presentaciones similares
3/23/2017 Manual de Uso Para SAM 2003_CorpTemplate-V3.ppt.
Advertisements

Para desarrollar esta parte debemos de: 1
integridad referencial
Casos de Uso – 2ª Parte Especificación Is-in-400.blogspot.com
Diseño de la Interfaz de Usuario
Sistema de Corretaje de Propiedades
Ingeniería del Software
Bienvenido a Marangatu'i, Módulo del Contribuyente de la SET!
TEMA 8: DIAGRAMAS EN UML.
CLIENTE / PROVEEDOR.
Ingeniería del Software
1 Ingeniería del Software Ejercicios de Captura de Requerimientos Reservas de casas rurales (Febrero 2003) Reservas de pistas de tenis (Junio 2003) Reservas.
A continuación explicamos los pasos a seguir para cargar un pedido en nuestra página web. 1.Ingresar a 2. Loguearse.
Tablero (Panel) de Control… Ventas… Inventarios…
PROMETEO EXPRESS OBJETIVOS REQUISITOS SISTEMA DE GESTION
Primera Forma Normal En una relación (tabla) no pueden existir grupos de repetición, es decir, un atributo no puede tomar más de un valor del dominio subyacente:
Investigación de Operaciones II
Modelo Entidad Relación E-R
Solución para Mayoristas Mercados de Abastos
GLOBAL ON LINE MANUAL DEL USUARIO COMO COMPRAR EN GLOBAL ON LINE COMO INGRESAR AL CARRITO DE COMPRAS DATOS DE SU EMPRESA COMO REALIZAR LA BUSQUEDA DE UN.
Casos de Uso. Módulo Administrador
Declaración de Operaciones
ANÁLISIS Y DISEÑO DESDE UNA PERSPECTIVA ORIENTADA A OBJETOS Alan Vargas.
Igor Santos Grueiro. Ahora tenemos datos y datos …
SIA Sistema Integrado de Admisión
Febrero 2008 Guía para el Registro de Casos TFI en ARC.
Como empezar en Access 2000 Abrir Access 2000 Pulsamos INICIO
Lenguajes Formales de Consulta
“Nuevo sistema de colocación de Pedidos”
UNIDAD 3: “Desarrollo Orientado a Objetos con UML”
HERRAMIENTA DE GESTION DE VENTAS Departamento de Electrónica Diseño y Programación Orientados a Objetos Cristian Hernández C Daniel Spataris.
Análisis y Diseño Orientado a Objetos utilizando UML
ANALISIS Y DISEÑO DE SISTEMA Ing. Sanchez Castillo Eddye Arturo
INGENIERIA DE SOFTWARE
Casos de Uso Usuarios Insertar Usuarios Modificar Usuarios
Ejercicio 2 Ejercicio 3. Ejercicio 4 Ejercicio 6.

ANUALIDADES ORDINARIAS (VENCIDAS) Y ANTICIPADAS
Ingeniería del Software
CASOS DE USO Ing. Sonia Godoy H..
Ingeniería del Software
Modelo Entidad Relación
Ingeniería del Software
NUEVO DISEÑO SITIO WEB EXPLORA REGIÓN METROPOLITANA Resultados en cuanto a tráfico, posicionamiento y nuevas herramientas.
Bases de Datos en Excel Microsoft Excel aporta al usuario la posibilidad de trabajar con tablas de información: nombres, direcciones, teléfonos, zonas,
TEMA 9: DIAGRAMA DE CLASE EN UML
Casos de Uso Sistema Viáticos y Kilometraje (VyKi)
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.
Ingeniería del Software 2002
Documentación de Control de Inventarios
1 Ingeniería del Software Ejercicio 3: Películas de mayor éxito ESTRATEGA Obtener mejores películas.
Emp. de Transp. EMTRAFESA “AVE FENIX”
PRÁCTICA 3: DISEÑO CENTRADO EN EL USUARIO Pedro Rivero Barrera Gonzalo Serrano Espada.
Utilizar Costo Promedio Ponderado en el Software Administrativo SAW
PROYECTO Algoritmos, Estructuras y Programación I.
Modificaciones o Cambios
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.
1 Ingeniería del Software Ejercicio 2: Caso de uso: Anular Reservas Pista Anular Reservas Pista ENCARGADO.
Práctico 1 Letra de ejercicios 4 y 5 + Trabajo práctico 1
Bases de Datos y Sistemas de Gestión de Bases Relacionales.
RUTH HARATZ.  Ingresos: El auditor nocturno tiene la responsabilidad de por la noche realizar el cierre de ingresos por departamentos y el día siguiente.
1 Ingeniería del Software Caso de uso 07: Search Animal :Cliente :Sistema BuscarAnimal(cadena) : ListaAnimal [ SeeAnimal(productid) ]
Solmicro-eXpertis Compras: Curso online
1 Introducción de datos Modelo de presentación para adaptación y uso en el taller de formación para personal de la encuesta de precios y disponibilidad.
La contabilidad es una herramienta que nos ayuda a conocer la situación financiera de una empresa. Se elaboran diversos documentos, pero inicialmente.
DIAGRAMAS DE SECUENCIA. UML está compuesto por los siguientes diagramas:
Modelado UML Diagramas de Casos de Uso
1 Ingeniería del Software Ejercicio 2: Caso de uso: Anular Reservas Pista Pista más reservada ENCARGADO.
Ingeniería Informática Ingeniería de Software I © 2007 – Objetos Teléfono-Mail Atender teléfono Leer s Iniciar reserva Cliente Conserje Recibir clientes.
Transcripción de la presentación:

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 Ingeniería del Software Ejercicios de Análisis  Caso de Uso Cambiar Médico Cabecera (Junio 2003)  Se pide:  Modelo de Jacobson

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

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 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 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 Ingeniería del Software Diagrama de Jacobson Cambiar Médico Cabecera (1) :Paciente :IUCMC :Médico Cabecera :Paciente :AsignadoAntes ** :GestorMédicos :GestorPacientes 1, , 8, 10 4, 6, 9, 12, 14 *0..1 5, 13, 15, 16

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 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 Ingeniería del Software Ejercicios de Análisis  Caso de Uso Reasignar Citas (Junio 2002)  Se pide:  Modelo de Jacobson

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

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

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 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 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 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 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 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 Ingeniería del Software Ejercicio 1: Caso de uso: Traslado empleado DIRECTOR PERSONAL Trasladar empleado

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

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 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 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 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 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 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 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 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 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 Ingeniería del Software Diagrama de Jacobson Trasladar Empleado (1) :Director Personal :IUTE :Departamento :Empleado :Asignado 1* :GestorDepartamentos 1, 4, 9, 10, 11, , 5, 13 83, 6, 7, 16, 17 14, 15

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 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 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 Ingeniería del Software Ejercicio 2: Caso de uso: Verificar Pedido TRABAJADOR Verificar Pedido

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 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 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 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 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 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 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 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 Ingeniería del Software Ejercicio 2: Caso de uso: Modificar Reserva SOCIO Modificar Reserva ENCARGADO

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)

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 Ingeniería del Software Modelo de dominio ** * 1 Socio dni tel... Pista Número pista Reserva num fecha Hora /importe Tarifa tipo precio

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 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 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 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 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 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 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 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 Ingeniería del Software Caso de uso: Anular Reservas Pista Anular Reservas Pista ENCARGADO

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

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 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 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 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 , fecha, hora, pista y np

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 , fecha, hora, pista

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 Ingeniería del Software Ejercicio 3: Comprar Entradas Numeradas CLIENTE Comprar entradas numeradas TAQUILLERA

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 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 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 :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 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 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 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 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)