Вы находитесь на странице: 1из 32

U N I V E R S I D A D D E E L S A LVA D O R

FA C U LTA D D E I N G E N I E R I A Y A R Q U I T E C T U R A
ESCUELA DE INGENIERIA DE SISTEMAS
I N F O R M AT I C O S

Tecnologa Orientada a Objetos TOO115


Catedrtico: Ing. Elmer Arturo Carballo Ruiz Msc.

Gua de Laboratorio #3

Ciclo
II

Universidad de El Salvador

TOO-115

Gua de Laboratorio #3

Contenido
1.

Objetivos ................................................................................................................................. 3

2.

Introduccin ............................................................................................................................ 3

3.

Diagramas de Secuencia.......................................................................................................... 4

4.

Elementos principales del Diagrama de Secuencia ................................................................. 5

5.

Interaccin UML .................................................................................................................... 13

6.

Mensaje ................................................................................................................................. 14
6.1.
6.1.1.

Llamada sncrona....................................................................................................... 16

6.1.2.

Llamada asncrona..................................................................................................... 16

6.1.3.

Seal asncrona ......................................................................................................... 16

6.1.4.

Mensaje de Creacin ................................................................................................. 16

6.1.5.

Mensaje de Borrado .................................................................................................. 17

6.1.6.

Mensaje de Respuesta .............................................................................................. 17

6.2.

7.

Mensajes por tipo de accin ......................................................................................... 15

Mensajes por presencia de eventos.............................................................................. 18

6.2.1.

Mensaje Perdido ....................................................................................................... 18

6.2.2.

Mensaje Encontrado ................................................................................................. 19

Fragmento Combinado.......................................................................................................... 19
7.1.

Restricciones de interaccin ......................................................................................... 20

7.2.

Operadores de interaccin............................................................................................ 20

7.2.1.

Alternativas ............................................................................................................... 20

7.2.2.

Opcin ....................................................................................................................... 21

7.2.3.

Loop ........................................................................................................................... 21

7.2.4.

Break.......................................................................................................................... 23

7.2.5.

Paralelo...................................................................................................................... 24

7.2.6.

Secuenciacin estricta ............................................................................................... 25

7.2.7.

Secuenciacin dbil ................................................................................................... 26

7.2.8.

Regin crtica ............................................................................................................. 27

7.2.9.

Ignore ........................................................................................................................ 28

7.2.10.

Consider..................................................................................................................... 28

Ing. Elmer Arturo Carballo Ruiz Msc.


2

Universidad de El Salvador

TOO-115

Gua de Laboratorio #3

7.2.11.

Confirmacin ............................................................................................................. 29

7.2.12.

Negacin.................................................................................................................... 29

8.

Propuesta de Ejercicios para realizar el diagrama de secuencias. ........................................ 30


8.1.

Tienda de libros en lnea ............................................................................................... 30

8.2.

Autenticacin de usuario de Facebook en una aplicacin Web ................................... 30

8.3.

Manejo de Transacciones de Hibernate y Spring .......................................................... 31

________________________________________________________________________________

1. Objetivos
Que el estudiante sea capaz de:

Aprender el uso y manejo de los diagramas de secuencia y sus principales elementos.


Describir el intercambio de mensajes entre las entidades de un sistema.
Construir un diagrama de secuencia del sistema a partir de la descripcin de la interaccin
existente entre elementos enlazables de un sistema.

2. Introduccin
En UML 2.5 los diagramas de secuencia se encuentran clasificados como diagramas de
interaccin; al mismo nivel de los diagramas de comunicacin, de sincronizacin y los
diagramas generales de interaccin. Ubicados todos en la rama de los diagramas de
comportamiento, que modelan el comportamiento de los objetos de un sistema a travs de
los cambios ocurridos durante el tiempo. Permite normalmente el modelo de una vista de
negocios de algn escenario, contiene detalle de implementacin del mismo tales como
objetos y clases que se usan para el intercambio de mensajes. Es importante entender que
su orden de lectura, y por tanto de escritura, es desde la parte superior del diagrama hacia
abajo.

Ing. Elmer Arturo Carballo Ruiz Msc.


3

Universidad de El Salvador

TOO-115

Gua de Laboratorio #3

3. Diagramas de Secuencia
El diagrama de secuencia es el tipo de diagrama de interaccin ms comn, que se enfoca
en el intercambio de mensajes entre un nmero de lneas de vida (lifelines).
El diagrama de secuencia describe una interaccin enfocndose en la secuencia de
mensajes que son intercambiados, junto a sus correspondientes especificaciones de
ocurrencia en las lneas de vida.
Los siguientes nodos y ejes son tpicamente dibujados en un diagrama de secuencia de UML:
lnea de vida, especificacin de ejecucin, mensaje, fragmento combinado, uso de
interaccin, estado invariante, continuacin y destruccin de la ocurrencia.
Los elementos principales del diagrama de secuencia se muestran en la siguiente imagen.

