Está en la página 1de 27

Diagrama de Secuencia

Vista Dinmica
Tiende a analizarse como pequeas piezas del
sistema, esto es, como escenarios individuales o
operaciones.
La vista dinmica representa las interacciones de
los objetos en un sistema.
Puede representar como el sistema responder a las
acciones de los usuarios, como los datos son
movidos del almacenamiento a la vista del usuario y
como los objetos son creados y manipulados.
Los diagramas de Clases y los de la vista dinmica
son los ms usados en proyectos ya que son los
que revelan ms directamente caractersticas
especficas requeridas en el cdigo final.
Hay tres diagramas en la vista dinmica: el de
Secuencias, el de Colaboracin y el de Estados
Diagrama de Secuencia

Los diagramas de secuencia ilustran la
interaccin entre objetos y el orden secuencial
en el que ocurren dichas interacciones, es decir
como se comunican los objetos entre s.
Los objetos se comunican mediante interfases,
para poder invocar a un operacin.
En los Casos de Uso se modelan las
caractersticas del sistema y se desarrollan
escenarios.
El diagrama de secuencias proporciona un
camino a partir de los escenarios para describir
las operaciones en una forma ms detallada

INTERACCIONES Y OBJETOS
En un sistema orientado a objetos son estos
ltimos los que deben controlar a los datos,
moverlos, responder preguntas, etc. Estos
trabajan juntos comunicndose y/o
interactuando con otros.
Los diagramas de secuencias se modelan a
nivel de objetos y utilizan tres elementos
fundamentales: objetos, mensajes/estmulos y
lneas de vida de los objetos.
MENSAJES
El primer mensaje de un diagrama de secuencia
siempre inicia hasta arriba del lado izquierdo del
diagrama. Los dems se van aumentando
ligeramente ms abajo.
Para mostrar un objeto (lnea de vida) que
manda un mensaje a otro objeto, se usa una
lnea con una punta de flecha slida (operacin
sncrona). El mensaje (nombre del mtodo) se
coloca arriba de la flecha. El mensaje que se
enva representa una operacin/mtodo que la
clase objeto receptora va a implementar.
Un diagrama bsico
Pasos 1 y 2: El usuario crea una orden
Paso 3: El usuario trata de poner tems en
la orden
Paso 4 y 5: Se checa disponibilidad de
cada tem en el inventario
Paso 6 y 7: Si el producto est disponible,
se libera la orden
Paso 8: Fin
3: [para c/alumno]:add(calif)
4: alumnoExiste(expediente)
5: return yes
6: [alumnoExiste=si]:addAlumno(calificacion):boleean
8. return
Usuario:Profesor
Sistema :Registro
1:Pide NRC registro( ):int
2: return NRC
7:return true
Notacin figura anterior
1. Lnea de vida del objeto: lnea vertical punteada debajo
de cada objeto
2. Mensaje/estmulo: es una llamada, una seal o una
respuesta. Un mensaje se representa por una flecha, una
lnea y la punta de flecha slidas representan un mensaje
que requiere de una respuesta. Las lneas punteadas son
las respuestas. Se colocan horizontales entre las lneas
de vida, en una posicin relativa vertical con las otras para
representar el orden en el que suceden.
Los nmeros de secuencia son tiles para aclaraciones y
cambios.
Cada mensaje (flecha) describe una interfase/operacin con
el objeto al que est apuntando, por lo que el mensaje
contiene el nombre, argumentos y en su caso el valor de
retorno, por ejemplo: addItem(product):bolean.
Las flechas de regreso (2 y 5) solo contienen la respuesta a
un mensaje.
Notacin figura anterior
3. Iteracin: Indica que una operacin debe
llevarse a cabos repetidamente. Se usan [ ]
para indicar el nmero de veces o la
condicin que controla las repeticiones, por
ejemplo [para cada producto].
Diagrama de Secuencia, Caso de
Uso SurtirOrden
Se dibuja 1 diagrama de secuencia para cada
escenario.
Primero identificar todos los objetos
participantes, y se colocan hasta arriba del
diagrama. No importa el orden pero puede ser
que se vayan moviendo para mejorar la
comprensin del diagrama.
Este caso incluye: el dependiente que surte las
rdenes, el sistema en s mismo, la base de
dato de las rdenes, la orden principal y la
backorder y el inventario.
Diagrama de secuencia: objetos y
lneas de tiempo
:Dependiente :System :OrdersDB 23456:Order :Inventario 12345:Order
El primer diagrama de Secuencia modela el escenario 1.
Este escenario es el camino exitoso, el ms
comprensible. Los otros escenarios se van derivando
del camino principal.
Cada paso del diagrama de flujo se convierte en un
mensaje o en un return en el diagrama de Secuencia.
El primer paso es: El sistema pide nmero de orden, en
el diagrama de secuencia aparece como un
procedimiento llamado paso 1 y la respuesta del
dependiente del nmero de orden es el paso 2.
El formato de un mensaje es:
Un nmero de secuencia (opcional)
Dos puntos
Condicin (opcional), entre corchetes cuadrados [ ].
Identificacin de la operacin: Visibilidad (+pblica, -privada,
#protegida). Nombre de la operacin. Argumentos, se ponen
entre parntesis (). Dos puntos. Tipo de dato de retorno.
Pasos 1 y 2;
obtener el nmero de orden
:Dependiente
:System :OrdersDB 23456:Order :Inventario 12345:Order
1:getOrderNbr():int
2:return 12345
El siguiente paso es la consulta a la base de
datos, en el Caso de Uso corresponde a Se
encontr la orden?, en el diagrama de
secuencias se detalla el mensaje y la respuesta,
que en la siguiente figura corresponden a los
pasos 3 y 4.
El valor de regreso es simplemente l nmero
de orden. El diagrama de secuencias modela
un caso de prueba, por lo que el return debe ser
un valor. Si se est modelando una regla, el
retorno ser el tipo de dato ms que un valor.
Pasos 3 y 4;
obtener la orden usando el nmero de orden
:Dependiente
:System :OrdersDB 23456:Order :Inventario 12345:Order
1:getOrderNbr():int
2:return 12345
3:getOrder(ordernbr:int):Order
4:return Order 12345
El siguiente paso es Desplegar Orden,
(mostrar la orden correspondiente). Ya
que este mensaje no requiere respuesta,
la figura muestra el uso de una
comunicacin asncrona usando una
flecha con punta tipo
En este caso no hay flecha de retorno
correspondiente. No hay valor de retorno
y por lo tanto el tipo de retorno es void.
Poner un mensaje asncrono
:Dependiente
:System :OrdersDB 23456:Order :Inventario 12345:Order
1:getOrderNbr():int
2:return 12345
3:getOrder(ordernbr:int):Order
4:return Order 12345
5:displayOrder(Order):void
Una vez que se despleg la orden en el paso 5, el
sistema le pide al usuario que seleccione el primer tem
para buscarlo, es el paso 6: getItem( ):int.
El sistema espera obtener un entero que represente el
nmero de tem en la Orden para buscarlo, obtiene la
respuesta en el paso 7: item #1.
El sistema en el paso 8 busca el item en el inventario:
8:[item found] getProduct(itemnbr:int):boolean
En el paso 9 responde true, significa que si lo encontr,
recordemos que estamos en el camino ms sencillo.
En el paso 10 el sistema pide la cantidad de producto y
el dependiente se la da en el paso 11.
En los pasos 12 y 13 se actualiza el inventario y
responde que se llev a cabo la operacin, (return
verdadero)


Continuacin
:Dependiente
:System :OrdersDB 23456:Order :Inventario 12345:Order
[para c/tem]:Finalizar()
7:return item#1
8:[item found] getProduct(itemnbr:int):boolean
6:getItem():int
12:reduceinv(prod:Product):boolean
13:return true
9:return true
10:getQty( 9:int
11: return 25kg
Observaciones
En la figura se pueden ver las activaciones de
los objetos: los rectngulos verticales angostos
en las lneas de tiempo. Las activaciones
indican cuando est ocupado cada objeto. La
activacin inicia cuando un mensaje toca la
lnea de tiempo y termina cuando la respuesta
es enviada de regreso.
En el caso del objeto system, su activacin est
en todo el diagrama mostrando que el sistema
est vigilando todo el juego de interacciones.
Tambin se conoce como el foco.
Escenario 2
Se repiten los pasos 1, 2 y 3 del escenario
1.
El siguiente paso debe desplegar el
mensaje de que la orden no se encontr.
Escenario 2
:Dependiente
:System :OrdersDB 2345:Order :Inventario 12345:Order
1:displayMsg(chars):void
Repetir pasos 1 al 3 del escenario 1 y despus:
Escenario 3
Son los mismos primeros 7 pasos del
escenario 1.
Si el tem no se encuentra, hay que crear
una backorder.
Escenario 3
:Dependiente
:System :OrdersDB 23456:Order :Inventario 12345:Order
Repetir pasos 1 al 7 del escenario 1 y entonces:
Si [item not found] crear una backorder
1:[items no
surtidos>0]backorder(item:int):Order
2: return Order 23456
Escenario 4
:Dependiente
:System :OrdersDB 23456:Order :Inventario 12345:Order
[para c/tem]:Finalizar()
7:return item#1
8:[item found] getProduct(itemnbr:int):boolean
6:getItem():int
12:reduceinv(prod:Product):boolean
13:return true
9:return true
10:getQty( 9:int
11: return 25kg
Repetir todos los pasos del 1 pero incluir el ciclo para repetir para todos los
items
Objetivo Diagrama de Secuencias
Descubrir las interfases requeridas para
cada objeto y validar que cada interfase
se usa realmente.
El diagrama de Secuencias modela
interacciones entre objetos. Ya que estas
interacciones pueden ser muy complejas,
se modelan un pequeo juego de
interacciones como un solo escenario.
Resumen: para construir el
diagrama
Identificar a los objetos participantes
Dibujar una lnea vertical bajo cada objeto, que
representa la lnea de tiempo
Cada mensaje se convierte en una lnea
horizontal del objeto que manda al que recibe.
Para un mensaje sncrono o procedimiento de
llamada se requiere una respuesta.
Los asncronos no necesitan respuesta.

También podría gustarte