Está en la página 1de 14

ESTNDAR DIAGRAMA DE SECUENCIA

Un diagrama de secuencia muestra las interacciones entre objetos ordenadas en secuencia


temporal. Muestra los objetos que se encuentran en el escenario y la secuencia de mensajes
intercambiados entre los objetos para llevar a cabo la funcionalidad descrita por el escenario. En
aplicaciones grandes adems de los objetos se muestran tambin los componentes y casos de
uso. El mostrar los componentes tiene sentido ya que se trata de objetos reutilizables, en cuanto
a los casos de uso hay que recordar que se implementan como objetos cuyo rol es encapsular lo
definido en el caso de uso.
Los diagramas de secuencia, formalmente diagramas de traza de eventos o de interaccin de
objetos, se utilizan con frecuencia para validar los casos de uso. Documentan el diseo desde el
punto de vista de los casos de uso, observando qu mensajes se envan a los objetos,
componentes o casos de uso y viendo a grosso modo cunto tiempo consume el mtodo invocado,
los diagramas de secuencia nos ayudan a comprender los cuellos de botella potenciales, para as
poder eliminarlos.
En este informe se describe la manera correcta en la que se deben modelar los diferentes
componentes de un diagrama de secuencia, en todo lo que respecta a su formato, organizacin y
otros aspectos relevantes.
Cabe mencionar que este diagrama de casos de uso est creado utilizando
la herramienta de modelado UML Enterprise Architect, una herramienta
de diseo basada en la especificacin del lenguaje de modelado,
permitiendo crear variados diagramas que apoyan a la etapa de diseo de
software.

Tpicamente uno examina la descripcin de un caso de uso para determinar qu objetos son
necesarios para la implementacin del escenario. Si se tiene modelada la descripcin de cada caso
de uso como una secuencia de varios pasos, entonces se puede "caminar sobre" esos pasos para
descubrir qu objetos son necesarios para que esos pasos puedan ser seguidos. Un diagrama de
secuencia muestra los objetos que intervienen en el escenario con lneas discontinuas verticales, y
los mensajes pasados entre los objetos como flechas horizontales.
Existen dos tipos de mensajes: sncronos y asncronos. Los mensajes sncronos corresponden
a llamadas a mtodos del objeto que recibe el mensaje. El objeto que enva el mensaje queda
bloqueado hasta que termina la llamada. Este tipo de mensajes se representan con flechas con la
cabeza llena. Los mensajes asncronos terminan inmediatamente, y crean un nuevo hilo de
ejecucin dentro de la secuencia. Se representan con flechas con la cabeza abierta. Tambin se
representa la respuesta a un mensaje con una flecha discontinua. Los mensajes se dibujan
cronolgicamente desde la parte superior del diagrama a la parte inferior; la distribucin
horizontal de los objetos es arbitraria.

Ejemplo de Diagrama de Secuencia

1. Formato de los diagramas de secuencia


Un diagrama de secuencia es una forma de diagrama de interaccin que muestra los objetos
como lneas de vida a lo largo de la pgina y con sus interacciones en el tiempo representadas
como mensajes dibujados como flechas desde la lnea de vida origen hasta la lnea de vida
destino. Los diagramas de secuencia son buenos para mostrar qu objetos se comunican con qu
otros objetos y qu mensajes disparan esas comunicaciones. Los diagramas de secuencia no
estn pensados para mostrar lgicas de procedimientos complejos.
1.1.

Lnea de vida: Una lnea de vida representa un participante individual en un diagrama


de secuencia. Una lnea de vida usualmente tiene un rectngulo que contiene el nombre
del objeto. Si el nombre es self entonces eso indica que la lnea de vida representa el
clasificador que posee el diagrama de secuencia. Lo anteriormente mencionado se
puede ver en la siguiente imagen.

Self

Linea de vida

Instancia : Clase

i.
ii.

iii.

Como se aprecia en la imagen, los nombres de cada lnea de vida deben ser escritos
utilizando mayscula para la primera letra.
En el caso que el nombre de la lnea de vida est compuesto por ms de una
palabra, estas deben ser escrita con formato de frase, es decir, la primera letra de
la primera palabra en mayscula y las otras palabras escritas en minscula
Cada lnea de vida se inserta en el diagrama seleccionando la opcin Lifeline en el
men de Elementos de Interaccin (Interaction Elements), como se muestra en la
imagen siguiente.

