Diagramas de Secuencia
2012 Instituto Tecnológico de Buenos Aires
Los Diagramas de UML 2.0
Diagrama de Diagrama de
Casos de Uso Clases
Diagrama de Diagrama de
Secuencia Objetos
De Comportamiento
Diagrama de
Diagrama de
Comunica-
Componentes
ciones
s
Estructurale
MODELO
Diagrama de Diagrama de
Actividades Despliegue
Diagrama de
Diagrama de
Máquinas de
Paquetes
Estado
Diagrama de
Diagrama de Diagrama de Estructura
Tiempo Vista de Compuesta
Interacciones
2
Diagramas de Interacción (1)
Permiten visualizar, especificar, construir y documen-
tar (modelar) los aspectos dinámicos de un sistema o
proceso, tales como estados del sistema, flujo de con-
trol de actividades, secuencia de mensajes, y en ge-
neral todo aquello de carácter mutable.
Son importantes también para construir sistemas eje-
cutables mediante ingeniería directa o inversa.
Constan de un conjunto de objetos y sus relaciones,
incluyendo los mensajes que se pueden enviar entre
ellos. Pueden incluir también Notas y Restricciones.
3
Diagramas de Secuencia y de Comunicaciones
Son dos diagramas de interacción semánticamente e-
quivalentes.
El Diagrama de Secuencia destaca la ordenación tem-
poral de los mensajes intercambiados por los objetos.
El Diagrama de Comunicaciones (Colaboración) des-
taca la relación estructural de los objetos que
interac-túan.
Se puede pasar de uno a otro sin pérdida de
informa-ción alguna.
4
Diagramas de Secuencia (1)
Son diagramas de interacción que destacan el orde-
namiento temporal de los mensajes cursados entre
objetos.
Muestran cómo interactúan un conjunto de objetos
pertenecientes a una aplicación a través del tiempo.
Presentan un mapa secuencial de las comunicaciones
que los objetos se intercambian entre sí como reac-
ción ante un evento disparado con el fin de provocar
una respuesta del sistema.
5
Diagramas de Secuencia (2)
Muestran además los pasos desarrollados como res-
puesta al evento disparador y su asociación con las
comunicaciones.
El diagrama muestra qué inicia la actividad del siste-
ma, qué procesos y cambios ocurren internamente, y
cuáles son las respuestas que se generan.
Constituyen un punto de vista importante porque des-
criben con detalles los escenarios propuestos por los
diagramas de Casos de Uso.
6
Diagramas de Secuencia (3)
Los diagramas de Secuencia abundan sobre los de Ca-
sos de Uso en que incorporan detalles de implementa-
ción de los distintos escenarios identificados en éstos,
incluyendo:
Objetos y clases involucradas,
Secuencia de ejecución,
Identificación de eventos disparadores,
Mensajes intercambiados,
Comportamientos generados como respuesta.
7
Notación (1)
Arreglo general:
Cada objeto interviniente encabeza una columna separada
que incluirá su “línea de vida” y sus “focos de control”.
Su alineación horizontal dependerá del momento en que son
creados, ubicándose en la parte superior aquellos ya exis-
tentes al comienzo de la secuencia.
Componentes:
Objetos: Se representan en forma resumida con solo el re-
cuadro que indica la clase que lo instancia, no incluyéndose
el detalle de sus atributos ni de sus operaciones.
…
8
Notación (2)
continuación…
Actores: Los actores también pueden comunicarse con los
objetos por lo que pueden incluirse encabezando columnas
entre los objetos. Particularmente en la primera columna de
la izquierda, el actor que dispara el evento iniciador.
Líneas de Vida: Indican la existencia de los objetos entre su
creación y su destrucción. Se grafican como líneas vertica-
les punteadas ubicadas en la columna de cada objeto.
Focos de Control (o Barras de Activación): Son rectángulos
verticales alargados sobrepuestos a las líneas de vida que
indican los períodos durante los cuales los objetos ejecutan
alguna operación.
…
9
Notación (3)
continuación…
Mensajes: Se modelan como flechas horizontales entre acto-
res y focos de control y entre éstos entre sí. Los mensajes
que inician acciones se modelan con líneas llenas, y las res-
puestas con líneas punteadas. El contenido del mensaje se
expresa en palabras.
10
Ejemplo Elemental
O bje to H : C lase R : C lase J
Actor A
Mens aje
Mens aje
R es pues ta
R es pues ta
tiem po
11
Diagrama de Secuencia - Componentes
objeto
Nombre : Clase NM :OtraClase
línea de vida
estímulo
hacer (…)
foco de control crear (…)
NH : ClaseH
crear
destruir (…)
respuesta respuesta destruir
12
Componentes del Diagrama de Secuencia
Registro de T ran sacción
c : C ontrol-H objetos p : ProxyO D B C
líneas de vida
c reate ( )
: T ransacción
m ensajes
E jec utar (a, d, o)
pas arValores (d, 3.4)
tiem po
pas arValores (a, "C O ")
éxito
focos de control
X
des troy ( )
ODBC = Object DataBase Connectivity 13
Diagrama de Comunicaciones Equivalente
c : C lie nte
Registro de T ransacción
secuencia
1 : c reate ( )
objetos
2 : E jec utar (a, d, o)
3 : des troy ( )
2.3 : éxito
enlaces m ensajes
trans
proxy
: T ransacción p : ProxyO D B C
2.1 : pas arValores (d, 3.4)
secuencia 2.2 : pas arValores (a, "C O ")
ODBC = Object DataBase Connectivity 14
Diagramas de Secuencia/Comunicaciones
Diagrama de Secuencia Diagrama de
Comunicaciones
x y z
a 1.1: a
1.2: c
b x y
c
1.1.1: b
15
Creación de un Objeto
: Siste maD e O rde ne s
E nviar una orden (D atos )
C rear (D atos ) : O rde n
16
Destrucción de un Objeto
: Siste maD e O rde ne s : O rde n
Anular O rden ( )
X
D es truir O rden ( )
17
Ejemplo – Iteración – Reserva de Hotel
Inte rfaz C omputadora : C ade na H ote le s G : Si h ay d i s p o n i b le l u g ar
H ote l H T ; H ote l
Ve ntana Inte rne t C ade na H ote le s p ara to d a l a es tad ía, h a-
c er l a res erv a y en v i ar l a
c o n fi rm ac i ó n .
iteración
Hac er Res erva ( )
Hac er Res erv a ( )
*{p o r c ad a d ía} Hay l u g ar d is p o n i b l e? ( )}
m ensajes
condición
{Si h ay l u g ar} R e se rv a 2395 ;
crear (...) R e se rv ación
focos de creación
control c rear (...) C onfirmac.2395 :
de objetos
M e nsaje C onf
destrucción
de objeto
X
18
Ejemplo – Interacción Cliente-Proveedor
c-1 : C lie nte p-1 : Prov e e dor
Pre paración
P reparar requerim iento Mandar requerim iento
E nviar oferta
N e gociación
P reparar c ontraoferta Mandar c ontraoferta
E nviar nueva oferta
P reparar pedido
Mandar pedido
C onfirm ar ac eptac ión
Eje cución
Inform ar fec ha envío
Notific ar envío
Ace ptación
C ontrol de rec epc ión Ac eptar envío
E nviar fac tura
P reparar pago
P agar
19
Ejemplo - Discado Teléfono Celular
display :
D igito X : B otón : C odifDe B otón : D iscador : Parlante
d isp layDiscad o r
BotónPresionado (N º)
D igitar (c ódigo)
M ostrarDígito (c ódigo)
Em itirT o no (c ódigo)
P or c ada dígito
20
Ejemplo - Llamado Teléfono Celular
Vista LLamad a :
Se nd : B otón : AdapB otónSe nd : D iscador : R adioC e lular
display
BotónPresionado (S)
Send ( )
C onec tar (núm ero)
Indic ar En U so ( )
21
Uso de Restricciones - Llamada Telefónica
: Llamador : Conmutador : R e ce ptor
levantar tubo
a--
{b - a < 1 s eg } tono
b --
{c - b < 10 s eg } digitar núm ero
c--
...
d -- r u te a r l
la m a d a
{d ' - d < 5 s eg }
d '-
tono de llam ada tim bre de llam ada
des c olgar tubo
c es e de tono de llam ada c es e tim bre de llam ada
Hola!
Hola!
22
Mensajes Asincrónicos
Reserva d e L ab orato rio
Enfe rme ra A : Laboratorio X : Pre paga Z :
pe rsonalSanidad laboratorio O .S.Pre paga
res erv arFech a (an ál i si s )
m ensaje asincrónico
p ed i rA p ro b ac i ó n (an ál i s is )
m an d arA p ro b ac i ó n ( )
{OK } c o n fi rm arTu rn o (fec h a/h o ra)
R es erva de laboratorio
para anális is
S i la O .S . prepaga autori-
z a, c onfirm ar el turno
23
Ejemplo – Página Dinámica
N av e gador A : Se rv idor Z : Script K : B ase D atos Q :
browse r we b se rv e r se rv e rSide Script dataB ase
en v i ar (req u eri m i en to )
h acer PD (req u eri m i en to )
p ed i r In fo (c o m an d o SQL )
en v i ar (i n fo )
en v i ar (p ág i n a d i n ám i c a)
en vi ar (p ág i n a d i n ám i c a)
PD: p ág i n a d i n ám i c a
24
Ejemplo – Ascensor - Botón del Coche
: C ontrol
: B otón Coche : Coche : Pue rtas
Asce nsor
Pasaje ro
p res io n ar
ac tu al i zar
i lu m i n ar
m o ver
i n fo rm ar (l l eg a al p i s o )
p arar
ap ag ar
ab rir
cerrar
25
Ejemplo – Ascensor - Botón de Piso
: C ontrol
: Botón de Piso : C oche : Pue rtas
Asce nsor
Pasaje ro
p resi o n ar
ac tu ali zar
i lu m i n ar
m o v er
i n fo rm ar (l l eg a al p is o )
p arar
ap ag ar
ab ri r
cerrar
26
Ejemplo – Transferencia de Fondos
: transfe re nciaFondos : ge stionador : cue nta : cue nta : re gistro
<< controlle r>> T ransfe re nciaFondos O rige n De stino T ransacción
start (U serID ) : ID_transac c ión
O K (ID _transac c ión)
validar_Extrac c ión (m onto, ID _transac c ión)
OK
validar_D epósito (m onto, ID _transac c ión)
gest_Extrac c ión (m onto, origen, ID _transac c ión) OK
OK
gest_D epósito (m onto, destino, ID _transac c ión)
OK
ejec utar-T ran (ID _T ransac c ión)
e-Extr (ID _T ransac c ión)
e-D ep (ID_T ransac c ión)
OK registrar_T ransac c ión (ID _T ransac c ión)
OK
e-Extr = efec tuar_Extrac c ión
e-D ep = efec tuar_D epósito
27
Ejemplo – Reserva de Pasajes Aéreos On line
: pasaje ro O nline La C arre ta : Sitio Ve ntas Austral : líne a aé re a
Req u erir Vu el o
Verific ar Disp o n ib ilid ad
Res erva Disp o n ib l e
Detall es d el Vu el o
Detall es d el Vu el o
Req u erir A s ien to Preferid o
Res ervar A s ien to
Co n firm ar Res erv a
Req u erir Pago
A b o n ar Pasaje
En v iar Pago
Co n firm ació n Fin al d el Vu elo
En viar B o l eto s
28
Ejemplo – Cambiar Itinerario de Vuelo
: Viajero : Sistema Reservas : Sistema Reservas Aerolínea
: Cuenta Cliente DBMS
cambiar itinerario
crear cuenta cliente
obtener itinerario
presentar itinerario
efectuar cambios
asientos disponibles?
OK
presentar detalles
actualizar informac.
Confirmar nueva reserva
:
:
29
Diagrama de Comunicaciones Equivalente
Cambiar Itinerario de Vuelo
1: cambiar itinerario
5: efectuar cambios 2: obtener cuenta cliente
9: actualizar informac. 3: obtener itinerario
: Sistema de Reservas
Viajero 4: presentar itinerario Cuenta Cliente
8: presentar detalles DBMS
7: OK 6: asientos disponibles ?
10: confirmar nueva reserva
Sistema Reservas Aerolínea
30
Ejemplo – Editor de Diagramas
Escenario : Adicionar Línea
Ventas 4 Diagrama Z Dibujo L : Seleccionar
: modelo : diagrama rutina : rutina
Usuario
add line
add line(a,b)
L3: línea
a.addOutput(a,b)
L.crear(a,b)
ok
ok
Selecciona (L3)
ok
ok
ok
31
Ejemplo – Trámite Pedido de Empleo
Juan : persona Luis : secretario Entrada : bandeja Liz : JeRecHum
necTrab ( )
crear( ) reqJuan : pedido
aceptarPedido (reqJuan)
Mandar (reqJuan) Archiva
reqJuan
necEmp ( )
pedirSiguienteReqTrabajo ( )
obtenerSRT ( )
mandarSRT ( )
Mandar (ReqJuan)
SRT = siguienteReqTrabajo 32
Diagrama de Comunicaciones Equivalente
2. necesitaEmpleado ( )
* = repetir con cada pedido
1. necesitaEmpleo ( )
2.1 pedirSRT ( )
Juan : persona Luis : secretario Liz : JeRecHum
1.2* aceptarPedido (reqJuan) 2.1.3 Mandar (reqJuan)
1.2.1 mandar (reqJuan) 2.1.2 mandarSRT ( )
1.1 Crear ( ) mensajes
2.1.1 obtenerSRT ( )
Creación de
objeto Entrada : bandeja
reqJuan : pedido
SRT = siguienteReqTrabajo
33
Diagramación en Capas (Layers)
Modalidad muy usada de modelado en OOP que per-
mite fácil comprensión del diagrama por su estructu-
ra lógica natural.
El diagrama se organiza diferenciando las siguientes
capas:
Usuario humano
Controlador del proceso
Interfaz del usuario
Negocios (procesos)
Acceso a sistema o base de datos
Sistema/Base de datos
34
Diagramación en Capas (Layers)
: IngresoASeminario
:Seminario
Empleado <<controller>>
: LogonSeguridad
<<UI>>
iniciar_Proceso ( ) create ( )
proveer (nombre)
proveer (Nº de alumno) Validar (nom, Nº) EL Estudiante
: estudiante
OK
OK
destroy ( )
x
Obtener_Seminarios_Disponibles ( )
35
Ejecución Condicional
oper-T (x)
guarda
crear ( )
condi- hacer (x)
cional hacer (z)
separa- enviar (y)
dor OK
registrar (x)
hacer (h)
iteración enviar (t)
OK
hacer (q)
enviar (XX) OK recursión
36
Modelado de Opciones
Cajero Automático
s d Mo nto sd otroMo nto
: usuario : caje roAut : usuario : caje roAut
ingres arTarjeta ingres arTarjeta
s elec c ionarMonto s elec c ionarMonto
m ontoFijoS elec c ionado s elec c ionarO troMonto
entregarE fec tivo ingres arMonto
dígito
dígito
37
Modelado de Interfaces
Cuando se deba modelar el acceso a BBDD, servido-
res o periféricos (p.ej. Impresoras) cuyas interfaces
han sido modeladas en el correspondiente diagrama
de clases utilizando el símbolo de interfaz, en el dia-
grama de secuencia se empleará el símbolo del obje-
to instanciado por la clase interfaz correspondiente.
Según el nivel de abstracción utilizado pueden ex-
cluirse de esta regla las interfaces gráficas, que para
niveles de abstracción altos pueden modelarse con el
símbolo y nombre del actor que las utiliza.
38
Acceso a una BBDD o Periférico
: Gestión_Ventas
<<controller>> : BD-Facturas Representado en el diagrama
de clases con el símbolo:
Requerir_Info (Núm_Factura)
Enviar_Info (Struc_Factura)
Crear (Struc_Factura)
Factura
39
Modelado de Una Interfaz Gráfica
Bajo Nivel de Alto Nivel de
Abstracción Abstracción
: i.Operador
<<interface>>
Operador
40