Ing. Elmer Arturo Carballo Ruiz Msc.


4

Universidad de El Salvador

TOO-115

Gua de Laboratorio #3

4. Elementos principales del Diagrama de Secuencia

Lnea de vida (lifeline)

Es un elemento nombrado que representa a un participante individual en la interaccin.


Mientras que las partes y las caractersticas estructurales pueden tener multiplicidad mayor
a uno, las lneas de vida representan solo a una entidad interactuante. Una lnea de vida es
representada utilizando un smbolo que consiste de un rectngulo formando su cabeza
seguido de una lnea vertical (que puede ser punteada) que representa el tiempo de vida
del participante.
La informacin que identifica a una lnea de vida es desplegada dentro de un rectngulo
segn el siguiente formato (un poco cambiado de cmo era en UML 2.4):
SINTAXIS:
identif-lifeline ::= [ nombre-elemento-conectable [[ selector ]]]
[ : nombre-clase ][ descomposicin ] | self
DONDE:
selector ::= expresin
descomposicion ::= ref identif-interaccion [strict]

Dnde, adems, nombre-clase es el tipo referenciado por el elemento conectable


representado. Tome en cuenta que a pesar que la sintaxis lo permite, identif-lifeline
no puede estar vaco.
La cabeza de la lnea de vida tiene una forma basada en el clasificador para la parte que su
lnea de vida representa. Usualmente la cabeza es un rectngulo blanco con el nombre de
la clase.

Ing. Elmer Arturo Carballo Ruiz Msc.


5

Universidad de El Salvador

TOO-115

Gua de Laboratorio #3

Compuerta (Gate)

Es un fin de mensaje, un punto de conexin para relacionar un mensaje fuera de un


fragmento de interaccin con un mensaje adentro del fragmento de interaccin. El
propsito de las compuertas y mensajes entre compuertas es especificar el emisor y
receptor concreto para cada mensaje. Son nombradas implcita o explcitamente, de la
primera forma el nombre de la compuerta es construido concatenando la direccin del
mensaje (in o out) y el nombre del mensaje; por ejemplo: in_search, out_read, etc. La
notacin es como puntos de conexin de mensaje en el cuadro.

Fragmento de interaccin

Es un elemento nombrado que representa la unidad ms general de interaccin. Cada


fragmento de interaccin es conceptualmente como una interaccin por s mismo. No hay
una notacin general para un fragmento de interaccin, cada subclase define su propia
notacin.
Ejemplos de fragmentos de interaccin son:

ocurrencia,
ejecucin,
estado invariante,
fragmento combinado y
uso de interaccin.

Ing. Elmer Arturo Carballo Ruiz Msc.


6

Universidad de El Salvador

TOO-115

Gua de Laboratorio #3

Ocurrencia

El nombre completo de este elemento UML es especificacin de ocurrencia, esto es


descripcin de evento. Es un fragmento de interaccin que representa un momento en
el tiempo (evento) al principio o final de un mensaje o al principio o al final de una
ejecucin. Es una de las unidades semnticas bsicas de las interacciones. El significado de
las interacciones est especificado por secuencias de ocurrencias descritas por
especificaciones de ocurrencias. Cada especificacin de ocurrencia aparece en exactamente
una lnea de vida y las especificaciones de ocurrencia de una lnea de vida son ordenadas a
lo largo de la misma. No posee notacin y solo es un punto al principio o al final una
especificacin de ejecucin.
Ejemplos de ocurrencias son:

Ocurrencia de mensaje y
Ocurrencia de ejecucin.

1. Ocurrencia de mensaje
Es una ocurrencia que representa los eventos tales como envo y recepcin de seales o
invocacin o recepcin de llamadas de operacin. El nombre completo UML es
especificacin ocurrencia de mensaje.
1.1. Ocurrencia de destruccin
Es un mensaje de ocurrencia que representa la destruccin de la instancia descrita por la
lnea de vida. Puede resultar en la subsecuente destruccin de otros objetos que este
objeto posee por composicin. Ninguna otra ocurrencia debe aparecer debajo del evento
de destruccin de una lnea de vida dada. El nombre completo UML para la ocurrencia es
especificacin de ocurrencia de destruccin. Hasta UML 2.4 era llamado evento de
destruccin, y antes alto. La destruccin de una instancia es representada por una cruz en
forma de X al final de una lnea de vida.

Ing. Elmer Arturo Carballo Ruiz Msc.


7

Universidad de El Salvador

TOO-115

Gua de Laboratorio #3

2. Ocurrencia de ejecucin
Es una ocurrencia que representa momentos en el tiempo en que acciones o
comportamientos comienzan o finalizan. Una ocurrencia de ejecucin referencia
exactamente a una especificacin de ejecucin que describe la ejecucin que es iniciada o
finalizada en esa ocurrencia de ejecucin. El nombre completo UML es especificacin de
ocurrencia de ejecucin.

