Sei sulla pagina 1di 14

Documento Basado en la Presentacin de Luis A. Guerrero, catedrtico Universidad de Chile.

UML - Diagramas de interaccin

Introduccin
Los diagramas UML de secuencia y de colaboracin (llamados diagramas de interaccin) se utilizan para modelar los aspectos dinmicos de un sistema. Un diagrama de interaccin consiste en un conjunto de objetos y sus relaciones, incluyendo los mensajes que se pueden enviar entre ellos. Los diagramas de secuencia destacan el orden temporal de los mensajes. Los diagramas de colaboracin destacan la organizacin estructural de los objetos que envan y reciben mensajes.
1

____________________________________________________________________________________UML/VLatorre_

Ejemplos
Diagrama de secuencia: destaca el orden temporal de los mensajes.
objetos tiempo
mensaje4( ) objetoA:A objetoB:B objetoC:C

<<create>> mensaje1( ) mensaje2( ) mensaje3( )

objetoA:A
<<destroy>>

Mensaje4( )

1: <<create>> 2: mensaje1( ) 3: <<destroy >> objetoB:B 2.1: mensaje2( ) 2.2: mensaje3( ) objetoC:C

Diagrama de colaboracin: destaca la relacin estructural entre los objetos que interactan
2

____________________________________________________________________________________UML/VLatorre_

Conceptos

Ambos diagramas (secuencia y colaboracin) son semnticamente equivalentes. Se puede pasar de uno a otro sin prdida de informacin. En los diagramas de secuencia, la linea de vida de un objeto es la lnea discontinua vertical, que representa la existencia de un objeto a lo largo de un periodo de tiempo. El foco de control es un rectngulo delgado que representa el periodo de tiempo durante el cual un objeto ejecuta una accin, por ej

____________________________________________________________________________________UML/VLatorre_

Uso de diagramas
La creacin de los diagramas de secuencia depende de la formulacin de los casos de uso. Los casos de uso indican cmo los actores interactan con el sistema. Durante la operacin del sistema, los actores generan eventos, solicitando alguna operacin a cambio.

Uso de diagramas de secuencia para modelar los casos de uso: El diagrama de secuencia de un sistema es una representacin que muestra, en determinado escenario de un caso de uso, los eventos generados por actores externos, su orden y los eventos internos del sistema.

____________________________________________________________________________________UML/VLatorre_

Uso de diagramas
Diagrama de Secuencia Un diagrama de Secuencia muestra: una interaccin ordenada segn la secuencia temporal de eventos. los objetos participantes en la interaccin y los mensajes que intercambian ordenados segn su secuencia en el tiempo.

____________________________________________________________________________________UML/VLatorre_

Uso de diagramas
Diagrama de Secuencia El eje vertical representa el tiempo. El eje horizontal se colocan los objetos y actores participantes en la interaccin, sin un orden prefijado. Cada objeto o actor tiene una lnea vertical, y los mensajes se representan mediante flechas entre los distintos objetos. El tiempo fluye de arriba abajo. Se pueden colocar etiquetas (como restricciones de tiempo, descripciones de acciones, etc.) bien en el margen izquierdo o bien junto a las transiciones o activaciones a las que se refieren.
6

____________________________________________________________________________________UML/VLatorre_

Uso de diagramas
Ejemplo: caso de uso para compra de productos en un supermercado. Caso de uso: Comprar productos Actores: Cajero Tipo: Primario Descripcin: Un Cliente llega a la caja registradora con los artculos que va a comprar. El Cajero inicia la venta y comienza a registrar los artculos y cantidad, a medida que va ingresando el rticulo el sistema muestra su descripcin y precio; cuando no hay ms artculos finaliza la venta y el sistema devuelve el total que se debe cancelar. El cajero solicita al cliente el pago. Cuando el cliente paga el cajero realiza el pago y el sistema indica el cambio a devolver (si corresponde) y emite la boleta. Al terminar la operacin, el Cliente se marcha con los productos.
7

____________________________________________________________________________________UML/VLatorre_

Uso de diagramas
Ejemplo: caso de uso y DSS para compra de productos en un supermercado.
: Cajero 1: CrearNuevaVenta() :Sistema

2: IntroducirArtculo(IdAtr,Cantidad)

OBS: Debera hacerse un DSS para el escenario ppal. de xito del caso de uso, y los escenarios alternativos complejos o frecuentes.

En este Diagrama de Secuencia para el curso de eventos especfico en un caso de uso, los actores externos que interaccionan directamente con el sistema, donde el sistema se ve como una caja negra; y los eventos del sistema que genera el actor

