Detalla los componente gráficos del diagrama de secuencias, su definición, aplicación y ejemplos.
Size: 3.05 MB
Language: es
Added: Jan 26, 2022
Slides: 73 pages
Slide Content
Diagramas de Secuencia
René Guamán-Quinche
Facultad de la Energía, las Industrias y los Recursos Naturales No Renovables
Carrera de Ingeniería en Sistemas/Computación
Enero, 2021
Loja, Ecuador
2
Panorama del sistema
Diagrama de secuencia
Líneas de tiempo
Intercambio de mensajes
Fragmentos combinados
Elementos lingüísticos
Resumen
Ejemplos
Agenda
3
Panorama del
sistema
4
Diagrama de Secuencia
Durantelafasedeanálisisydiseño,losmodelosdinámicosadquierenmayorimportancia
Seutilizanparaespecificarpatronesdeinteracciónentreobjetosoinstanciasdeclasesy
describenlasecuenciaordenadadelosmensajesqueenvíanyrecibenlasinstanciasdurantela
ejecucióndelescenariodeuncasodeuso(quesedefinecomounadescripciónparcialdel
comportamientodeunsistemaenunatransacciónparticular)
Paralarepresentacióndedichospatrones,sedisponedelosdiagramasdesecuenciasyde
comunicación
Eldiagramadesecuencias,quesedefineenUM,esunodelosmásutilizadosparaidentificarel
comportamientodeunsistema,porrepresentarlosobjetosqueseencuentranenelescenarioyla
secuenciademensajesintercambiadosentrelosobjetosparallevaracabolafuncionalidad
descritaporunatransacción
5
Diagrama de Secuencia
Undiagramadesecuenciaesuntipodediagramade
interacciónporquedescribecómo—yenquéorden—ungrupode
objetosfuncionanenconjunto
Alosdiagramasdesecuenciaenocasionesselosconocecomo
diagramasdeeventosoescenariosdeeventos
Analizaelmodeladodelcomportamientointerobjeto,esdecir,las
interaccionesentrelosobjetosenunsistema
6
Diagrama de Secuencia
Unainteracciónespecificacómoseintercambianmensajesydatos
entrelossociosdelainteracción
Enlaiteraciónpuedeinteractuarhumanoonohumanos
Unainteraccióntambiénpuedeserunasecuenciadellamadasa
métodosenunprogramaoseñalescomounaalarmadeincendioylos
procesosdecomunicaciónresultantes
Segeneraunainteracciónentremúltiplessociosdeinteraccióny
comprendeunasecuenciademensajes
7
Líneas de tiempo
•Unalíneade vidase muestracomounalíneavertical, generalmente
discontinua, que representala vidaútildel objetoasociadocon ella
•En el extremo superior de la línea está el encabezado de la línea de vida, un
rectánguloque contiene una expresión en la forma roleName:Class
•Esta expresión indica el nombre del rol y la clase del objeto asociado a la línea
de vida
•De la misma manera que para el diagrama de objetos, se puede omitir uno de
los dos nombres
•Si omite la clase, puede omitir los dos puntos
•Si especifica solo la clase, los dos puntos deben preceder al nombre de la
clase
8
Líneas de tiempo
9
Líneas de tiempo
•Los roles también se pueden conectar a más de un objeto
•Este tipo de rol se conoce como rol multivaluado
•Una línea de vida solo puede representar un objeto específico
•Este objeto es seleccionado por un selector
•El selector se especifica entre corchetes entre el nombre del rol y los dos
puntos
•En el ejemplo de la figura (d), el selector es simplemente una variable que
actúa como índice
•Para especificar varios objetos de un rol como socios de interacción
independientes simultáneamente, debe asignar cada objeto a una línea de vida
independiente.
10
Líneas de tiempo
•Una línea de vida puede representar un objeto activo
•Los objetos activos se utilizan para modelar procesose hilos
•Un objeto activo tiene su propio flujo de control, lo que significa que puede
operar independientemente de otros objetos
•La cabeza de una línea de vida que representa un objeto activo tiene un límite
doble a la izquierda y a la derecha
•A menudo se usa una barra continua en lugar de la línea discontinua Fig. e
•En la figura f, el encabezado de la línea de vida contiene el nombre self. Esto
es necesario cuando una clase abarca un determinado contexto de interacción
y está involucrada en la interacción
11
Intercambio de mensajes
•El diagrama de secuencia es un diagrama bidimensional
•Los sociosde interacción
involucradosenla interacciónse
presentanenel ejehorizontaly
debenorganizarseenun ordenclaro
•El eje vertical modela el orden
cronológico de la interacción
•Las especificaciones de eventos
cubren el envío y la recepción de
mensajes o la ocurrencia de eventos
basados en el tiempo, como un punto
en el tiempo
12
Intercambio de mensajes
•La conexión cronológica entre un mensaje a y un mensaje b se expresa mediante el
símbolo →
•a → b significa que el mensaje a se envía
antes que el mensaje b.
•Si los eventos de envío y recepción de
dos mensajes tienen lugar en la misma
línea de vida, el orden cronológico de
estos eventos determina el orden de los
mensajes
13
Intercambio de mensajes
•fig(a), mensaje asiempre debe tener lugar antes que mensaje c, ya que el evento de
envío de atiene lugar antes que el evento de envío de c.
•Si dos mensajes notienen socios de interacción comunes, no se especifica el orden de
estos mensajes
•fig(b), los mensajes ay chay dos trazas posibles: a → cy c → a
•fig(c), si se inserta un mensaje bentre ay cy este mensaje fuerza a ay cen un orden
cronológico, el único rastro posible es a → b → c
14
Messages
•Un mensajese representa como una flecha desde el remitente hasta el
receptor
•El tipo de flecha expresa el tipo de comunicación involucrada
•Un mensaje síncrono se representa mediante una flecha con una línea
continua yuna punta de flecha triangular llena
•En mensajes síncronos, el remitente espera hasta haber recibido un mensaje de
respuesta antes de continuar. El mensaje de respuestaestá representado por
una línea discontinua con una punta de flecha abierta
•Cuando el contexto esta claro, el mensaje de respuesta puede omitirse en el
diagrama
•Un mensaje asíncrono se representa mediante una flecha con una línea
continua yuna punta de flecha abierta
15
Messages
•Ejemplo:
•Un estudiante se comunica con un profesor para registrarse en un curso
•En (a), el registro es vía correo electrónico, es decir, asíncrono. El alumno no espera
explícitamente la recepción del mensaje de confirmación
•En (b), el alumno se registra personalmente con el profesor y por lo tanto la comunicación
es sincrónica. El estudiante espera hasta recibir un mensaje de respuesta
16
Messages
•Los mensajes se identifican
•por un nombre,
•la especificación opcional de parámetros y
•un valor de retorno
•Los parámetros están separados por comas y entre paréntesis.
•El valor de retorno también se puede asignar opcionalmente a una variable. Por lo
tanto, un mensaje se puede etiquetar con var=m1:valor, donde vares la variable a la
que se asigna el valor devuelto, m1 especifica el nombre del mensaje y valor
representa el valor devuelto real
17
Messages
•Un mensaje para crear objetoses un tipo especial de mensaje
•Representado por una flecha discontinuacon una punta de flecha
abiertaque termina en la cabeza de la línea de vida asociada con el
objeto que se va a crear
•La flecha está etiquetada con la palabra clave newy corresponde a
llamar a un constructor en un lenguaje de programación orientado a
objetos.
un profesor crea una nueva fecha de examen.
18
Messages
•Si se elimina un objeto durante el curso de una interacción, es decir,
ocurre un evento de destrucción, el final de la línea de vida se marca
con una gran X
•De lo contrario, una línea de vida se extiende hasta el extremo inferior
del diagrama de secuencia.
19
Messages
•Si el remitente de un mensaje es desconocidoo no es relevante, puede
expresarlo con mensajes encontrados
•En este caso, utiliza un círculo negro como fuente en lugar de
especificar un socio de interacción que envía el mensaje
El remitente del mensaje
spamEmailes desconocido
•La contrapartedel mensajeencontradoesel mensajeperdido.
•Con estetipode mensaje, esel receptor el que se desconoceo no esrelevante
•El receptor tambiénse indicacomoun círculonegro
El anunciode la conferenciase
envíaa un receptor arbitrario(y
porlo tantodesconocidoo
irrelevante)
20
Messages
•Se asume implícitamente que los mensajes se transmiten sin pérdida de
tiempo. Esto no es así siempre
•Si se expresar el tiempo que transcurre entre el envío y la recepción de un
mensaje, el mensaje se representa como una línea diagonalen lugar de línea
horizontal
•Como la dimensión del tiempo se representa verticalmente, esta visualiza la
duración requerida para la transmisión de un mensaje
•Este tipo de mensaje se conoce como mensaje que consume mucho tiempo
o mensaje con duración
Un estudiantese inscribe enun programade estudiosenel
sistemade administraciónde estudiantes. Dentrode los
próximosdos o tresdías, el estudianterecibeun mensajede
confirmaciónque afirmaque la inscripciónfueexitosa. Esta
confirmaciónse envíacomounacarta tradicionaly, porlo tanto,
estáentránsitoduranteunosdíasantes de que el estudiantela
reciba.
21
Fragmentos Combinados
•Fragmentos combinados (operadores) para modelar varias estructuras de
controlde forma explícita
•Permite describir una serie de rutas de ejecución posiblesde forma
compacta y precisa
•Un fragmento combinado se representa mediante un rectángulo, con el tipo
de operador especificado por la palabra clave respectiva en un pequeño
pentágono en la esquina superior izquierda de este rectángulo
22
Fragmentos Combinados
•Los operandosde un operador están separados entre sí por líneas discontinuas horizontales
•Las puertas describen las interfaces entre un fragmento combinado y su entorno L
•Los 12 tipos diferentes de operadores se dividen en tres grupos:
•Bifurcaciones y bucles
•Concurrencia y orden
•Filtros y afirmaciones
•UML ofrece 12 tipos de
operadores
•Según el tipo de operador,
contiene uno o varios
operandos
•Pueden contener interacciones,
fragmentos de operandos
combinados o referencias a
otros diagramas de secuencia
23
Fragmentos Combinados -Ramas y bucles
•Altfragmentrepresenta secuencias alternativas
•alttiene al menos dos operandos
•Cada operando representa una ruta alternativaen la ejecución
•Los guardiasse utilizan para seleccionar la ruta a ejecutar,
•Cada operando tiene una guarday es una expresión booleana encerrada
entre corchetes
•Si no hay protección, entonces [true]se asume como el valor
predeterminado
•Si varios guardiasson verdaderos simultáneamente, esto da como resultado
un indeterminismo
•Una guardiaespecial es [else], que se evalúa como verdadera si no se
cumple ninguna otra condición
•Si ninguno de los guardiasse evalúa como verdadero, no se ejecuta ningún
operando y continúa la ejecución del fragmento circundante
24
Fragmentos Combinados -Ramas y bucles
Ejemplo del fragmento alt
•Cuando un alumno quiere matricularse
para un examen, pueden darse los
siguientes casos:
•(1) Aún quedan plazas disponibles y el
alumno puede matricularse
•(2) Hay una plaza disponible en la lista
de espera. Luego el estudiante tiene
que decidir si va a la lista de espera
•(3) Si no hay lugar disponible para el
examen o en la lista de espera para el
examen, el estudiante recibe un
mensaje de error y no está registrado
en el curso
25
Fragmentos Combinados -Ramas y bucles
El fragmento opt
•El operador optrepresenta así una secuencia de interacción cuya
ejecución real en tiempo de ejecución depende de la protección
•En un lenguaje de programación, este operador se especificaría como una
instrucción ifsin una rama else
•Ejemplo anterior, Si hay un lugar disponible en la lista de espera, al
registrarse para un trabajo, el estudiante puede decidir si ocupa el lugar en
la lista de espera. Si el estudiante quiere estar en la lista de espera, el
estudiante tiene que registrarse para ello
26
Fragmentos Combinados -Ramas y bucles
El fragmento loop
•Expresar que una secuencia se ejecutará repetidamente
•Tiene exactamente un operando
•El bucle de palabra clave va seguido de una especificación opcional del
número de iteraciones del bucle
•(min..max) o (min,max), min especifica el número mínimo de iteraciones
por las que pasa el ciclo y maxdenota el número máximo de iteraciones
•Si no hay un límite superior para el númiteraciones, se especifica un
asterisco ∗
27
Fragmentos Combinados -Ramas y bucles
El fragmento break
•Tiene la misma estructura que un operador opt,
•Consta de un solo operando más una protección
•Si la protección es verdadera, se ejecutan las interacciones dentro de este
operando, se omiten las operaciones restantes del fragmento circundante y
la interacción continúa en el siguiente fragmento de nivel superior
•El operador break ofrece así una forma simple de manejo de excepciones
28
Fragmentos Combinados -Ramas y bucles
29
Fragmentos Combinados -Concurrencia y Orden
El fragmento sec
•El fragmento seqrepresenta el orden
predeterminado
•Tiene al menos un operando y expresa una
secuencia débil
1.El orden de los eventos dentro de cada uno de los
operandosse mantiene en el resultado
2.Los eventos en diferentes líneas de vida de
diferentes operandospueden venir en cualquier
orden
3.Los eventos en la misma línea de vida de
diferentes operandosse ordenan de tal manera que
un evento del primer operando viene antes que el
del segundo operando
30
Fragmentos Combinados -Concurrencia y Orden
•Como este diagrama muestra un orden débil,
•El mensaje cno está conectado cronológicamente con los mensajes ay by
puede intercalarse con estos mensajes.
•Como bes enviado por el socio de interacción B y dtambién es recibido por
B, hay un orden cronológico entre estos dos mensajes.
•En cualquier caso, ees el último mensaje.
31
Fragmentos Combinados -Concurrencia y Orden
Strictfragment
•Describe una interacción secuencial con un orden estricto
•El orden de las ocurrencias de eventos en diferentes líneas de vida entre
diferentes operandoses significativos
•Si no hay intercambio de mensajes entre los socios de interacción, los
mensajes en un operando que está más arriba en el eje vertical siempre
se intercambian antes que los mensajes en un operando que está más
abajo en el eje vertical
32
Fragmentos Combinados -Concurrencia y Orden
Strictfragment
33
Fragmentos Combinados -Concurrencia y Orden
par fragment
•Permite dejar de lado cualquier orden cronológico entre mensajes en diferentes
operandos
•Las rutas de ejecución de los diferentes operandosse pueden intercalar siempre
que se respeten las restricciones de cada operando individual
•El orden de los diferentes operandoses irrelevante
•No induce un verdadero paralelismo, es decir, no requiere el procesamiento
simultáneo de los operandos
•El operador par en realidad expresa concurrencia
•El operador par tiene al menos dos operandos
34
Fragmentos Combinados -Concurrencia y Orden
par fragment
35
Fragmentos Combinados -Concurrencia y Orden
par fragment
36
Fragmentos Combinados -Concurrencia y Orden
Coregion–Coregión
•Se dejarde ladoel ordencronológicode loseventosenunasola líneade vida
usandounacoregión
•El área de la línea de vida que debe cubrir la región central está marcada por
corchetes girados 90 grados
37
Fragmentos Combinados -Concurrencia y Orden
Criticalfragment
•Para asegurarse de que ciertas partes de una interacción no se vean interrumpidas
por eventos inesperados, puede utilizar el fragmento crítico
•Esto marca un área atómica en la interacción
•La secuencia de orden estándar se aplica dentro de un fragmento crítico
38
Fragmentos Combinados -Concurrencia y Orden
Coregion–Coregión
39
Operadores de interacción
40
Fragmentos Combinados -Filtersand Assertions
Ignore fragment
•Los mensajesirrelevantesse indicanmedianteel
Ignore fragment
•Expresa que los mensajes pueden ocurrir en tiempo
de ejecución pero no tienen más significado para las
funciones representadas en el modelo
•Se indican entre corchetes después de la palabra
clave ignore
41
Fragmentos Combinados -Filtersand Assertions
Considerfragment
•Especifica aquellos mensajes que son de particular
importancia para la interacción bajo consideración
•Estos mensajes también se muestran en notación
establecida después de la palabra clave
•Todos mensajes que aparecen en el fragmento de
consideración pero que no se especifican en el conjunto
de mensajes relevantes se clasifican automáticamente
como irrelevantes
42
Fragmentos Combinados -Filtersand Assertions
Assertfragment
•Identifica ciertas trazas modeladas como obligatorias
•No se permiten las desviaciones que ocurren en la
realidad pero que no están incluidas en el diagrama
•Significa que la implementación requiere un modelado
preciso y el modelo es una especificación completa.
43
Fragmentos Combinados -Filtersand Assertions
Negfragment
•Modela una interacción inválida
•Describe situaciones que no deben ocurrir
•Resaltar explícitamente los errores que ocurren con
frecuencia y para representar secuencias críticas e
incorrectas
44
Elementos lingüísticos -Referencias de interacción
•Permite integrar un diagrama de secuencia en otro diagrama de secuencia
•Permite reutilizar interacciones que ya ha modelado
•Permite dividir secuencias de interacción complejas en módulos y representarlas de
forma simple
•Al igual que un fragmento combinado, una referencia de interacción se representa en un
rectángulo con un pentágono en la esquina superior izquierda. El pentágono contiene la
palabra clave ref
•El rectángulo en sí contiene el nombre del diagrama de secuencia al que se hará
referencia, seguido de argumentos opcionales entre paréntesis y un valor de retorno
opcional precedido por dos puntos
45
Elementos lingüísticos -Referencias de interacción
46
Más elementos lingüísticos -Gates
•Para permitirle extender el intercambio de mensajes más allá de tales límites, UML
ofrece puertas
•El uso de dichas puertas le permite enviar y recibir mensajes más allá de los límites del
fragmento de interacción
•Una puerta se visualiza por la punta o el final de una flecha de mensaje, dependiendo de
si el mensaje es un mensaje entrante o saliente, tocando el límite del cuadro que
representa el diagrama de secuencia, la referencia de interacción o el fragmento
combinado
•Las puertas se identifican por un nombre o por el nombre de un mensaje que utiliza la
puerta, opcionalmente junto con la dirección del mensaje
47
Más elementos lingüísticos -Gates
48
Más elementos lingüísticos -ContinuationMarkers
•Permiten modularizarlos operandosde un fragmento alt
•Permite dividir interacciones complejas en partes y conectarlas entre sí con marcadores
•Un marcador de inicio al final de una parte de interacción apunta a un marcador de
destino con el mismo nombre al comienzo de otra parte de interacción externa
•Los marcadores de continuación se indican dentro de rectángulos con esquinas
redondeadas que pueden extenderse a través de múltiples compañeros de interacción
•Los marcadores con el mismo nombre deben hacer referencia a los mismos socios de
interacción
49
Más elementos lingüísticos -ContinuationMarkers
50
Más elementos lingüísticos -Time Constraints
•Las restricciones de tiempo especifican el momento en que ocurren los eventos o un período de
tiempo entre dos eventos
•Las limitaciones de tiempo se indican entre llaves
Restricciones de tiempo
•Representaun tiempoconcreta:{12:00}
•reglade cálculo: {12:00+d}.
•Representatiemposabsolutoscon la palabra clave at: {a las (12:00)}.
•Representatiemposrelativoscon referenciaa un eventode inicioutilizandola palabra clave
after: {after(5sec)}.
•Enambos casos, la expresiónde tiempose indicaentre corchetes.
•Se pueden representar intervalos: {12:00..13:00}
La expresiónde tiempo
•Asignaunarestricciónde tiempoa un eventoutilizandounamarcade tiemporepresentada
porunalíneahorizontal cortaenel diagrama
Las marcasde tiempo
51
Más elementos lingüísticos -Time Constraints
52
Más elementos lingüísticos -StateInvariants
•Un estado invariante afirma que cierta
condición debe cumplirse en un momento
determinado
•Las limitaciones de tiempo se indican entre
llaves
•La evaluación de si el invariante es verdadero
tiene lugar antes de que ocurra el evento
posterior
•Si la invariante de estado no es verdadera, el
modelo o la implementación son incorrectos
•Los invariantes de estado pueden hacer
referencia a estados del diagrama de máquina
de estado relacionado o pueden ser condiciones
lógicas que se refieren a atributos locales
Un estudiantesolo puederegistrarsepara
un examen(i) siel estudianteestáinscrito,
(ii) siel examenaúnno se ha realizadoy
(iii) siesposibleregistrarsepara el examen
53
Ejemplos
54
Diagrama de Secuencia
Son útiles
paradiversos
usos:
El modelado de escenarios de uso
•Unescenariodeusoesunadescripcióndeunaposibleformaenque
unsistemaseutiliza.Lalógicadeunescenariodeusopuedeser
partedeuncasodeuso,porejemplo,unasecuenciaalternativaoun
pasocompletoatravésdeuncasodeuso,talcomolalógicaque
describelasecuencianormaldelaacción.
El modelado de la lógica de los métodos
•Losdiagramasdesecuenciassepuedenutilizarparaexplorarla
lógicadeunaoperación,funciónoprocedimientocomplejos,yaque
ofreceunaformadeobservarlasinvocacionesalasoperaciones
definidasenlasclases.
La detección de cuellos de botella en un diseño
•Alobservarlosmensajesenviadosaunobjetoycuántosetardanen
ejecutarelmétodoinvocado,esposibleconcluirqueesnecesario
cambiareldiseñoconelfindedistribuirlacargadentrodelsistema.
55
Ejemplos
56
Ejemplos
El modelado de escenarios de uso.
Esmuycomúnutilizarlosdiagramasde
secuenciaparavisualizarlarealizaciónde
uncasodeuso
Porejemplo,elcasodeuso“Registrar
usuario”representaunaacciónquerealiza
unusuarioenunsistema,ysiesnecesario
documentarlosqueocurredetrásdel
“registrarusuario”,seutilizaestediagrama
paravisualizarlainteracciónentrelos
objetosparaalcanzarelobjetivodel
registro.
72
Cŕeditos
Transparencias basadas por:
•Christopher ExpositoIzquierdo & AiRamExpositoMarquez& otros
•Martina Seidl· Marion Scholz, Christian Huemer· GertiKappel
•UML @ ClassroomAnIntroductionto Object-OrientedModeling
•ANÁLISIS Y DISEÑO DE SISTEMAS, 8va Edición KENNETH E. KENDALL,
JULIE E. KENDALL
•https://upcommons.upc.edu/bitstream/handle/2099.1/5608/50015.pdf?sequence=1
•Domingo Gallardo, Metodología de Desarrollo de Software, Domingo
Gallardo.Univ. Alicante