Está en la página 1de 21

Universidad de Chile

Departamento de Ciencias de la Computación


CC61J - Taller de UML

UML - Diagramas de interacción

Luis A. Guerrero
Introducción

Los diagramas UML de secuencia y de colaboración (llamados


diagramas de interacción) se utilizan para modelar los aspectos
dinámicos de un sistema.

Un diagrama de interacción 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 colaboración destacan la organiza-
ción estructural de los objetos que envían y reciben mensajes.
Ejemplos
Diagrama de secuencia: objetoA:A objetoB:B objetoC:C

destaca el orden temporal


de los mensajes. <<create>>

mensaje1( )
objetos mensaje2( )

tiempo mensaje3( )

mensaje4( )

objetoA:A
<<destroy>>

1: <<create>>
2: mensaje1( )
3: <<destroy>>

objetoB:B objetoC:C Diagrama de colaboración:


2.1: mensaje2( )
destaca la relación estructural
2.2: mensaje3( ) entre los objetos que interactúan
Conceptos

Ambos diagramas (secuencia y colaboración) son semántica-


mente equivalentes. Se puede pasar de uno a otro sin pérdida
de información.

En los diagramas de secuencia, la linea de vida de un objeto


es la línea discontinua vertical, que representa la existencia
de un objeto a lo largo de un periodo de tiempo. El foco de
control es un rectángulo delgado que representa el periodo de
tiempo durante el cual un objeto ejecuta una acción.
Ejemplo

Ejemplo 1: Se quiere modelar una llamada a través de una


central telefónica.

Para esto se tienen cuatro objetos involucrados: dos interlocutores


(s y r), una central y una conversación. La secuencia empieza
cuando un interlocutor envía un mensaje a la central al descolgar
el auricular. La central da el tono de llamada, y el interlocutor marca
el número al que desea llamar. El tiempo de marcado debe ser
menor que 30 segundos.
Ejemplo
s:Interlocutor :Central r:Interlocutor

descolgarAuricular( )
{marcando.tiempoEjecucion < 30 segs}
darTonoDeLlamada( )

*marcarDigito( )
enrutarLlamadas(s,n)
marcando
<<create>>
c:Conversación

llamar( )

descolgarAuricular( )
conectar(r,s)

conectar(r) conectar(s)

Los interlocutopres r y s pueden


intercambiar información después
de conectarse.
Notación

Los diagramas de colaboración explican gráficamente


las interacciones entre las instancias del modelo (objetos).
Por ejemplo:
Notación

Un objeto se puede enviar


un mensaje a sí mismo:

Es posible representar iteraciones:

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

Secuencia de los mensajes en un diagrama de colaboración:


Notación

Es posible definir mensajes condicionales:


Notación

Es posible definir trayectorias mutuamente excluyentes:


Notación

Un multiobjeto, por ejemplo un arreglo en Java, se representa


como una pila de objetos:

Se pueden enviar mensajes a multiobjetos:


Notación

Ejemplo de crear un objeto y agregarlo a un multiobjeto:


Ejemplo

Ejemplo 2: Matricular un nuevo estudiante en la universidad.

Hay cuatro objetos involucrados: un encargado de matrícula,


un estudiante, un curso y la universidad. La acción comienza
cuando el encargado de matrícula crea un objeto estudiante,
lo añade 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.
Ejemplo
2: agregarEstudiante(s)

r:EncargadoMatricula :Universidad

1: <<create>> 3.1: obtenerPlanEstudios( )


3: matricular( )

s:Estudiante s:Estudiante

matriculado = False matriculado = True


3.4: <<become>>

3.2: agregar(s) 3.3: agregar(s)

c1:Curso c2:Curso

{asociación} {asociación}
Uso de diagramas

La creación de los diagramas de secuencia depende de la formulación


de los casos de uso. Los casos de uso indican cómo los actores interac-
túan con el sistema. Durante la operación del sistema, los actores gene-
ran eventos, solicitando alguna operación a cambio.

Uso de diagramas de secuencia para modelar los casos de uso:


El diagrama de secuencia de un sistema es una representación que
muestra, en determinado escenario de un caso de uso, los eventos
generados por actores externos, su orden y los eventos internos del
sistema.
Uso de diagramas

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

Caso de uso: Comprar productos


Actores: Cliente, cajero
Tipo: Primario
Descripción: Un Cliente llega a la caja registradora con los artículos que
va a comprar. El Cajero registra los artículos y cobra el importe.
Al terminar la operación, el Cliente se marcha con los productos.
Uso de diagramas

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


Uso de diagramas

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

Def.: Un evento es una acción 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:
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 colaboración. Ejemplo:

También podría gustarte