03.ds.restaurante

5

Click here to load reader

Upload: daves-growney

Post on 05-Nov-2015

217 views

Category:

Documents


1 download

DESCRIPTION

DS restuarant

TRANSCRIPT

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