Você está na 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

Usuario:Profesor

Sistema

:Registro

1:Pide NRC registro( ):int 2: return NRC 3: [para c/alumno]:add(calif) 4: alumnoExiste(expediente) 5: return yes 6: [alumnoExiste=si]:addAlumno(calificacion):boleean 7:return true

8. return

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 12345:Order 23456:Order :Inventario

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 12345:Order 23456:Order :Inventario

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 12345:Order 23456:Order :Inventario

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 12345:Order 23456:Order :Inventario

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 12345:Order 23456:Order :Inventario [para c/tem]:Finalizar() 6:getItem():int 7:return item#1

8:[item found] getProduct(itemnbr:int):boolean 9:return true

10:getQty( 9:int
11: return 25kg

12:reduceinv(prod:Product):boolean

13:return true

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 12345:Order 2345:Order :Inventario

Repetir pasos 1 al 3 del escenario 1 y despus:


1:displayMsg(chars):void

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 12345:Order 23456:Order :Inventario

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
Repetir todos los pasos del 1 pero incluir el ciclo para repetir para todos los items :Dependiente
:System :OrdersDB 12345:Order 23456:Order :Inventario [para c/tem]:Finalizar() 6:getItem():int 7:return item#1

8:[item found] getProduct(itemnbr:int):boolean 9:return true

10:getQty( 9:int
11: return 25kg

12:reduceinv(prod:Product):boolean 13:return true

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.

Você também pode gostar