Luis A. Guerrero
Universidad de ChileDepartamento de Ciencias de la ComputaciónCC61J - Taller de UML
UML - Diagramas de interacciónUML - Diagramas de interacción
IntroducciónIntroducción
Los diagramas UML de secuencia y de colaboración (llamadosdiagramas de interacción) se utilizan para modelar los aspectosdinámicos de un sistema.
Un diagrama de interacción consiste en un conjunto de objetosy sus relaciones, incluyendo los mensajes que se pueden enviarentre ellos.
Los diagramas de secuencia destacan el orden temporal de losmensajes. Los diagramas de colaboración destacan la organiza-ción estructural de los objetos que envían y reciben mensajes.
objetoA:A objetoB:B objetoC:C
<<create>>
mensaje1( )
mensaje2( )
mensaje3( )
mensaje4( )
EjemplosEjemplos
Diagrama de secuencia:destaca el orden temporal
de los mensajes.
objetoA:A
objetoB:B objetoC:C
1: <<create>>2: mensaje1( )3: <<destroy>>2:
2.1: mensaje2( )2.2: mensaje3( )
Diagrama de colaboración:destaca la relación estructuralentre los objetos que interactúan
objetos
tiempo
<<destroy>>
ConceptosConceptos
Ambos diagramas (secuencia y colaboración) son semántica-mente equivalentes. Se puede pasar de uno a otro sin pérdidade información.
En los diagramas de secuencia, la linea de vida de un objetoes la línea discontinua vertical, que representa la existenciade un objeto a lo largo de un periodo de tiempo. El foco decontrol es un rectángulo delgado que representa el periodo detiempo durante el cual un objeto ejecuta una acción.
EjemploEjemplo
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 descolgarel auricular. La central da el tono de llamada, y el interlocutor marcael número al que desea llamar. El tiempo de marcado debe sermenor que 30 segundos.
EjemploEjemplo
s:Interlocutor :Central r:Interlocutor
c:Conversación
descolgarAuricular( )
darTonoDeLlamada( )
*marcarDigito( )
marcando
{marcando.tiempoEjecucion < 30 segs}
enrutarLlamadas(s,n)
<<create>>
llamar( )
descolgarAuricular( )conectar(r,s)
conectar(r) conectar(s)
Los interlocutopres r y s puedenintercambiar información despuésde conectarse.
NotaciónNotación
Los diagramas de colaboración explican gráficamentelas interacciones entre las instancias del modelo (objetos).Por ejemplo:
NotaciónNotación
msg1() { for i := 1 to 10 { miB.mens2(); miC.mens3(); } }
Un objeto se puede enviarun mensaje a sí mismo:
Es posible representar iteraciones:
NotaciónNotación
Secuencia de los mensajes en un diagrama de colaboración:
NotaciónNotación
Es posible definir mensajes condicionales:
NotaciónNotación
Es posible definir trayectorias mutuamente excluyentes:
NotaciónNotación
Un multiobjeto, por ejemplo un arreglo en Java, se representacomo una pila de objetos:
Se pueden enviar mensajes a multiobjetos:
NotaciónNotación
Ejemplo de crear un objeto y agregarlo a un multiobjeto:
EjemploEjemplo
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 comienzacuando el encargado de matrícula crea un objeto estudiante,lo añade a la universidad, y le pide al objeto estudiante quese matricule. El objeto estudiante obtiene (de sí mismo) suplan de estudio, e identifica los cursos que quiere matricular.
EjemploEjemplo
s:Estudiante
matriculado = False
s:Estudiante
matriculado = True
r:EncargadoMatricula :Universidad
3.4: <<become>>
c1:Curso c2:Curso
1: <<create>>3: matricular( )
3.3: agregar(s)3.2: agregar(s)
3.1: obtenerPlanEstudios( )
2: agregarEstudiante(s)
{asociación} {asociación}
Uso de diagramasUso de diagramas
La creación de los diagramas de secuencia depende de la formulaciónde 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 quemuestra, en determinado escenario de un caso de uso, los eventosgenerados por actores externos, su orden y los eventos internos delsistema.
Uso de diagramasUso de diagramas
Ejemplo: caso de uso para compra de productos en un supermercado.
Caso de uso: Comprar productosActores: Cliente, cajeroTipo: PrimarioDescripció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 diagramasUso de diagramas
Ejemplo: caso de uso para compra de productos en un supermercado.
Uso de diagramasUso 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 produceen 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 diagramasUso 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 undiagrama de colaboración. Ejemplo: