gonzalorojas 11 uml, diagrama de colaboracion
Post on 26-Jun-2015
44.555 Views
Preview:
DESCRIPTION
TRANSCRIPT
UML: Contratos
Gonzalo Rojas D.
: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…
-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..*
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.
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
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)
UML: Diagramas de Colaboración
Gonzalo Rojas D.
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
Diag.de colaboración: Notación
:Caja :Venta
mens1()
1:agregarPago(monto:entero)
:Caja :Venta
mens1()
1:mensaje1()2:mensaje2()3:mensaje3()
Diag.de colaboración: Notación
:Caja :Venta
mens1()
1: tot := total() : entero
:Caja :Venta
mens1()
1*: li :=siguienteLíneadeProducto(): VentasLíneadeProducto
Diag.de colaboración: Notación
:Caja :Venta
mens1()
1*: [i := 1..10] li :=siguienteLíneadeProducto(): VentasLíneadeProducto
:Caja
mens1()
1: limpiar()
Diag.de colaboración: Notación
:A miB :B
mens1()
1*: [i := 1..10] mens2()
miC :C2*: [i := 1..10] mens3()
Diag.de colaboración: Notación
:Caja :Venta1: [nueva venta] crear()
:VentaLíneadeProducto
1.1: crear()
mens1()
Diag.de colaboración: Notación
:Venta vl: VentaLíneadeProducto1: crear()
2: agregarElemento(vl)
mens1()
:VentaLíneadeProducto
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)
(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()
-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
top related