Ejecucin.

Nombre completo UML es especificacin de ejecucin, informalmente llamada activacin.


Es un fragmento de interaccin que representa un periodo en el tiempo de vida de un
participante cuando est:

Ejecutando una unidad de comportamiento o accin dentro de una lnea de vida


Enviando una seal a otro participante
Esperando por un mensaje de respuesta de otro participante

Tenga en cuenta que la especificacin de ejecucin incluye los casos donde el


comportamiento no es activo, pero a la espera de respuesta. La duracin de una ejecucin
es representada por dos ocurrencias de ejecucin, la ocurrencia de inicio y la ocurrencia de
fin. La ejecucin se representa como un rectngulo delgado gris o blanco en una lnea de
vida.

Ing. Elmer Arturo Carballo Ruiz Msc.


8

Universidad de El Salvador

TOO-115

Gua de Laboratorio #3

Una especificacin de ejecucin puede ser representada por un rectngulo nombrado ms


amplio, donde el nombre usualmente define la accin que fue ejecutada.

Para las especificaciones de ejecucin que se refieren a acciones atmicas, tales como leer
atributos de una seal (llevada por el mensaje), el smbolo de accin puede ser asociado
con la especificacin de ocurrencia de recepcin de una lnea a fin de enfatizar que la accin
completa est asociada con solo una especificacin de ocurrencia (una asociacin de inicio
y fin se refieren a la misma especificacin de ocurrencia).
El solapamiento de las especificaciones de ejecucin en la misma lnea de vida se
representa por rectngulos solapados.

Ing. Elmer Arturo Carballo Ruiz Msc.


9

Universidad de El Salvador

TOO-115

Gua de Laboratorio #3

Estado invariante

Es un fragmento de interaccin que representa una restriccin en tiempo de ejecucin en


los participantes de una interaccin. Puede ser usado para especificar diferentes tipos de
restricciones, tales como valores de atributos o variables, estados internos o externos, etc.
La restriccin es evaluada inmediatamente previo a la ejecucin de la siguiente
especificacin de ocurrencia, de manera que todas las acciones que no son modeladas
explcitamente han sido ejecutadas. Si la restriccin es verdadera el rastro (trace) es un
rastro vlido, por el contrario, el rastro es un rastro invlido.
El estado invariante es mostrado normalmente como una restriccin en corchetes en la
lnea de vida.

Tambin puede ser mostrado como un smbolo representando el equivalente a una


restriccin que verifica el estado del objeto representado por la lnea de vida. Este podra
ser tanto un estado interno del clasificador de comportamiento del clasificador
correspondiente, o algn estado externo basado en una vista de caja negra de la lnea de
vida.

Ing. Elmer Arturo Carballo Ruiz Msc.


10

Universidad de El Salvador

TOO-115

Gua de Laboratorio #3

El estado invariante puede ser presentado opcionalmente como una nota asociada a la
especificacin de ocurrencia.

Uso de Interaccin

Es un fragmento de interaccin que permite usar (o llamar) otra interaccin. Diagramas de


secuencia largos y complejos pueden ser simplificados con usos de interaccin. Es adems
prctica comn reutilizar alguna interaccin entre varias interacciones.
Las interacciones referenciadas tienen compuertas formales. El uso de interaccin provee
un conjunto de compuertas que deben coincidir con las compuertas formales de la
interaccin.
El uso de interaccin trabaja de la siguiente manera:

Copia los contenidos de la interaccin referida hacia donde esta interaccin necesita
ser usada,
Substituye los parmetros formales con argumentos,
Conecta las compuertas formales con las reales.

El uso de interaccin se presenta como un fragmento combinado con el operador ref.

Ing. Elmer Arturo Carballo Ruiz Msc.


11

Universidad de El Salvador

TOO-115

Gua de Laboratorio #3

La sintaxis del operador ref del uso de interaccin es:


SINTAXIS:
uso-de-interaccin ::= [ nombre-atributo = ] [ uso-de-colaboracin
. ] nombre-de-interaccin [ argumentos-io ] [ : valor-retorno ]
DONDE:
argumentos-io ::= ( argumento-io [ , argumento-io]* )
Argumento-io::= argumento-in | out argumento-out

El nombre-atributo se refiere a un atributo de uno de las lneas de vida de la


interaccin que va a recibir el resultado de la interaccin. Tomar en cuenta que esto limita
los resultados de las operaciones asignadas solamente a atributos. En la vida real, los
resultados de una llamada a un mtodo pueden ser asignados a una variable del mtodo
invocador.
El uso-de-colaboracin es una identificacin del uso de colaboracin que une las
lneas de vida de una colaboracin. El nombre de la interaccin es en ese caso dentro de
esa colaboracin.
Los argumentos-io son una lista de argumentos in y/o out de la interaccin.