Un diagrama de secuencia tambin puede tener una lnea de vida con un smbolo del elemento
actor en la parte superior. Este usualmente sera el caso si un diagrama de secuencia es contenido
por un caso de uso. Los elementos entidad, control y lmite de los diagramas de robustez tambin
pueden contener lneas de vida, tal y como se puede ver en la imagen siguiente.

Actor

i.
ii.

iii.

Lmite

Control

Entidad

Al igual que en las otras lneas de vida, los nombres de cada una de ellas deben ser
escritos utilizando mayscula para la primera letra.
Si el nombre de la lnea de vida est compuesto por ms de una palabra, estas
deben ser escrita con formato de frase, es decir, la primera letra de la primera
palabra en mayscula y las otras palabras escritas en minscula
Cada lnea de vida se inserta en el diagrama seleccionando la opcin Boundary,
Control o Entity en el men de Elementos de Interaccin segn corresponda, como
se muestra en la imagen siguiente.

1.2.

Mensajes: Los mensajes se muestran como flechas. Los mensajes pueden ser
completos, perdidos o encontrados; sncronos o asncronos: llamadas o seales. En el
siguiente diagrama, el primer mensaje es un mensaje sncrono (denotado por una
punta de flecha oscura), completo con un mensaje de retorno implcito; el segundo
mensaje es asncrono (denotado por una punta de flecha en lnea) y el tercero es un
mensaje de retorno asncrono (denotado por una lnea punteada).
Fuente

Destino

return:= mensage(parametro)
mensaje(parametro)
mensaje(retorno)

i.

Cada mensaje debe ser insertado eligiendo la opcin Message en el men de


Relaciones de Interacciones (Interaction Relationships), como se muestra a
continuacin.

ii.

Al insertar cada mensaje, luego de especificar los datos necesarios en la seccin


Signature de la ventana de Propiedades de Mensaje se debe especificar si este es
sncrono o asncrono, seleccionando la opcin en la ventana, en la seccin Control
Flow Type, como se muestra en la siguiente imagen.

iii.

Si el mensaje insertado es de retorno, se debe especificar que es de ese tipo en la


ventana de Propiedades de Mensaje, en la seccin de tipo de control de flujo
(Control Flow Type), como se muestra en la siguiente imagen.

1.3.

Ocurrencia de ejecucin: Un rectngulo fino a lo largo de la lnea de vida denota la


ocurrencia de ejecucin o activacin de un foco de control. En el diagrama siguiente
hay tres ocurrencias de ejecucin. El primero es el objeto origen que enva dos
mensajes y recibe dos respuestas, el segundo es el objeto destino que recibe un
mensaje asncrono y retorna una respuesta, y el tercero es el objeto destino que recibe
un mensaje asncrono y retorna una respuesta.

Fuente

Destino

return:= mensage(parametro)
mensaje(parametro)
mensaje(retorno)

1.4.

Mensaje Self o Auto Mensaje: Un mensaje self puede representar una llamada
recursiva de una operacin, o un mtodo llamando a otro mtodo perteneciente al
mismo objeto. Este se muestra como cuando crea un foco de control anidado en la
ocurrencia de ejecucin de la lnea de vida.
Fuente

automensaje()

recursin()

i.

Los auto-mensajes y las recursiones se insertan seleccionando la opcin SelfMessage o Recursion en el men de Relaciones de Interacciones, como se puede
apreciar en la siguiente imagen.

1.5.

Mensajes perdidos y encontrados: Los mensajes perdidos son aquellos que han sido
enviados pero que no han llegado al destino esperado, o que han llegado a un destino
que no se muestra en el diagrama actual. Los mensajes encontrados son aquellos que
llegan de un remitente no conocido, o de un remitente no conocido en el diagrama
actual. Ellos se denotan yendo o llegando desde un elemento de punto final, como se
puede ver en la siguiente imagen

:Linea de vida

mensaje_perdido()

mensaje_encontrado()

i.

Para insertar un punto final, se debe elegir la opcin Endpoint en el men de


Elementos de Interaccin.

1.6.

Inicio y final de lnea de vida: Una lnea de vida se puede crear o destruir durante la
escala de tiempo representada por un diagrama de secuencia. En el ltimo caso, la
lnea de vida se termina por un smbolo de detencin, representado como una cruz. En
el primer caso, el smbolo al inicio de la lnea de vida se muestra en un nivel ms bajo
de la pgina que el smbolo del objeto que caus la creacin. El siguiente diagrama
muestra un objeto que fue creado y destruido.

