El documento describe los diferentes tipos de diagramas de comportamiento en UML, incluidos los diagramas de actividad. Explica que los diagramas de actividad muestran el flujo de control y datos entre acciones y actividades. Describe elementos como acciones, flujos de control, flujos de objetos, particiones y manejo de excepciones. El documento proporciona ejemplos para ilustrar estos conceptos.
2. Diagramas UML
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
Mayo, 2020
Loja, Ecuador
3. 3
1. Diagramas de Comportamiento
Diagrama de Actividad
●
Actividad
●
Acción
●
Acción basados en eventos
●
Acciones de comportamiento de llamada
●
Flujos de Control
●
Flujos de objetos
●
Particiones
●
Manejo de excepciones
●
Resumen
●
Ejemplos
Agenda
4. 4
Diagramas de Actividades
Diagrama de comportamiento desde el punto de vista de las actividades que
realiza el sistema
Especifica el flujo de control y el flujo de datos entre varios pasos (las acciones)
necesarios para implementar una actividad
Muestra el paso a paso de las diferentes actividades del sistema
Utilidad
Modelar el comportamiento de determinados procesos del sistema
Modelar el comportamiento de procesos complejos que engloben varios
subprocesos
Representar el flujo de negocio del sistema
5. 5
Actividad
Un diagrama de actividad le permite especificar el comportamiento definido por el
usuario en forma de actividades
Una actividad en sí misma puede describir la implementación de un caso de uso
En un nivel muy detallado, también puede definir el comportamiento de una
operación en forma de instrucciones individuales, o en un nivel menos detallado,
modelar las funciones de un proceso empresarial
También puede describir los procesos internos dentro de una empresa
6. 6
Actividad
El contenido de una actividad es, como con las redes de Petri,
un gráfico dirigido cuyos nodos representan los componentes de la actividad
como acciones,
almacenes de datos y
elementos de control
y cuyos bordes representan el flujo de control o flujo de objetos, es decir, las
posibles rutas de ejecución. para la actividad
Una actividad se representa como un rectángulo con esquinas redondeadas y, al
igual que una operación, puede tener parámetros
7. 7
Actividad
Parámetros entrada: son el
número de matrícula y la
identificación del programa de
estudios de un estudiante
Se ejecutan las acciones
registrar, escribir examen y
corregir
El resultado de la actividad es
una nota
Puede especificar condiciones
previas y posteriores para una
actividad
Actividad Realizar examen
8. 8
Acción
Los elementos básicos de las actividades son las acciones
Al igual que una actividad, una acción se representa como un rectángulo con
esquinas redondeadas, en el que el nombre de la acción se coloca en el centro
del rectángulo redondeado
Especifica cualquier comportamiento definido por el usuario
Puede definir las acciones en lenguaje natural o en cualquier lenguaje de
programación
9. 9
Acción
Las acciones procesan los valores de entrada para producir valores de salida,
lo que significa que pueden realizar cálculos
También pueden cargar datos desde una memoria y pueden cambiar el estado
actual de un sistema
Las acciones son siempre atómicas
10. 10
Acción basadas en eventos
Permiten que los objetos y las señales se transmitan a los objetos receptores
Le permiten distinguir entre diferentes tipos de eventos
Puede utilizar una acción de aceptación de evento para modelar una acción
que espera la ocurrencia de un evento específico
El elemento de notación para una acción de evento
de aceptación es un “pentágono cóncavo”,
un rectángulo con una punta que apunta hacia
adentro desde la izquierda
11. 11
Acción basadas en eventos
Las acciones de eventos de aceptación (tiempo) no necesariamente tienen
bordes entrantes
Si no tienen bordes entrantes, comienzan cuando ocurre el evento
correspondiente
Permanecen activos, es decir, pueden recibir señales hasta que finaliza la
actividad que los contiene
12. 12
Acción basadas en eventos
Muestra tres ejemplos de acciones de
eventos de aceptación
(a) (tiempo): cada vez que se activa
una alarma de incendio, se debe
evacuar la sala de conferencias
(b) al final de un semestre, se emiten
certificados
(c) cuando un estudiante ha tomado
un examen, el estudiante espera la
calificación e inspecciona la hoja de
examen cuando recibe la calificación
13. 13
Acciones de comportamiento de llamada
Las acciones pueden denominarse actividades en sí mismas
Estas acciones se denominan acciones de comportamiento de llamada y están
marcadas con un símbolo de bifurcación invertida
Este símbolo de bifurcación indica una jerarquía
Simboliza que la ejecución de esta acción inicia otra actividad, dividiendo así
el sistema en varias partes.
14. 14
Acciones de comportamiento de llamada
(a) La acción Emitir certificado en la
actividad Organizar examen se refiere
a una actividad que especifica Emitir
certificado con más detalle
En la actividad Organizar examen,
los pasos internos que conducen a la
emisión de un certificado no son
relevantes
Por tanto, Emitir certificado se ve
aquí como una unidad atómica,
aunque implica un proceso con
múltiples acciones.
(b) muestra los detalles de la actividad
llamada Emitir certificado
15. 15
Acciones de comportamiento de llamada
Una acción también puede desencadenar la llamada de una operación
Este tipo de acción se denomina acción de operación de llamada
Está representado en un rectángulo con bordes redondeados. Si el nombre de
la operación no coincide con el nombre de la acción, el nombre de la
operación se puede especificar debajo del nombre de la acción en el formato
(ClassName :: operationName).
16. 16
Flujos de Control
Las actividades consisten en otras actividades y acciones
que están conectadas entre sí por bordes
Para integrar los aspectos de comportamiento dinámico en
el diagrama, se necesita semántica de ejecución
Un token es un mecanismo de coordinación virtual que
describe exactamente la ejecución. En este contexto, virtual
significa que los tokens no son componentes físicos del
diagrama. Son mecanismos que otorgan a las acciones un
permiso de ejecución
17. 17
Flujos de Control
Si una acción recibe un token, la acción está activa y se puede
ejecutar
Una vez que la acción ha finalizado, pasa el token a un nodo
posterior a través de un borde y, por lo tanto, desencadena la
ejecución de esta acción
Una vez finalizada esta acción, pasa el token a los bordes salientes o
lo retiene hasta que se cumple una determinada condición
El paso de un token puede evitarse mediante un guardia que evalúe
como falso. Un resguardo se especifica entre corchetes
18. 18
Flujos de Control
En el gráfico, un examen solo se lleva a cabo si los estudiantes se han
registrado para él
19. 19
Flujos de Control
Peso de borde {weight of an edge}: Se puede colocar un peso en un borde para
permitir que un cierto número de eventos consuman ese borde mediante una
sola ejecución
El peso de un borde se especifica entre paréntesis con la palabra clave weight.
Siempre es un número entero mayor o igual a cero
Si la señal Registrarse se recibe 30 veces, lo que significa que al menos 30 estudiantes se han
registrado y, por lo tanto, se ofrecen 30 tokens para la acción posterior, entonces esta acción
posterior se ejecuta, consume 30 tokens y se crea un nuevo grupo
20. 20
Flujos de Control
Si dos acciones que deben conectarse entre sí a través de un borde están muy
separadas en un diagrama, puede utilizar conectores para aclarar el diagrama
Un conector se representa como un pequeño círculo que
contiene el nombre del conector
Cada conector debe aparecer dos veces en una actividad: una con un borde
entrante y otra con un borde saliente
21. 21
Flujos de Control
El nodo inicial indica dónde comienza la ejecución de una actividad
No tiene bordes entrantes, pero tiene al menos un borde saliente y se indica
como un círculo negro sólido
Tan pronto como una actividad se activa, se proporcionan tokens en todos los
bordes salientes de un nodo inicial y, por lo tanto, se inicia la actividad
22. 22
Flujos de Control
También se permiten múltiples nodos iniciales para cada actividad
Esto le permite expresar simultaneidad, lo que significa que pueden estar
activas múltiples rutas de ejecución simultáneamente
Si se llama a una actividad con múltiples nodos iniciales, los bordes salientes
de todos los nodos iniciales reciben tokens simultáneamente
23. 23
Flujos de Control
Los Nodos de decisión puede modelar ramas alternativas utilizando nodos de
decisión. Corresponden a la instrucción if en un lenguaje de programación
convencional
24. 24
Flujos de Control
Los Nodos de decisión puede modelar ramas alternativas utilizando nodos de
decisión. Corresponden a la instrucción if en un lenguaje de programación
convencional
25. 25
Flujos de Control
Si desea volver a unir subrutas alternativas, puede hacerlo utilizando el nodo
de combinación (merge node)
26. 26
Flujos de Control
También puede combinar nodos de decisión y fusión. Este
nodo combinado tiene entonces múltiples bordes entrantes y
múltiples bordes salientes
Para los nodos de decisión y fusión, solo una de las posibles
rutas está activa. Se puede usar varios nodos iniciales para
modelar la simultaneidad al comienzo de una actividad
Si una ruta de ejecución se divide en varias rutas de ejecución
activas simultáneamente más adelante, puede realizar esto
utilizando un nodo de paralelización. Se representa como
una barra negra con un borde entrante y varios bordes
salientes.
27. 27
Flujos de Control
Se Puede fusionar subrutas concurrentes mediante un nodo
de sincronización
Este nodo es la contraparte del nodo de paralelización
Se representa como una barra negra con múltiples bordes
entrantes pero solo un borde saliente
Tan pronto como los tokens estén presentes en todos los
bordes entrantes, es decir, tan pronto como se hayan ejecutado
todas las acciones anteriores, todos los tokens entrantes se
fusionan en un token que se transmite en el borde saliente
28. 28
Flujos de Control
Se Puede fusionar subrutas concurrentes mediante un nodo de sincronización
Una vez que un estudiante se ha registrado para un curso, el estudiante asiste a la
conferencia y participa en la tarea simultáneamente
29. 29
Flujos de Control
Se puede combinar nodos de decisión y fusión, también puede
combinar nodos de sincronización y paralelización usando una barra
con múltiples bordes entrantes y múltiples bordes salientes
Para el final de una actividad, se usa un nodo especial para este
propósito: el nodo final de la actividad
30. 30
Flujos de Control
Si solo desea finalizar una ruta de ejecución, dejando las otras rutas de
ejecución activas simultáneamente sin verse afectadas, debe usar el nodo final
de flujo
Este nodo solo elimina los tokens que fluyen hacia él directamente, terminando
así solo la ruta respectiva
Todos los demás tokens de la actividad no se ven afectados y pueden seguir
existiendo.
33. 33
Flujo de objetos
Los parámetros de entrada generalmente solo se leen una vez al comienzo de la
actividad
Los parámetros de salida se escriben una vez al final de la actividad
Si desea permitir que los parámetros se lean y escriban continuamente durante la
ejecución de la actividad, puede etiquetar el parámetro de entrada o salida con la
palabra clave {flujo | stream}
Los parámetros de transmisión de acciones
se pueden señalar mediante un rectángulo
relleno
34. 34
Flujo de objetos
Cuando finaliza la actividad, a los parámetros de salida que no tienen token se
les asigna un token nulo
Dentro de una actividad, puede utilizar nodos de objeto para representar
explícitamente el intercambio de datos
El rectángulo contiene el nombre del objeto que representa. Opcionalmente,
también puede especificar un tipo de objeto. Entre corchetes, también puede
estipular el estado en el que debe estar el objeto.
37. 37
Particiones
Permite agrupar nodos y bordes de una actividad en función de propiedades
comunes
Si consideramos un proceso de negocio, por ejemplo, podríamos usar una
partición para agrupar todas las acciones que una entidad específica es
responsable de ejecutar
Reflejan unidades organizativas o roles que son responsables de la ejecución
de las acciones dentro de las particiones
Las particiones hacen que el diagrama sea más claro, lo que le permite ver las
áreas de responsabilidad rápidamente, introduciendo así información más
detallada en el modelo
39. 39
Particiones
Una partición se puede subdividir en varias
subparticiones
Las particiones también pueden ser
multidimensional
40. 40
Particiones
Si la acción pertenece a multiples particiones, esta partición son
separadoas por comas, por ejemplo (Partition 1, Partition 2)
41. 41
Manejo de Excepciones
Si ocurre un error durante la ejecución de una acción, la ejecución finaliza
En esta situación, no hay garantía de que la acción produzca el resultado
esperado
Si una acción tiene un manejador de excepciones para una situación de error
específica, este manejador de excepciones se activa cuando ocurre una
excepción
Con un manejador de excepciones, puede definir cómo reaccionará el sistema
en una situación de error específica
42. 42
Manejo de Excepciones
Si se produce una situación de error, todos los tokens de la acción en cuestión se
eliminan de inmediato
Si hay un manejador de excepciones, esto reemplaza el contenido de la acción
en cuestión y, en su lugar, se ejecuta el contenido del manejador de excepciones
Luego, la secuencia continúa como la ruta regular de la actividad como si la
acción defectuosa hubiera terminado normalmente