Una restriccin impuesta por la especificacin UML que es en ocasiones difcil de seguir es
que la interaccin debe cubrir todas las lneas de vida involucradas representadas en la
interaccin englobante. Esto significa que todas las lneas de vida deberan de alguna forma
ser ubicadas cerca una de otra. Si tenemos otro uso de interaccin en el mismo diagrama
podra ser muy complicado reordenar todas las lneas de vida involucradas segn requiere
UML.

Ing. Elmer Arturo Carballo Ruiz Msc.


12

Universidad de El Salvador

TOO-115

Gua de Laboratorio #3

5. Interaccin UML
Una interaccin es una especializacin de tanto el comportamiento como del fragmento
de interaccin que representa una unidad de comportamiento enfocada en el intercambio
de informacin observable entre elementos conectables (connectable elements).
Una interaccin es un comportamiento emergente. Las interacciones se enfocan en pasar
informacin con mensajes entre elementos conectables del clasificador.
La semntica de una interaccin se define en UML como un par de conjuntos de rastros sean rastros vlidos o invlidos. Los rastros que no son incluidos en estos dos conjuntos no
son descritos por la interaccin, y es incierto si son vlidos o invlidos. Un rastro es una
secuencia de ocurrencia de eventos denotada por <e1, e2, , en>, cada uno de los que es
descrito en por una especificacin de ocurrencia.
Cada ocurrencia en las interacciones es normalmente interpretada por poseer duracin
cero. La duracin se asume que es medida en medio de las ocurrencias.
Tal como un comportamiento, una interaccin es especializable y redefinible. Especializar
una interaccin permite agregar ms rastros a aquellos de la original. Los rastros definidos
por la especializacin son combinados con aquellos de la interaccin heredad con la unin.
El clasificador que posee una interaccin puede ser especializado, y en la especializacin la
interaccin puede ser redefinida. Redefinir una interaccin significa intercambiar la
interaccin redefinida por la redefinida.
La notacin para una interaccin es un marco rectangular de lnea gruesa. El pentgono en
la esquina superior izquierda del rectngulo contiene la palabra clave sd seguido del
nombre de la interaccin y los parmetros. Usa la notacin general para el nombre del
comportamiento. La notacin dentro del marco rectangular es una de la forma de:
diagrama de secuencia, diagrama de comunicacin, diagrama de sincronizacin, o
diagrama de interaccin general (interaction overview diagram).

Ing. Elmer Arturo Carballo Ruiz Msc.


13

Universidad de El Salvador

TOO-115

Gua de Laboratorio #3

El diagrama de interaccin general puede incluir una lista de las lneas de vida de una
clusula de lnea de vida. La lista de lneas de vida es una lista de las lneas de vida
involucradas en la interaccin. Un diagrama general de interaccin no presenta por si
mismo las lneas de vida involucradas aun cuando las lneas de vida puedan ocurrir
explcitamente dentro de las interacciones en lnea en los nodos grficos.
Un diagrama de interaccin podra tambin incluir atributos locales con la misma sintaxis
de los atributos mostrados en los compartimentos de las clases. Estass definiciones de
atributos pueden aparecer cerca de la parte superior del marco del diagrama o dentro de
smbolos de nota en otros lugares del diagrama.

6. Mensaje
Es un elemento nombrado que define un tipo especfico de comunicacin entre lneas de
vida de una interaccin. El mensaje especifica no solo el tipo de comunicacin sino
tambin el emisor y el receptor, quienes normalmente son dos especificaciones de
ocurrencia (puntos al final de los mensajes).

Ing. Elmer Arturo Carballo Ruiz Msc.


14

Universidad de El Salvador

TOO-115

Gua de Laboratorio #3

La sintaxis para el mensaje es:


