Download - 03.DS.restaurante
-
Facturacin de un Restaurante
Modelo de Dominio
Ejemplo Completo
Diagrama de clases
Descripcin de las clases
-
Modelo de Casos de Uso
Diagrama de Casos de Uso
Descripcin breve de los casos de uso
Descripcin detallada de los casos de uso
Nombre: Emitir Factura de una Mesa Actores: Camarero Precondiciones: Trigger: - Escenario Primario:
1. El camarero selecciona una mesa. 2. El camarero obtiene la factura de la mesa. 3. El camarero emite la factura. 4. El sistema confirma la emisin de la factura.
Extensiones: 2a. La mesa no tiene ninguna consumicin realizada
1. El sistema comunica la incidencia.
-
Diagrama de Secuencia: Caso de Uso Emitir Factura de una Mesa (versin Centralizada)
Solucin centralizada con clase de apoyo de lgica. Debe ser el punto de partida del alumno
para asimilar los conceptos de los diagramas de secuencia.
http://www.websequencediagrams.com/
EmitirFactura->Mesa: getConsumiciones()
activate EmitirFactura
activate Mesa
Mesa->EmitirFactura: consumiciones
loop (0, consumiciones.size)
EmitirFactura->Consumicion: getUnidades()
activate Consumicion
Consumicion->EmitirFactura: unidades
EmitirFactura->Consumicion: getProducto()
Consumicion-> EmitirFactura: p
deactivate Consumicion
EmitirFactura->Producto: getPrecio()
activate Producto
Producto->EmitirFactura: precio
deactivate Producto
EmitirFactura-> EmitirFactura: calcularPrecioConsumicion()
end
EmitirFactura-> EmitirFactura: calcularFactura()
-
Diagrama de clases resultante
-
Diagrama de Secuencia: Caso de Uso Emitir Factura de una Mesa (versin Distribuida)
Solucin distribuida. Se deber pensar la solucin adecuada para cada caso. En este caso
concreto, no tiene sentido la clase de apoyo la clase EmitirFactura y se puede afirmar que la
solucin distribuida es ms elegante, desde el punto de vista de diseo, que la centralizada.
http://www.websequencediagrams.com/
Usuario->Mesa: facturar()
activate EmitirFactura
activate Mesa
loop (0, consumiciones.size)
Mesa->Consumicion: facturar()
activate Consumicion
Consumicion->Producto: getPrecio()
activate Producto
Producto->Consumicion: precio
deactivate Producto
Consumicion-> Consumicion: calcularPrecio()
Consumicion-> Mesa: precioConsumicion
deactivate Consumicion
Mesa-> Mesa: calcularFactura()
end
Mesa-> Usuario: importeFactura
En este caso, el diagrama de clases resultante no genera nueva dependencias.