Modelado de las actividades
Introducción
El diagrama de actividades está basado en el diagrama de estados-transiciones, estudiado en el capítulo precedente. Se trata de una forma específica del diagrama de estados-transiciones en la que cada estado se asocia a una actividad y todas las transiciones son automáticas. En este tipo de diagramas, las transiciones reciben el nombre de encadenamientos.
Posteriormente, el diagrama de actividades se amplió para describir las actividades de varios objetos. De esta forma, se pueden representar los encadenamientos entre las actividades de diferentes objetos, cosa que no es posible con el diagrama de estados-transiciones. Veremos cómo designar el objeto responsable de cada actividad con ayuda de la noción de calle.
El diagrama de actividades ofrece alternativas gracias a las condiciones de guarda. Puede asimismo contener encadenamientos de tipo horquilla y reunión para administrar actividades paralelas.
Examinaremos los flujos de objetos transmitidos entre las actividades así como la emisión y la recepción de señales que hemos estudiado en el capítulo Modelado del ciclo de vida de los objetos.
Las actividades compuestas tienen como objetivo simplificar la elaboración del diagrama de actividades. Las actividades compuestas estándar tales como la alternativa, el bucle, la región de expansión o la región de actividad interrumpible ofrecen...
Las actividades y los encadenamientos de actividades
1. Las actividades
Una actividad es una serie de acciones. Una acción consiste en asignar un valor a un atributo, crear o destruir un objeto, efectuar una operación, invocar un método de otro objeto o del propio objeto, enviar una señal a otro objeto o a sí mismo, etc.
La figura 9.1 muestra la representación gráfica de una actividad.
Figura 9.1 - Representación gráfica de una actividad
Ejemplo
Retomamos el ejemplo de compra de una yegua introducido en el capítulo Modelado de los requisitos referente. Tanto la elección de la yegua como la comprobación de las vacunas son ejemplos de actividades.
La actividad inicial es la primera en ejecutarse y se representa con un punto negro (ver figura 9.2).
Figura 9.2 - Representación gráfica de la actividad inicial
La actividad final representa el término de la ejecución de las actividades de un diagrama. No tiene por qué ser única y tampoco es obligatoria.
La actividad final se representa con un punto negro rodeado de un círculo (ver figura 9.3).
Figura 9.3 - Representación gráfica de una actividad final
2. Los encadenamientos de actividades
Un encadenamiento de actividades es un vínculo orientado entre dos actividades. Puede traspasarse cuando concluye la actividad inicial, lo que conduce a la activación...
Las particiones o calles
A diferencia del diagrama de estados-transiciones, el diagrama de actividades puede representar las actividades realizadas por varios objetos con sus encadenamientos.
Para ello el diagrama se divide en particiones o calles. A cada calle corresponde el objeto responsable de la realización de todas las actividades contenidas en esa calle o partición.
La figura 9.10 muestra la representación gráfica de las calles. Un encadenamiento puede cortar la línea de separación de dos calles para mostrar un cambio de objeto entre la actividad inicial y la final.
Figura 9.10 - Las calles de un diagrama de actividades
Ejemplo
La figura 9.11 representa el ejemplo de compra de una yegua en el que se describen las actividades relativas al comprador y a la granja de cría.
Figura 9.11 - Ejemplo de diagrama de actividades dividido en calles
Los flujos de objetos
Los encadenamientos de actividades pueden soportar la transmisión de objetos. Se convierten, entonces, en flujos de objetos. Es posible describir el objeto transportado entre dos actividades. La descripción de la transmisión puede realizarse de dos maneras:
-
O bien el objeto transmitido se especifica entre las dos actividades, en forma de un rectángulo que contiene el nombre del objeto seguido de dos puntos seguidos del nombre de su tipo.
-
O bien se opta por utilizar la notación de pines: se asocia un pin de salida a la actividad de origen y un pin de entrada a la actividad de destino. El enlace entre ambos pines representa el flujo de objetos. El nombre y el tipo de los pines son los del objeto transmitido.
Ejemplo
La figura 9.12 ilustra la transmisión de la documentación correspondiente a la montura tras la cría al comprador (ver el ejemplo de la figura 9.11), el objeto que representa la documentación está tipado por la clase Documento.
Figura 9.12 - Transmisón de un objeto entre dos actividades mediante un flujo de objetos
Ejemplo
La figura 9.13 representa la misma transmisión que la figura 9.12. Está basada en el uso de un pin de salida y un pin de entrada.
Figura 9.13 - Transmisión de un objeto entre dos actividades mediante un flujo de objetos descrito por un pin de entrada y un pin de salida
El flujo de objetos representa...
La emisión y la recepción de señales
En el capítulo Modelado del ciclo de vida de los objetos, se ha presentado la noción de señal transmitida entre objetos. En un diagrama de actividades es posible implementar el envío asíncrono de una señal por parte de un objeto así como la recepción de una señal por un objeto. Ambas posibilidades se describen mediante actividades específicas representadas en la figura 9.15. La sección izquierda de esta figura muestra una actividad de envío de una señal. El envío es asíncrono: tras el envío de la señal, el objeto pasa a la actividad siguiente. La sección derecha muestra la recepción de una señal. Esta es bloqueante. El objeto debe recibir la señal antes de poder pasar a la actividad siguiente.
Para simplificar la escritura de los diagramas, el nombre de las actividades se corresponde con el nombre de la señal.
Figura 9.15 - Actividades de envío y de recepción de una señal
Ejemplo
La figura 9.16 ilustra un envío y una recepción de una señal. El servicio de compras de un criadero prepara un pedido y, a continuación, lo envía de manera asíncrona a un proveedor. Cuando finaliza el envío, el servicio de compras pasa a otra actividad, en este caso la comprobación de los pedidos en curso....
Las actividades compuestas
Una actividad puede estar compuesta de otras actividades. Cuando eso ocurre, un diagrama de actividades específico describe su composición en subactividades. Las actividades compuestas se representan en los diagramas en los que están presentes mediante un símbolo de horquilla.
La figura 9.19 muestra la composición de una actividad en subactividades. La figura 9.20 presenta la actividad sin la composición, tal y como puede utilizarse dentro de un diagrama de actividades.
Figura 9.19 - Composición de una actividad en subactividades
Figura 9.20 - Representación de una actividad compuesta
Una actividad compuesta puede estar dotada, también, de pines de entrada y de salida que permiten escribir actividades compuestas parametrizables, como las actividades de las funciones de cálculo que reciben uno o varios parámetros y devuelven un resultado.
Ejemplo
La figura 9.21 representa la gestión del pago de una yegua integrando la negociación del precio. La gestión se incluye en el diagrama general de compra de la figura 9.22 en tanto que actividad compuesta y se representa con una horquilla.
Figura 9.21 - Ejemplo de actividad compuesta
Figura 9.22 - Ejemplo de inclusión de una actividad compuesta
Las actividades de alternativa y de bucle
También es posible representar una alternativa o un bucle mediante una actividad compuesta especializada. La figura 9.23 muestra, en la sección superior, la actividad alternativa que comprende una comprobación y un cuerpo (body) y, en la sección inferior, la actividad de bucle que comprende una fase de inicialización (setup), una comprobación y un cuerpo (body).
La semántica de la actividad de alternativa es la siguiente: si la comprobación, que es una expresión lógica, se cumple, entonces se ejecuta el cuerpo. El bucle es del tipo "mientras que". Su semántica es la siguiente: en primer lugar se ejecuta la inicialización y a continuación, mientras se cumpla la condición, el cuerpo se ejecuta.
La actividad que se corresponde con la comprobación incluye un pin de salida de tipo Boolean. Este pin de salida sirve para transmitir el resultado de la comprobación a la actividad compuesta.
Figura 9.23 - Actividades de alternativa y de bucle
Ejemplo
El ejemplo de la figura 9.6 se representa en la figura 9.24 mediante una actividad de alternativa.
Figura 9.24 - Ejemplo de actividad de alternativa
Ejemplo
El ejemplo de la figura 9.21 se representa en la figura 9.25 mediante una actividad de bucle. Cabe destacar que la actividad de evaluación del precio se ha tenido que duplicar, un efecto...
Las regiones de actividad interruptibles
Una región de actividad interruptible incluye un grupo de nodos de actividad cuya ejecución puede interrumpirse por una excepción. Esta excepción va a dirigir el flujo de control hacia una nueva actividad que va a recibir la información correspondiente a esta excepción sobre alguno de sus pines de entrada.
Ejemplo
Retomamos el ejemplo de la figura 9.9 que hemos simplificado en la figura 9.26 conservando principalmente la negociación del precio. Esta sección del diagrama de actividades forma, ahora, una región de actividad interruptible. Está dotada de una actividad de recepción de una señal, en este caso el abandono de la negociación (por motivos no detallados en el diagrama). La recepción de esta señal tiene como resultado producir una excepción que dirige el flujo de control hacia la actividad de cierre del dossier, actividad que recibe entonces la información correspondiente a la excepción en su pin de entrada.
Figura 9.26 - Ejemplo de región de actividad interruptible y de excepción
Las regiones de expansión
Una región de expansión es una actividad compuesta cuya ejecución se repite para cada elemento de una colección transmitida sobre un pin de entrada especial. El resultado se transmite, a su vez, sobre un pin de salida especial que se corresponde a su vez con una colección. Dicha región se corresponde bien con un procesamiento iterativo, bien con un procesamiento en paralelo o bien con un procesamiento de tipo flujo (stream) sobre todos los elementos de la colección. Estos tres modos de procesamiento están fijados por los siguientes estereotipos:
-
«iterative»: los elementos de la colección se tratan unos a continuación de los otros. Cada elemento se trata de manera secuencial por las distintas actividades de la región.
-
«parallel»: los elementos de la colección se tratan en paralelo. Dentro de cada proceso, el elemento correspondiente se trata de manera secuencial por las diferentes actividades de la región.
-
«stream»: los elementos se tratan en modo flujo por las distintas actividades de la región que se ejecutan en paralelo. En un momento dado, una actividad puede haber tratado más elementos que otra situada a continuación de la primera. Entonces, los elementos de la colección pueden situarse en estados de avance diferentes del procesamiento.
Ejemplo
La figura 9.27 muestra un diagrama...
El diagrama de vista de conjunto de las interacciones
El diagrama de vista de conjunto de las interacciones es un diagrama de actividades en el que éstas pueden describirse mediante diagramas de secuencia. La figura 9.28 muestra la representación gráfica de ese tipo de diagramas.
Figura 9.28 - Diagrama de vista de conjunto de las interacciones
Conclusión
El diagrama de actividades representa las actividades realizadas por uno o varios objetos. Puede corresponder a la descripción detallada de una actividad del diagrama de estados-transiciones o a la descripción de un método o de un programa, etc. También puede describir la actividad de un sistema o subsistema asignando las responsabilidades a los actores. El diagrama de actividades constituye también una buena opción para describir casos de uso.
Ejercicios
1. El espectáculo ecuestre
Construya el diagrama de actividades de compra de una entrada para un espectáculo ecuestre.
2. La apuesta trifecta
Construya el diagrama de actividades de comprobación de la caja de una taquilla de apuestas de trifecta (sólo la parte referente a la venta de boletos, sin tener en cuenta el pago de ganancias).