Está en la página 1de 20

Universidad de Tarapac Tecnologa de Objetos Clase Diagrama de Secuencia

Profesor: Eduardo Jaramillo C. Master of Science in Business Administration MBA Magster en Tecnologas de Informacin y Gestin

Un diagrama de secuencia (DS) describe cmo grupos de objetos colaboran


Tpicamente, captura el comportamiento de un escenario (de un caso de uso):
El diagrama muestra algunos objetos involucrados en el escenario y los mensajes que son pasados entre estos objetos

Nosotros ya vimos un caso particular:


Los diagramas de secuencia del sistema (DSSs) muestran la interaccin entre dos objetos: un actor particular un objeto y el sistema otro objeto

Ahora veremos el caso ms general:


La interaccin entre mltiples objetos
2

Ejemplo: DSS para un escenario de Procesar Venta


elCajero hacerNuevaVenta() ingresarArticulo(identificacion, cantidad) descripcin, totalParcial * [ms artculos] terminarVenta() total con impuestos pagar(cantidad) vuelto, recibo
3

elSistema

un DS relacionado con procesamiento de rdenes


Tenemos una orden y llamamos a una de sus operaciones para calcular su precio:
Primero, la orden necesita mirar todas sus lneas y determinar sus precios, los que estn basados en los precios de los productos de las lneas Luego, la orden debe calcular el descuento total, el que est basado en ciertas propiedades del cliente

El diagrama muestra lo siguiente:


Cada participante con una lnea de vida vertical el tiempo avanza bajando por la lnea El orden de los mensajes leyendo el diagrama de arriba a abajo

unaOrden calcPrecio obtCantidad obtProducto unProducto obtPrecio

unaLinea

unProducto

unCliente

calcPrecioBase

calcDescuento obtInfoDescuento

unaOrden calcPrecio obtCantidad obtProducto mensaje encontrado unProducto obtPrecio

unaLinea

unProducto

unCliente

participante

lnea de vida activacin

retorno

calcPrecioBase llamada a s mismo calcDescuento obtInfoDescuento mensaje

Un DS (bsico) casi no necesita explicacin


Es fcil ver lo siguiente:
Una instancia de Orden enva los mensajes obt-Cantidad y obtProducto a una instancia de Linea La orden llama a un mtodo de s misma, calcDescuento, y ste enva el mensaje obtInfoDescuento a una instancia de Cliente

Pero no todo se muestra igualmente bien:


La secuencia de mensajes obtCantidad, obtProducto, obtPrecio y calcPrecioBase tiene que ejecutarse para cada lnea de la orden esto no puede deducirse del diagrama anterior

Barras de activacin, nombres de participantes


Cada lnea de vida tiene una barra de activacin (o varias), opcional:
Muestra cundo el participante est activo Corresponde a la ejecucin de uno de los mtodos del participante

Poner nombres es til para correlacionar participantes:


La llamada obtProducto retorna unProducto el mismo nombre, y por lo tanto el mismo participan-te, que el unProducto al que se enva la llamada obtPrecio
8

Retornos de llamadas, mensajes encontrados


Los retornos de las llamadas son opcionales:
Conviene incluirlos cuando agregan informacin P.ej., el diagrama muestra slo el retorno de la llamada obtProducto, para explicitar la correspondencia entre el producto retornado y el producto al que se le enva el mensaje obtPrecio a continuacin

El primer mensaje, calcPrecio, no tiene un participante que lo haya enviado:


Proviene de una fuente indeterminada Se conoce como un mensaje encontrado (found message)
9

unaOrden

unaLinea

unProducto parmetro

unCliente

calcPrecio calcPrecio obtPrecio(cantidad)

obtValorDescontado(unaOrden)

obtValorBase

valorDescontado

10

Los participantes pueden colaborar ms descentralizadamente


La orden le pide a cada lnea calcular su propio precio La lnea a su vez le pasa el problema del clculo al producto mismo:
Para ello, pasa como parmetro la cantidad de unidades

Para calcular el descuento, la orden llama a un mtodo del cliente:


Como el cliente necesita informacin de la orden para hacerlo, hace una llamada reentrante (obtValorBase) a la orden para obtener el dato
11

Los DSs muestran claramente cmo interactan los participantes


Los diagramas muestran dos formas claramente diferentes de interaccin entre los mismos cuatro participantes sta es su fortaleza ms importante:
Las llamadas entre participantes se ven claramente Dan una idea realmente buena acerca de cules participantes estn haciendo qu procesamiento

Los DSs no son tan buenos para mostrar detalles de algoritmos:


P.ej., comportamiento condicional o repetitivo
12

y dos estilos opuestos: Control centralizado versus control distribuido


Un diagrama de la transp. muestra control centralizado:
Un participante, unaOrden, prcticamente hace todo el procesamiento los otros slo proporcio-nan datos En general, es ms simple de disear y entender

El otro diagrama de la transp. muestra control distribuido:


El procesamiento es dividido entre varios participantes: unaOrden, unaLinea y unCliente Cada participante ejecuta una parte del algoritmo
13

Las ventajas del control distribuido son las ventajas de la OO


Poner los datos y el comportamiento que los usa juntos es la primera regla de la OO Se localizan los efectos de los cambios:
Los datos y el comportamiento que los usa a menudo cambian juntos

Aumentan las oportunidades para usar polimorfismo en lugar de usar lgica condicional:
P.ej., si los algoritmos para calcular los precios son diferentes para diferentes tipos de productos, el control distribuido nos permite usar subclases de producto para manejar estas variaciones
14

Creacin de participantes y comportamiento condicional


Las prximas transparencias muestra el (mini)escenario de efectuarPago en efectivo para el sistema de PdV, en que participan instancias de Caja, Venta y Pago:
Se muestra que la instancia de Pago es creada durante la ejecucin del escenario creacin de participantes Se muestra que la creacin de un pago se puede hacer depender de si el efectivo entregado es ma-yor o igual al total de la venta comportamiento condicional
15

unaCaja efectuarPago (efectivoEntregado)

unaVenta

efectuarPago (efectivoEntregado) crear (efectivoEntregado) unPago

mensaje de creacin

16

unaCaja efectuarPago (efectivoEntregado)

unaVenta

efectuarPago (efectivoEntregado) alt

marco

operador

[efectivoEntregado totalVenta] crear(efectivoEntregado)

custodia

unPago

[else]

separacin de fragmentos
17

Los marcos de interaccin son formas destacar una regin de un DS


La regin es dividida en uno o ms fragmentos:
Cada fragmento tiene un operador y puede tener una custodia (una condicin)

P.ej., para mostrar una repeticin:


Usamos el operador loop con un solo fragmento y ponemos la condicin de la repeticin en la custodia
18

Significados de algunos operadores


alt
Mltiples fragmentos alternativos; slo aqul cuya custodia es verdadera se ejecutar

opt
Opcional; el fragmento se ejecuta slo si la custodia es verdadera equivale a alt con una alternativa

loop
Ciclo; el fragmento puede ejecutarse varias veces y la custodia indica la condicin de la repeticin

par
Paralelismo; cada fragmento corre en paralelo
19

Ejemplo: DSS para un escenario de Procesar Venta


elCajero hacerNuevaVenta() loop [ms artculos] ingresarArticulo(identificacion, cantidad) descripcin, totalParcial terminarVenta() total con impuestos pagar(cantidad) vuelto, recibo
20

elSistema