17
UML: Contratos Gonzalo Rojas D.

Gonzalorojas 11 Uml, Diagrama De Colaboracion

  • Upload
    spimy

  • View
    44.552

  • Download
    0

Embed Size (px)

DESCRIPTION

Realizadas por Gonzalo Rojas

Citation preview

Page 1: Gonzalorojas 11 Uml, Diagrama De Colaboracion

UML: Contratos

Gonzalo Rojas D.

Page 2: Gonzalorojas 11 Uml, Diagrama De Colaboracion

:Sistema:Cajero

crearNuevaVenta()

introducirArtículo(artID, cantidad)

descripción, total

*[más artículos]

finalizarVenta()

total con impuestos

realizarPago(cantidad)

vuelto, recibo

Procesar Venta1. El Cliente llega a la caja2. El Cajero inicia una nueva venta3. El Cajero inserta el identificador

del artículo4. El Sistema registra la línea de

venta y presenta la descripción del artículo, precio y suma parcial

5. El Cajero repite los pasos 3 y 4 hasta que se indique

6. El Sistema muestra el total con los impuestos calculados

7. El Cajero le dice al Cliente el total y le pide que le pague

8. El Cliente paga y el Sistema gestiona el pago…

Page 3: Gonzalorojas 11 Uml, Diagrama De Colaboracion

-descripción-precio-artID

DescripcióndeProductoCatálogo

Caja

Cajero

-fecha-hora

Venta

-monto

Pago Cliente

1..*

1..1

1..1

1..*1..1

1..1

1..1

1..1

1..1

1..1

0..*

1..1

1..1 1..*

Producto1..1

0..*

-cantidad

VentaLíneadeProducto

0..*1..1

0..1

1..*

Page 4: Gonzalorojas 11 Uml, Diagrama De Colaboracion

Contratos

• Documentos que describen el comportamiento del sistema cuando una de sus operaciones es invocada

• Da cuenta de los cambios de estado del sistema al ejecutar las acciones gatilladas por el mensaje de invocación.

Page 5: Gonzalorojas 11 Uml, Diagrama De Colaboracion

Elaboración de Contrato (Larman)

1. Identificar las operaciones del sistema a partir del DSS

2. Elaborar un contrato para cada operación

3. Describir las responsabilidades de la operación

4. Describir las poscondiciones de la operación:1. Creación y eliminación de instancias

2. Modificación de atributos

3. Asociaciones formadas y canceladas

Page 6: Gonzalorojas 11 Uml, Diagrama De Colaboracion

Nombre: introducirProducto (artID:entero, cantidad:entero)

Responsabilidades: Registrar la venta de un producto y agregarla a la venta. Mostrar la descripción y el precio del producto.

Tipo: Sistema

Referencias: Caso de Uso: Procesar Venta

Notas: Utilizar acceso indexado a la base de datos

Excepciones: Si el artID no es válido, indicar error

Salida: --

Precondiciones: Sistema conoce el artID.

Postcondiciones: •Si se trata de una nueva venta, se creó una Venta (creación de instancia)

•Si se trata de una nueva venta, la nueva Venta fue asociada a Caja (asociación formada)

•Se creó una instancia VentasLíneadeProducto (creación de instancia)

•Se asignó cantidad a VentasLíneadeProducto.cantidad (modificación de atributo)

•Se asoció una instancia VentasLíneadeProducto a la instancia DescripcióndeProducto, en base a la correspondencia de artID (asociación formada)

Page 7: Gonzalorojas 11 Uml, Diagrama De Colaboracion

UML: Diagramas de Colaboración

Gonzalo Rojas D.

Page 8: Gonzalorojas 11 Uml, Diagrama De Colaboracion

Diagramas de Interacción

• Herramientas UML para describir la interacción de los objetos del sistema por medio de mensajes.

• Se describe el flujo de mensajes para hacer cumplir las poscondiciones de los distintos contratos.

• Dos tipos: de secuencia y de colaboración

Page 9: Gonzalorojas 11 Uml, Diagrama De Colaboracion

Diag.de colaboración: Notación

:Caja :Venta

mens1()

1:agregarPago(monto:entero)

:Caja :Venta

mens1()

1:mensaje1()2:mensaje2()3:mensaje3()

Page 10: Gonzalorojas 11 Uml, Diagrama De Colaboracion

Diag.de colaboración: Notación

:Caja :Venta

mens1()

1: tot := total() : entero

:Caja :Venta

mens1()

1*: li :=siguienteLíneadeProducto(): VentasLíneadeProducto

Page 11: Gonzalorojas 11 Uml, Diagrama De Colaboracion

Diag.de colaboración: Notación

:Caja :Venta

mens1()

1*: [i := 1..10] li :=siguienteLíneadeProducto(): VentasLíneadeProducto

:Caja

mens1()

1: limpiar()

Page 12: Gonzalorojas 11 Uml, Diagrama De Colaboracion

Diag.de colaboración: Notación

:A miB :B

mens1()

1*: [i := 1..10] mens2()

miC :C2*: [i := 1..10] mens3()

Page 13: Gonzalorojas 11 Uml, Diagrama De Colaboracion

Diag.de colaboración: Notación

:Caja :Venta1: [nueva venta] crear()

:VentaLíneadeProducto

1.1: crear()

mens1()

Page 14: Gonzalorojas 11 Uml, Diagrama De Colaboracion

Diag.de colaboración: Notación

:Venta vl: VentaLíneadeProducto1: crear()

2: agregarElemento(vl)

mens1()

:VentaLíneadeProducto

Page 15: Gonzalorojas 11 Uml, Diagrama De Colaboracion

Diagrama Colaboración

:Caja :Venta v :VentaLíneadeProducto

:VentaLíneadeProducto

:Catálogo

:DescripcióndeProducto

introducirProducto (artID, cantidad)

1: [nueva venta] crear()3: añadirLíneadeProducto (p, cantidad)

2: dp := encontrarDP(artID)

2.1: dp := encontrar(artID)

1.1: crear()

3.2: agregar (v)

3.1: crear (dp, cantidad)

Page 16: Gonzalorojas 11 Uml, Diagrama De Colaboracion

(Otro) Diagrama Colaboración

:Caja :Venta vlp :VentaLíneadeProducto

:VentaLíneadeProducto

1: terminar()2: tot := total()

2.1*: [para cada] vlp := siguiente()

2.2 st := subtotal()

dp:DescripcióndeProducto

2.2.1 precio := precio()

Page 17: Gonzalorojas 11 Uml, Diagrama De Colaboracion

-crear(in dp, in cantidad)-subtotal() : int

-cantidad

VentaLíneadeProducto

-dirección-nombre

Tienda

-encontrarDP(in artID) : DescripcióndeProducto

Catálogo

Cajero

-crear()-terminar()-total() : int-añadirLíneadeProducto(in dp, in cantidad)

-fecha-hora-estado: {en progreso, terminada}

Venta

-monto

Pago Cliente

1..*

1..1

1..1

1..*

1..1

1..1

1..1

1..1

1..1 1..1

0..*

1..11..1

0..*

1..1 1..*

0..*

0..1

1..1

1..1

1..1

0..*

Producto

-precio() : int

-descripción-precio-artID

DescripcióndeProducto

-introducirArtículo(in artID, in cantidad)-finalizarVenta()

Caja