Padre

Hijo
nuevo()

delete()

i.

Para establecer el inicio de la lnea de vida Hijo del ejemplo, se debe ingresar a las
propiedades de mensaje, en la seccin Lifecycle seleccionar New, como se muestra
en la imagen siguiente.

ii.

1.7.

Para establecer el fin de la lnea de vida Hijo del ejemplo, se debe ingresar a las
propiedades de mensaje, en la seccin Lifecycle seleccionar Delete, como se puede
ver en la imagen siguiente.

Fragmentos combinados: Se estableci anteriormente que no se espera que los


diagramas de secuencia muestren lgicas de procedimientos complejos. Siendo este el
caso, hay un nmero de mecanismos que permiten agregar un grado de lgicas de
procedimientos a los diagramas y que a la vez vienen bajo el encabezado de
fragmentos combinados. Un fragmento combinado es una o ms secuencias de
procesos incluidas en un marco y ejecutadas bajo circunstancias nombradas
especficas. Los fragmentos disponibles son:

El fragmento Alternative (denotado alt) modela estructuras ifthenelse.


El fragmento Option (denotado opt) modela estructuras switch.

El fragmento Break modela una secuencia alternativa de eventos que se procesa en


lugar de todo del resto del diagrama.
El fragmento Parallel (denotado par) modela procesos concurrentes.
El fragmento de secuenciado Weak (denotado seq) incluye un nmero de
secuencias para las cuales todos los mensajes se deben procesar en un segmento
anterior, antes de que el siguiente segmento pueda comenzar, pero que no impone
ningn secuenciado en los mensajes que no comparten una lnea de vida.
El fragmento de secuenciado Strict (denotado strict) incluye una serie de
mensajes que se deben procesar en el orden proporcionado.
El fragmento Negative (denotado neg) incluye una serie de mensajes invlidos.
El fragmento Critical incluye una seccin crtica.
El fragmento Ignore declara un mensaje o mensajes que no son de ningn inters si
este aparece en el contexto actual.
El fragmento Consider es el opuesto del fragmento Ignore: cualquier mensaje que
no se incluya en el fragmento Consider se debera ignorar.
El fragmento Assertion (denotado assert) designa que cualquier secuencia que no
se muestra como un operando de la asercin es invlida.
El fragmento Loop incluye una serie de mensajes que estn repetidos.

El siguiente diagrama muestra un fragmento loop.


Interfaz Usuario

Control Datos

Fuente Datos

solicitar_arreglo()

solicitar_tamao_arreglo()

enviar(tamao_arreglo)

loop n
solicitar_item(n)

enviar(arreglo_items)

enviar(arreglo)

i.

Para insertar un fragmento, se debe seleccionar la opcin Fragment del men de


elementos de interaccin.

ii.

En la ventana Combined Fragment, en la seccin Type se debe elegir el tipo de


fragmento, y en la seccin Name se debe escribir el nombre del fragmento, como se
muestra a continuacin.

Tambin hay una ocurrencia de interaccin, que es similar a un fragmento combinado. Una
ocurrencia de interaccin es una referencia a otro diagrama que tiene la palabra ref en la

esquina izquierda arriba del marco, y tiene el nombre del diagrama referenciado que se muestra
en el medio del marco

1.8.

Puerta: Una puerta es un punto de conexin para conectar un mensaje dentro de un


fragmento con un mensaje fuera del fragmento. Nuestra herramienta, Enterprise
Architect, muestra una puerta como un cuadro pequeo en un marco del fragmento,
como se puede ver en el diagrama siguiente.
:Fuente

:Destino

critical

mensaje()

mensaje()
Puerta

i.

Para insertar la puerta, se debe seleccionar la opcin Diagram Gate del men de
elementos de interaccin que se muestra a continuacin.

1.9.

Continuaciones / Invariantes de Estado: Una invariante de estado es una


restriccin ubicada en una lnea de vida que debe ser verdadera en el tiempo de
ejecucin. Esta se muestra como un rectngulo con los extremos en semi-crculos.

:Linea de vida

{p==10}

i.

Para insertar una Continuaci o Invarienta de estado, se debe seleccionar la opcin


State/Continuation del men de Elementos de Interaccin.

Una continuacin tiene la misma notacin que una invariante de estado pero se usa en
fragmentos combinados y puede extenderse a travs de ms de una lnea de vida.

También podría gustarte