3: Mostrar(Descripcin, Precio) * [ms artculos (pasos 2 y 3] 4: FinalizarVenta()

5: CobrarPagoTotal

6: RealizarPago(Cantidad)

7: Entregar(cambio, boleta)

____________________________________________________________________________________UML/VLatorre_

Uso de diagramas
Ejemplo: caso de uso para compra de productos en un supermercado.

:Artculo Cajero

:Pago :Venta

1:Iniciar/Crear Venta 2:RegistrarArt


Es un marcador y clusula de iteracin que indica que se itera

3:Mostrar(Descripc.,$) 4:SolicitarPago(total)

5:Muestra(total)

6:SolicitarRegistrarVenta(total) 7:Crear :Boleta 8:Imprimir Boleta

Este Diagrama de Secuencia ilustra para un curso de eventos especfico en un caso de uso, los actores externos que interaccionan directamente con las clases que se ___________________________________________________________UML/Vlatorre_______ 9
____________________________________________________________________________________UML/VLatorre_

identifican.

Ejemplo
Ejemplo 1: Se quiere modelar una llamada a travs de una central telefnica. Para esto se tienen cuatro objetos involucrados: dos interlocutores (s y r), una central y una conversacin. La secuencia empieza cuando un interlocutor enva un mensaje a la central al descolgar el auricular. La central da el tono de llamada, y el interlocutor marca el nmero al que desea llamar. El tiempo de marcado debe ser menor que 30 segundos.

10

____________________________________________________________________________________UML/VLatorre_

Ejemplo
s:Interlocutor descolgarAuricular( ) {marcando.tiempoEjecucion < 30 segs} darTonoDeLlamada( ) *marcarDigito( ) marcando enrutarLlamadas(s,n) <<create>> c:Conversacin llamar( ) descolgarAuricular( ) conectar(r,s) conectar(r) conectar(s) :Central r:Interlocutor

Los interlocutopres r y s pueden intercambiar informacin despus de conectarse.

11

____________________________________________________________________________________UML/VLatorre_

Caso de uso para la venta de pasaje

12

____________________________________________________________________________________UML/VLatorre_

pasajero solicita pasaje al vendedor vendedor ingresa origen, destino, fecha viaje *** sistema ofrece lista con horarios de viajes disponibles vendedor ingresa hora, cant. de pasajes seleccionados por el cliente. *** sistema muestra disponibilidad de asientos vendedor solicita al cliente elegir asientos disponibles vendedor ingresa asientos elegidos vendedor verifica si cliente es viajero frecuente por el n Rut. Sistema calcula descuento en precio de pasajes si pasajero es frecuente. sistema miestra total a pagar del pasaje cliente cancela al vendedor los pasajes *** vendedor registra el pago del pasaje sistema suma puntos del viaje en puntaje acumulado al cliente frecuente sistema imprime pasaje cajero entrega pasajes al cliente
13

____________________________________________________________________________________UML/VLatorre_

:Pasaje Vendedor 1:Ingresar(origen,destino,fechaVje) 2:Mostrar(,lista,horarios)

:Viaje

:ViajeroFrecuente

3:Ingresar(hra,cantPjes)

4:MostrarDisponibles(asientos)

5:Ingresar(asientos)

6:Verificar(Rut) 7:Calcular(descuento) 8:Mostrar(total) 9:Registrar(pago) 10:Acumular(puntos) 11:Imprimir

14

____________________________________________________________________________________UML/VLatorre_

15

____________________________________________________________________________________UML/VLatorre_

Tipo

Puntos Fuertes

Puntos dbiles

Secuencia

Muestra claramente la secuencia Fuerza a extender por la u oracin en el tiempo de los derecha cuando se aaden mensajes nuevos objetos; consumen espacio horizontal Notacin simple Economiza espacio, flexibilidad Difcil ver la secuencia de al aadir nuevos objetos en dos mensajes dimensiones. Es mejor para ilustrar Notacin ms compleja bifurcaciones complejas, iteraciones y comportamiento concurrente
16

Colaboracin

____________________________________________________________________________________UML/VLatorre_

Notacin
Los diagramas de colaboracin explican grficamente las interacciones entre las instancias del modelo (objetos). Por ejemplo:

17

____________________________________________________________________________________UML/VLatorre_

Notacin
Un objeto se puede enviar un mensaje a s mismo:

Es posible representar iteraciones:


msg1() { for i := 1 to 10 { miB.mens2(); miC.mens3(); } }

18

____________________________________________________________________________________UML/VLatorre_

Notacin
Secuencia de los mensajes en un diagrama de colaboracin:

19

____________________________________________________________________________________UML/VLatorre_

Notacin
Es posible definir mensajes condicionales:

20

____________________________________________________________________________________UML/VLatorre_

10

Notacin
Es posible definir trayectorias mutuamente excluyentes:

21

____________________________________________________________________________________UML/VLatorre_

Notacin
Un multiobjeto, por ejemplo un arreglo en Java, se representa como una pila de objetos:

Se pueden enviar mensajes a multiobjetos:

22

____________________________________________________________________________________UML/VLatorre_

11

Notacin
Ejemplo de crear un objeto y agregarlo a un multiobjeto:

23

____________________________________________________________________________________UML/VLatorre_

Ejemplo

Ejemplo 2: Matricular un nuevo estudiante en la universidad.

Hay cuatro objetos involucrados: un encargado de matrcula, un estudiante, un curso y la universidad. La accin comienza cuando el encargado de matrcula crea un objeto estudiante, lo aade a la universidad, y le pide al objeto estudiante que se matricule. El objeto estudiante obtiene (de s mismo) su plan de estudio, e identifica los cursos que quiere matricular.

24

____________________________________________________________________________________UML/VLatorre_

12

Ejemplo
2: agregarEstudiante(s) r:EncargadoMatricula 1: <<create>> 3: matricular( ) 3.1: obtenerPlanEstudios( ) :Universidad

s:Estudiante matriculado = False 3.2: agregar(s) 3.4: <<become>> 3.3: agregar(s)

s:Estudiante matriculado = True

c1:Curso {asociacin}

c2:Curso {asociacin}

25

____________________________________________________________________________________UML/VLatorre_

Uso de diagramas
Ejemplo: caso de uso para compra de productos en un supermercado.

Def.: Un evento es una accin externa de entrada, que un actor produce en el sistema. En el ejemplo anterior, se tienen tres eventos: pasarProducto, terminarVenta y efectuarPago. Una vez que se identifican los eventos, se registran en la entidad que corresponda. Por ejemplo:

26

____________________________________________________________________________________UML/VLatorre_

13

Uso de diagramas
Ejemplo: caso de uso para compra de productos en un supermercado.

Para cada evento que se produce en el sistema, se debe hacer un diagrama de colaboracin. Ejemplo:

27

____________________________________________________________________________________UML/VLatorre_

14

Potrebbero piacerti anche