Un diagrama de actividades en UML (Lenguaje de Modelado Unificado) es un tipo de diagrama que se utiliza para modelar el flujo de trabajo o el comportamiento de un sistema o proceso de negocio. Es útil para representar procesos, procedimientos y algoritmos complejos en una forma visual fácil de entender.
Los diagramas de actividades muestran una secuencia de acciones, un flujo de trabajo que va desde un punto inicial hasta un punto final.
Cuando usar un diagrama de actividad
Estos diagramas son utilizados para describir cualquier tipo de procesos. Es especialmente común para modelar gráficamente los diferentes casos de uso, transacciones o procedimientos que haya en un sistema de información. En resumen, son utilizados para representar la forma en la que un sistema hace una implementación.
La finalidad de este diagrama es modelar el workflow de una actividad a otra, pero sin tener en cuenta el paso de mensajes entre ellas. Para ello, estas actividades pueden dividirse en sistemas por lo que una finalidad (la más común) de este diagrama puede ser capturar estos sistemas y describir como se relacionan entre sí.
También es utilizado para modelar las actividades, que podemos asemejar a requisitos funcionales de negocio, por lo que este diagrama tendrá una influencia mayor a la hora de comprender el negocio o sus funcionalidades que en la propia implementación. Hay que tener en cuenta que este diagrama ofrece una visión a alto nivel.
En resumen, algunos usos específicos podrían ser:
- Deducir los requisitos de negocio.
- Modelar el flujo de trabajo entre actividades o/y entre subsistemas.
- Comprender a alto nivel las funcionalidades del sistema de información.
Construcción de un diagrama de actividad
El diagrama de actividades de UML está compuesto por los siguientes elementos: Actividades, flujos de control, nodo inicial y nodo final.
A continuación veremos qué es y como se representa cada uno de estos elementos:
Actividad
La actividad es una conducta parametrizada representada como flujo coordinado de acciones .
El flujo de ejecución que representa la funcionalidad deseada se modela utilizando nodos de actividad conectados por flujos de control. Un nodo puede ser la ejecución de un comportamiento subordinado, como un cálculo aritmético, una llamada a una operación o la manipulación del contenido del objeto. Los nodos de actividad también incluyen flujo de construcciones de control, como sincronización, decisión y control de concurrencia. Las actividades pueden formar jerarquías de invocación invocando otras actividades y en última instancia resolviendo acciones individuales. En un modelo orientado a objetos, las actividades generalmente se invocan indirectamente como métodos vinculados a operaciones que se invocan directamente.
Las actividades son representadas mediante un rectángulo con los bordes redondeados, que incluye en su interior el nombre de la actividad:
También se puede representar una actividad que incluye un subdiagrama de actividades, disminuyendo de esta la granularidad de la representación, tal y como se muestra en la siguiente imagen:
Las actividades que no tienen más descomposición se denominan acciones. Estas acciones a veces son representadas mediante pseudocódigo, aunque no es algo muy común.
Las actividades son nombradas utilizando los verbos del modelo de negocio, algunos ejemplos de estas actividades podrían ser: Buscar Objeto, Actualizar lista, Hacer pago…
Flujo entre actividades
El flujo entre actividades es una clase abstracta para las conexiones dirigidas a lo largo de las cuales los tokens u objetos de datos fluyen entre los nodos de actividad . Incluye flujos de control y flujo de objetos . La fuente y el objetivo de un borde deben estar en la misma actividad que el borde.
Los flujos entre actividades se representan mediante una flecha con la punta abierta que simboliza el orden de ejecución de las actividades, a veces se incorpora un nombre en esta flecha que ayuda a que se entienda mejor:
Estos flujos de actividades pueden usar condiciones para su actuación, estas condiciones se representan mediante un rombo, con la condición escrita entre corchetes:
Este elemento también recibe el nombre de nodo de decisión.
El caso contrario es el llamada nodo de fusión, que recibe 2 o más flujo y emite 1:
Estas dos variables pueden ser combinadas, haciendo que un nodo reciba varios flujos y, a su vez, emita también varios flujos.
Nodo inicial y nodo final
El nodo inicial es un nodo de control en el que se inicia el flujo cuando se invoca la actividad. Solo existirá uno por diagrama.
Las actividades pueden tener más de un nodo inicial. En este caso, al invocar la actividad se inician varios flujos, uno en cada nodo inicial.
Hay que tener en cuenta que los flujos también pueden comenzar en otros nodos, por lo que los nodos iniciales no son necesarios para que una actividad comience la ejecución.
Los nodos iniciales se muestran como un pequeño círculo relleno:
El nodo final de actividad es un nodo final de control que detiene todos los flujos en una actividad . La actividad final se introdujo en UML 2.0, hasta entonces no existía.
Una actividad puede tener más de un nodo final de actividad. El primero alcanzado detiene todos los flujos en la actividad. Un token que llega a un nodo final de actividad finaliza la actividad. En particular, detiene todas las acciones de ejecución en la actividad y destruye todos los tokens en los nodos de objetos, excepto en los nodos del parámetro de actividad de salida.
Los nodos finales de actividad se muestran como un círculo sólido con un círculo hueco dentro:
Ejemplo de un diagrama de actividades
A continuación se muestra el ejemplo de un diagrama de actividades para la funcionalidad de logear/registrar un usuario en una aplicación:
Para más información sobre UML y sus diagramas visita nuestra página principal.