Post on 07-Mar-2015
1
Ingeniería del Software
Examen Junio 2003-2004
2a Parte: Captura de Requisitos: Taller Automatik
Se pide:
Diagrama de Casos de Uso Casos de uso expandido Modelo de Dominio
2
Ingeniería del Software
Jerarquía de actores
ENCARGADO
MECÁNICO
3
Ingeniería del Software
Casos de uso
CLIENTE
Registrar Vehículo
ENCARGADO
4
Ingeniería del Software
Casos de uso
ENCARGADO
Generar Facturas
5
Ingeniería del Software
Casos de uso
CLIENTE
Avisar Cliente
ENCARGADO
6
Ingeniería del Software
Casos de uso
CLIENTE ENCARGADO
Recoger Vehículo
Abonar Factura
<<uses>>
7
Ingeniería del Software
Casos de uso
ENCARGADO
Actualizar Stock
8
Ingeniería del Software
Casos de uso
Reparar VehículoSolicitar HistorialRealizar AcciónSolicitar Pieza
Terminar Reparación
Solicitar Historial
MECÁNICO
<<extends>>
Substituir PiezaConsultar StockSolicitar Pieza
Realizar Acción
<<extends>>
<<extends>>
Solicitar Pieza
<<extends>>
Terminar Reparación
<<extends>>
Consultar Stock
<<extends>>
9
Ingeniería del Software
Ejemplo: Caso de uso de alto nivel
Caso de uso: Registrar Vehículo Actores:Cliente, EncargadoTipo: SecundarioDescripción: El cliente trae un vehículo al taller.
Si es necesario, el encargado registra los datos principales del cliente (dirección, teléfono, etc.), así como las características básicas del vehículo (matrícula, modelo, marca, etc.). Por último, el encargado añade una breve descripción del motivo de entrada en el taller.
10
Ingeniería del Software
Ejemplo: Caso de uso de alto nivel
Caso de uso: Generar Facturas Actores:EncargadoTipo: SecundarioDescripción: El encargado genera las facturas
pendientes de los vehículos cuya reparación ha terminado. Las facturas detallan cada una de las acciones realizadas, el tiempo empleado en su realización y el importe total de cada acción, así como las piezas que se hayan sustituido y su precio. El precio final de una reparación contempla la mano de obra del mecánico (número de horas totales por el precio hora) y el precio de las piezas nuevas.
11
Ingeniería del Software
Ejemplo: Caso de uso de alto nivel
Caso de uso: Avisar Cliente Actores:Cliente, EncargadoTipo: SecundarioDescripción: El encargado avisa a los clientes
que tienen facturas pendientes de pago para que recojan sus vehículos reparados.
12
Ingeniería del Software
Ejemplo: Caso de uso de alto nivel
Caso de uso: Recoger Vehículo Actores:Cliente, EncargadoTipo: SecundarioDescripción: El cliente abona la factura de la
reparación y el encargado le hace entrega del vehículo reparado.
13
Ingeniería del Software
Ejemplo: Caso de uso de alto nivel
Caso de uso: Abonar Factura Actores:Cliente, EncargadoTipo: SecundarioDescripción: El cliente abona la factura de la
reparación.
14
Ingeniería del Software
Ejemplo: Caso de uso de alto nivel
Caso de uso: Actualizar Stock Actores:EncargadoTipo: SecundarioDescripción: Cuando llegan nuevas piezas de
los fabricantes, el encargado actualiza su stock.
15
Ingeniería del Software
Ejemplo: Caso de uso de alto nivel
Caso de uso: Reparar Vehículo Actores:MecánicoTipo: PrimarioDescripción: El sistema muestra todos los
vehículos en reparación. Para cada uno de ellos, el sistema indica los que están pendientes de piezas y los que no (puede que haya llegado la pieza que les faltaba). El mecánico selecciona uno de los vehículos en reparación. Para ese vehículo, el mecánico puede solicitar el historial detallado, introducir acciones codificadas o substituir piezas o dar por terminada la reparación.
16
Ingeniería del Software
Ejemplo: Caso de uso de alto nivel
Caso de uso: Solicitar Historial Actores:MecánicoTipo: SecundarioDescripción: El mecánico solicita el historial
detallado de las reparaciones del vehículo. El historial debe incluir para cada reparación, la fecha de entrada y salida del vehículo al taller, su kilometraje, el motivo de entrada, las acciones realizadas y las piezas cambiadas.
17
Ingeniería del Software
Ejemplo: Caso de uso de alto nivel
Caso de uso: Realizar Acción Actores:MecánicoTipo: SecundarioDescripción: El mecánico contempla una serie
de acciones posibles. Las acciones estan codificadas y tienen asociada una descripción.
18
Ingeniería del Software
Ejemplo: Caso de uso de alto nivel
Caso de uso: Substituir Pieza Actores:MecánicoTipo: PrimarioDescripción: Si la reparación requiere sustituir
alguna pieza, el mecánico puede consultar el stock de piezas del almacén. Si no se dispone de la pieza necesaria, se debe solicitar al fabricante, en cuyo caso, la substitución de la pieza debe aplazarse.
19
Ingeniería del Software
Ejemplo: Caso de uso de alto nivel
Caso de uso: Consultar Stock Actores:MecánicoTipo: SecundarioDescripción: El mecánico consulta el stock de
piezas del almacén.
20
Ingeniería del Software
Ejemplo: Caso de uso de alto nivel
Caso de uso: Solicitar Pieza Actores:MecánicoTipo: SecundarioDescripción: El mecánico solicita la pieza a
substituir al fabricante.
21
Ingeniería del Software
Modelo de dominio (1)
Cliente Vehículo
Reparación
1 *
Acción*1
dniNombreteléfono
matrículamarcamodelo
fechaEntradaKmsfechaTerminadafechaSalidamotivo
numHoras
TipoAcción1
descripción
*
Pieza*
1
numPiezasnumPendientes
TipoPieza1
PrecioDescripciónFabricanteenStock
*
Factura
/totalNumHoras/totalPiezas/totalfechaAbono
1
1
22
Ingeniería del Software
Examen Junio 2003-2004
3a Parte: Análisis: Anular Reservas Pista
Se pide:
Diagrama de secuencia del sistema contratos
23
Ingeniería del Software
Caso de uso: Anular Reservas Pista
Anular Reservas Pista
ENCARGADO
24
Ingeniería del Software
Modelo de dominio (1)
* *
*
1
Socio
dnitele-mail
Pista
Número pista
Reserva
numfechahora/importe
Tarifa
tipoprecio
25
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
26
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
PreconditionsArgumentos 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
27
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
28
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.
Preconditionsargumentos 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
Salidareasignadas = lista de e-mail, fecha, hora, pista y np
29
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.
Preconditionsargumentos no nulos y válidos
Postconditions Eliminar la reserva r
Salidaanuladas = lista de e-mail, fecha, hora, pista
30
Ingeniería del Software
Examen Junio 2003-2004
4a Parte: Diseño: ClientesPelicula
Se pide:
Diagrama de secuencia
31
Ingeniería del Software
clie
nte
sPelic
ula
(códig
o)
:GestorClientesPelicula
CP(código)
EntradasPase()
:Pelicula :Pase :Entradas
PasesPelicula()
:Cesta
CestaEntrada()
:Cliente
*
*
ClienteCesta()
nombre,e-mail
nombre,e-mailLista(nombre,
e-mail)
eliminarRepetidos()
Lista(nombre,e-mail)
Lista(nombre,e-mail)
Lista(nombre,e-mail)
32
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.