SINTAXIS:
mensaje ::= [ atributo =] nombre-seal-o-nombre-operacin
[argumentos ][ : valor-retorno ]
DONDE:
argumentos ::= ( [argumento [ , argumento-io]* )
argumento ::= [nombre-parmetro=] valor-argumento | atributo =
nombre-parmetro-salida [:valor-argumento] |-

Los argumentos del mensaje pueden ser nicamente:

Atributos de la lnea de vida emisora,


Constantes,
Valores simblicos (que son valores comodines que representan cualquier valor
permitido),
Parmetros explcitos de la interaccin que los encierra,
Atributos de la clase que es duea de la interaccin.

Un mensaje es representado como una lnea desde el final del emisor del mensaje hacia el
final del receptor del mensaje. La lnea debe ser tal que cada fragmento de lnea sea
horizontal o hacia abajo cuando se trace del evento emisor al evento receptor. Ambos
mensajes de emisin y recepcin deberan estar en la misma lnea de vida. La forma de la
lnea o cabeza de flecha refleja propiedades del mensaje.
6.1. Mensajes por tipo de accin
Un mensaje puede reflejar tanto la operacin de llamada e inicio de ejecucin, o el envo y
recepcin de una seal.
Cuando un mensaje representa una operacin de llamada, los argumentos del mensaje
son argumentos de la operacin. Cuando un mensaje representa una seal, los
argumentos del mensaje son atributos de la seal.
Dependiendo del tipo de accin que fue usada para generar el mensaje, el mensaje puede
ser uno de:

Llamada sncrona
Llamada asncrona
Seal asncrona
Creado
Borrado
Respuesta

Ing. Elmer Arturo Carballo Ruiz Msc.


15

Universidad de El Salvador

TOO-115

Gua de Laboratorio #3

6.1.1. Llamada sncrona


La llamada sncrona representa tpicamente una operacin de llamada envo de mensaje
y suspensin de ejecucin mientras se espera por respuesta. Los mensajes de llamada
sncrona se presentan con cabezas de flecha rellenas.

6.1.2. Llamada asncrona


Enva el mensaje y procede inmediatamente sin esperar por un valor de retorno. Los
mensajes asncronos tienen una cabeza de flecha abierta.

6.1.3. Seal asncrona


Un mensaje de seal asncrona corresponde con una accin asncrona de envo de seal.
6.1.4. Mensaje de Creacin
Un mensaje de creacin es enviado a una lnea de vida para crearla. Se representa como
una lnea punteada con la cabeza de flecha abierta (luce igual a un mensaje de respuesta),
que apunta a la cabeza de la lnea de vida creada.

Ing. Elmer Arturo Carballo Ruiz Msc.


16

Universidad de El Salvador

TOO-115

Gua de Laboratorio #3

Tome en cuenta que est convencin rara de enviar un mensaje a un objeto inexistente
para que se cree a s mismo es usado en UML 1.x y 2.x. En la prctica OOAD (Anlisis y
Diseo Orientado a Objetos) el mensaje de crear debera ser enviado probablemente a la
clase.
6.1.5. Mensaje de Borrado
El mensaje de borrado (llamado parada (stop) en versiones previas de UML) es enviado a
terminar otra lnea de vida. La lnea de vida usualmente termina con una cruz en la forma
de una X en la parte baja, denotando una ocurrencia de destruccin.
La especificacin UML 2.4 no provee ni notacin especfica ni estereotipo para un mensaje
de borrado. Hasta que no provean alguna notacin, podemos usar el estereotipo
destroy.

6.1.6. Mensaje de Respuesta


Un mensaje de respuesta a una operacin de llamada se presenta como una lnea
punteada con la cabeza de flecha abierta (similar al mensaje de creacin).
Ing. Elmer Arturo Carballo Ruiz Msc.
17

Universidad de El Salvador

TOO-115

Gua de Laboratorio #3

6.2. Mensajes por presencia de eventos


Dependiendo si los eventos de envo de mensaje o los eventos de recepcin de mensaje
estn presentes, un mensaje puede ser uno de tipo:

Mensaje completo
Mensaje perdido
Mensaje encontrado
Mensaje desconocido (por defecto)

La semntica de un mensaje completo es el rastro <eventoEnvo, eventoRecepcin>.


Ambos eventos estn presente.
En los mensajes desconocidos ambos eventos estn ausentes (no deberan aparecer).
6.2.1. Mensaje Perdido
Un mensaje perdido es un mensaje donde se conoce el evento de envo, pero no hay
evento de recepcin. Se interpreta como si el mensaje nunca alcanz su destino. La
semntica es el rastro <eventoEnvo>, eventoRecepcin est ausente. Los mensajes
perdidos se denotan como un pequeo crculo negro al final de la flecha del mensaje.

Ing. Elmer Arturo Carballo Ruiz Msc.


18

Universidad de El Salvador

TOO-115

Gua de Laboratorio #3

6.2.2. Mensaje Encontrado


Un mensaje encontrado es un mensaje donde el evento de recepcin es conocido pero no
hay evento (conocido) de envo. Es interpretado como si el origen del mensaje est fuera
del alcance de la descripcin. Este, por ejemplo, puede ser ruidoso u otra actividad que no
queremos describir en detalle. La semntica es simplemente el rastro:
<eventoRecepcin>, mientras el evento de envo est ausente. Los mensajes encontrados
se denotan como un pequeo crculo negro al extremo de inicio del mensaje.

7. Fragmento Combinado
Es un fragmento de interaccin que define una combinacin (expresin) de fragmentos
de interaccin. Un fragmento combinado se define por un operador de interaccin y sus
correspondientes operadores de interaccin. A travs del uso de fragmentos combinados
el usuario ser capaz de describir un gran nmero de rastros de una manera concisa y
compacta.
Los fragmentos combinados pueden tener restricciones de interaccin tambin llamados
guardias (guards) en UML 2.4.

Ing. Elmer Arturo Carballo Ruiz Msc.


19

Universidad de El Salvador

TOO-115

Gua de Laboratorio #3

El operador de interaccin puede ser uno de:

alt alternativas
opt opcin
loop iteracin
break descanso
par paralelo
strict secuenciacin estricta
seq secuenciacin dbil
critical regin crtica
ignore ignorar
consider considerar
assert afirmacin
neg negativa

7.1. Restricciones de interaccin


Una restriccin de interaccin es una restriccin usada en las interacciones una
expresin Booleana que guarda un operando en un fragmento combinado. Una restriccin
de interaccin se presenta como corchetes cubriendo una lnea de vida donde la primera
ocurrencia de un evento ocurrir, posicionada sobre ese evento, en la interaccin que lo
posee o en el operador de interaccin. UML 2.4 a menudo se refiere a la restriccin de
operacin como un guardia (guard).
7.2. Operadores de interaccin
Pueden ser de los siguientes tipos:
7.2.1. Alternativas
El operador de interaccin alt significa que el fragmento combinado representa una
opcin o un comportamiento alternativo. Al menos uno de los dos operando ser
escogido. El operando escogido debe tener, explcita o implcitamente, una expresin de
guardia (guard) que de verdadero (true) a este punto en la interaccin. Un guard
verdadero implcito se asume si el operando no tiene guard.
Un operando custodiado por un else representa un guard que es la negacin de la
disyuncin de todos los dems guards. Si ninguno de los operandos tiene un guardia que
de verdadero, ninguno de los operando ser ejecutado y el remanente del fragmento de
interaccin es ejecutado.

Ing. Elmer Arturo Carballo Ruiz Msc.


20

Universidad de El Salvador

TOO-115

Gua de Laboratorio #3

7.2.2. Opcin
El operador de interaccin opt significa que el fragmento combinado representa una
opcin de un comportamiento donde u ocurre la operacin o no ocurre nada. Una opcin
es semnticamente equivalente a un fragmento combinado de alternativa donde hay una
operando con contenido y el siguiente operando est vaco.

7.2.3. Loop
El operador de interaccin loop significa que el fragmento combinado representa un ciclo
(loop). El operando loop ser repetido numerosas veces. La construccin del loop
representa una aplicacin recursiva del operador seq donde el operando loop es
secuenciado despus del resultado de iteraciones previas.
El loop puede ser controlado tanto por una como por ambas fronteras de iteracin y un
guard. El operador loop puede tener fronteras de iteracin que pueden incluir un nmero
menor y uno mayor para la cantidad de iteraciones del ciclo. La sintaxis textual del
operador loop es:

Ing. Elmer Arturo Carballo Ruiz Msc.


21

Universidad de El Salvador

TOO-115

Gua de Laboratorio #3

SINTAXIS:

loop-operando ::= loop [ '(' min-int [ ',' max-int ] ')' ]


DONDE:

min-int ::= entero-no-negativo


max-int ::= entero-positivo | '*'

Si no se poseen fronteras, podra representar un ciclo potencialmente infinito con cero


como frontera inferior y con una frontera infinita superior.

Si slo se especifica min-int, significa que la frontera superior es igual a la inferior, y el


ciclo ser ejecutado exactamente el nmero especificado de veces.

Ing. Elmer Arturo Carballo Ruiz Msc.


22

Universidad de El Salvador

TOO-115

Gua de Laboratorio #3

Si se especifica max-int, debera ser mayor o igual a min-int. El ciclo iterar un


mnimo de min-int cantidad de veces y un mximo de max-int cantidad de veces.
Adems de las fronteras de iteracin, el loop podra tambin tener una restriccin de
interaccin una expresin Booleana en corchetes. Lastimosamente de manera confusa,
UML 2.4 llama a ambas guards.

7.2.4. Break
El operador de interaccin break representa una ruptura o escenario excepcional que es
llevado a cabo en lugar del remanente del fragmento de interaccin correspondiente.
Un operador break con un guard es escogido cuando el guard es verdadero (true). En este
caso el resto del fragmento directo de interaccin que encierra es ignorado. Cuando el
guard del operador break es falso, el operador break es ignorado y el resto del fragmento
de interaccin que encierra procede.

Ing. Elmer Arturo Carballo Ruiz Msc.


23

Universidad de El Salvador

TOO-115

Gua de Laboratorio #3

Un fragmento combinado con el operador break debera cubrir todas las lneas de vida del
fragmento de interaccin que encierra.
Tome en cuenta que, UML permite solamente abandonar un nivel del fragmento directo
de interaccin que encierra. Esto puede volverse realmente molesto si un doble loop o un
nico loop con otros fragmentos combinados, debe ser roto.
UML 2.3 dicta que cuando un operando break no tiene guard, la eleccin entre el
operador break y el resto del fragmento de interaccin que encierra se hace de manera
no determinstica, lo que al final significa de manera impredecible. Por tanto, no use
un break sin guard.
7.2.5. Paralelo
El operador de interaccin par define potenciales ejecuciones en paralelo o
comportamientos de los operando de un determinado fragmento combinado. Diferentes
operando pueden ser intercalados de cualquier manera siempre y cuando el orden
impuesto por cada operando sea respetado.
Un conjunto de rastros del operador paralelo describe todas las maneras o combinaciones
posibles en que especificaciones de ocurrencia de los operando pueden ser intercaladas
sin cambiar el orden dentro de cada operando.

Ing. Elmer Arturo Carballo Ruiz Msc.


24

Universidad de El Salvador

TOO-115

Gua de Laboratorio #3

El fragmento combinado paralelo tiene aplicacin notable para las situaciones comunes
donde el orden de los eventos de una lnea de vida es insignificante. En una regin comn
(coregion) de una lnea de vida acotada por corchetes horizontales todos los fragmentos
directamente contenidos son considerados como operadores separados de un fragmento
combinado paralelo.

7.2.6. Secuenciacin estricta


El operador de interaccin strict requiere una secuenciacin (orden) estricta de
operadores en el primer nivel del fragmento combinado.

Ing. Elmer Arturo Carballo Ruiz Msc.


25

Universidad de El Salvador

TOO-115

Gua de Laboratorio #3

Operadores de niveles ms bajos dentro del fragmento combinado contenido no sern


comparados directamente con otras especificaciones de ocurrencia del fragmento
combinado que encierra. En forma de notacin, esto significa que la coordenada vertical
del fragmento contenido tiene sentido a lo largo de todo el fragmento combinado y no
solo en una lnea de vida.
7.2.7. Secuenciacin dbil
El operador de interaccin seq significa que el fragmento combinado representa una
secuenciacin dbil entre los comportamientos de los operando. La secuenciacin dbil se
define como un conjunto de rastros con las siguientes propiedades.

El orden de las especificaciones de ocurrencia dentro de cada operando se


mantiene.
Las especificaciones de ocurrencia en diferentes lneas de vida de diferentes
operando pueden aparecer en cualquier orden.
Las especificaciones de ocurrencia en la misma lnea de vida de diferentes
operando se ordenan de manera que una especificacin de ocurrencia del primer
operando aparezca antes que aquella del segundo operando.

Una secuenciacin dbil se reduce a una unin paralela cuando los operando estn en un
conjunto diferente de participantes. Una secuenciacin dbil se reduce a una
secuenciacin estricta cuando los operando trabajan en el mismo participante.

Ing. Elmer Arturo Carballo Ruiz Msc.


26

Universidad de El Salvador

TOO-115

Gua de Laboratorio #3

7.2.8. Regin crtica


El operador de interaccin critical define que el fragmento combinado representa una
regin crtica. Una regin crtica es una regin con rastros que no pueden ser intercalados
por otras especificaciones de ocurrencia (en las lneas de vida cubiertas por la regin).
Esto significa que la regin es tratada atmicamente por el fragmento que encierra y no
puede ser intercalada, por ejemplo por un operador paralelo.

Ing. Elmer Arturo Carballo Ruiz Msc.


27

Universidad de El Salvador

TOO-115

Gua de Laboratorio #3

7.2.9. Ignore
La semntica y el propsito del operador de interaccin ignore son obscuras. UML 2.3
define su significado como hay algunos tipos de mensaje que no se muestran en el
fragmento combinado. Estos tipos de mensajes pueden ser considerados insignificantes y
son implcitamente ignorados si aparecen en la correspondiente ejecucin. De manera
alternativa, uno puede entender que ignore significa que los tipos de mensajes que son
ignorados pueden aparecer en cualquier parte dentro de los rastros.
Por otro lado, otras explicaciones son que este tipo de interaccin puede ser usado para
especificar un test de un sistema existente. En tiempo de ejecucin, los mensajes
ignorados en los test sern, por supuesto, manejados de alguna manera por el sistema
que ejecuta.
La lista de los mensajes ignorados sigue al operando encerrado entre llaves. La operacin
de ignorar se combina tpicamente con otras operaciones, tales como assert ignore {m,
s}.

7.2.10. Consider
El operador de interaccin consider define cuales mensajes deberan ser considerados
dentro de este fragmento combinado, significando que cualquier otro mensaje debera ser
ignorado.
La lista de mensajes considerados sigue al operando encerrado por llaves. La operacin
considerar se combina tpicamente con otras operaciones, tales como assert consider {m,
s}.

Ing. Elmer Arturo Carballo Ruiz Msc.


28

Universidad de El Salvador

TOO-115

Gua de Laboratorio #3

7.2.11. Confirmacin
El operador de interaccin assert significa que el fragmento combinado representa la
confirmacin que las secuencias de operadores assert son la nica continuacin vlida
(debe ser satisfecha por el correcto diseo del sistema). Todas las otras continuaciones
resultan en un rastro invlido.

7.2.12. Negacin
El operador de interaccin neg describe un fragmento combinado de rastros que se
definen como negativos (invlidos). Los rastros negativos son rastros que ocurren cuando
el sistema ha fallado. Todos los fragmentos de interaccin que son diferentes del negativo
son considerados positivos, significando que describen rastros que son vlidos y que
deberan de ser posibles.

Ing. Elmer Arturo Carballo Ruiz Msc.


29

Universidad de El Salvador

TOO-115

Gua de Laboratorio #3

8. Propuesta de Ejercicios para realizar el diagrama de secuencias.


8.1. Tienda de libros en lnea
Desarrollar un diagrama de secuencia de alto nivel de una tienda de libros en lnea. El cliente
en lnea puede buscar el catlogo de libros, ver la descripcin de un libro seleccionado,
agregar el libro al carrito de compras y hacer el checkout.

8.2. Autenticacin de usuario de Facebook en una aplicacin Web


Desarrolle un diagrama de secuencia UML que muestre como un usuario de Facebook
puede ser autenticado en una aplicacin web para permitir acceso a sus recursos de
Facebook. Facebook utiliza el framework del protocolo OAuth 2.0 que permite a la
aplicacin web (llamada cliente), solicitar acceso a recursos controlados por el usuario de
Facebook y alojados por el servidor de Facebook. En lugar de usar las credenciales de
usuario de Facebook para acceder a recursos protegidos, la aplicacin web obtiene un token
de acceso.
La aplicacin web debera estar registrada por Facebook para poseer un ID de Aplicacin
(client_id) y un secreto (client_secret). Cuando una solicitud a algn recurso protegido de
Facebook es recibida, el navegador web (user agent) es redirigido al servidor de
autorizacin de Facebook con el ID de Aplicacin y la URL a dnde debera ser redirigido el
usuario luego del proceso de autorizacin.
El usuario recibe un formulario de Solicitud de Permiso. Si el usuario autoriza a la aplicacin
a obtener su informacin, el servidor de autorizacin de Facebook redirige a la URI que fue
especificada antes juntos al cdigo de autorizacin (llamada cadena de verificacin). El
cdigo de autorizacin puede ser intercambiado por la aplicacin web para obtener un
token de acceso OAuth.
Ing. Elmer Arturo Carballo Ruiz Msc.
30

Universidad de El Salvador

TOO-115

Gua de Laboratorio #3

Si la aplicacin web obtiene el token de acceso para el usuario de Facebook, puede realizar
solicitudes de autorizacin en nombre de ese usuario de Facebook al incluir ese token en
las solicitudes de la API Facebook Graph. Si el usuario no autoriz a la aplicacin web,
Facebook emite un re direccionamiento de la solicitud a la URI especificada con
anterioridad, y agrega el parmetro error_reason para notificar a la aplicacin web que la
solicitud de autorizacin fue negada.

8.3. Manejo de Transacciones de Hibernate y Spring


El framework para desarrollo de aplicaciones Spring de la empresa Java integra la
administracin de transacciones de Hibernate. Desarrolle un diagrama de secuencia que
ilustre la administracin de transacciones, solamente en relacin al manejo de excepciones.
Cuando algn mtodo de negocio es llamado, este puede ser interceptado por el Spring
Transaction Interceptor. Este interceptor detrs de escena crea una sesin Hibernate y
comienza una transaccin JDBC Hibernate, de manera que el mtodo de negocio se ejecuta
en el contexto de una nueva transaccin.
La ejecucin del mtodo de negocio puede completarse (de manera satisfactoria o no) sin
lanzar ninguna excepcin, o lanzando alguna excepcin de Runtime de Java (sta de tipo
unchecked) o una excepcin del negocio (checked).
Si el mtodo de negocio no lanz ninguna excepcin o no lanz alguna excepcin del
negocio (checked), el interceptor de transaccin intentar hacer un commit a la transaccin.
Cuando la transaccin Hibernate JDBC sea arrojada (hacer un flush), con el fin de almacenar
la informacin de manera permanente, la operacin podra fallar; por ejemplo, por alguna
violacin de restriccin de la base de datos. En este caso la transaccin ser deshecha (hacer
un rollback), aun cuando la ejecucin del mtodo de negocio haya sido exitosa).
Si el mtodo de negocio lanzare alguna excepcin del Runtime de Java (unchecked), este es
un indicador que el mtodo de negocio fall y el interceptor de transaccin deshacer (har
un rollback) de la transaccin.
Al final, la sesin Hibernate ser cerrada por el Spring Transaction Interceptor.

9. Resumen
Al final de esta prctica de laboratorio el estudiante deber de ser capaz de:

Ing. Elmer Arturo Carballo Ruiz Msc.


31

Universidad de El Salvador

TOO-115

Gua de Laboratorio #3

Aprender el uso y manejo de los diagramas de secuencia y sus principales elementos.


Describir el intercambio de mensajes entre las entidades de un sistema.
Construir un diagrama de secuencia del sistema a partir de la descripcin de la interaccin
existente entre elementos enlazables de un sistema.

Ing. Elmer Arturo Carballo Ruiz Msc.


32

Вам также может понравиться