Está en la página 1de 5

Apuntes de Ingeniera del Software II

CAPTULO 9. DIAGRAMAS DE
ACTIVIDAD

1. Introduccin
Los diagramas de actividad son uno de los diagramas UML que muestran el com-
portamiento dinmico del sistema. Esencialmente, consisten en un diagrama de flujo en
el que se muestran los pasos que deben ejecutarse para cumplir un proceso de cmputo,
pudiendo tambin incluir aspectos de sincronizacin.
Los diagramas de actividad con un caso especial de las mquinas de estados. Si con
stas representbamos el comportamiento de un solo elemento, con los diagramas de
actividad representamos procesos en los que (1) interviene ms de un clasificador y (2)
consideramos necesario representar cmo colaboran esos clasificadores entre s.
La siguiente figura muestra la sintaxis abstracta de los diagramas de actividad.
Como se observa, muchos de los elementos se incluan ya en la Figura 108 (pgina
115), en la que se describan las mquinas de estados. El contorno de los nuevos ele-
mentos se marca en color rojo y, para los que lo vean en blanco y negro, tambin en
trazo ms grueso.

131 (c) Macario Polo Usaola


Apuntes de Ingeniera del Software II

Figura 121. Sintaxis abstracta de los diagramas de actividad

2. Elementos de los diagramas de actividad


A continuacin se describen los elementos nuevos que aparecen en la Figura 121.
Compltense estas descripciones con las de la tabla Tabla 2 (pgina 119 y anteriores),
en el captulo anterior.
Elemento Descripcin Asociaciones y otros atributos
Diagrama de acti- Tipo especial de mquina de estados
vidad que describe un proceso computacio-
(ActivityGraph) nal en funcin del flujo de control y
del flujo de objetos entre las activida-
des que lo forman el proceso descrito.
Particin (Parti- Mecanismo que permite dividir los
tion) estados del diagrama en grupos. Los
estados de cada particin son los co-
nocidos a travs del atributo contents.
Estado de accin Estado que representa un paquete isDynamic: valor booleano que, si vale
(ActionState) atmico de una o ms acciones (o se true, indica que las acciones del estado se
ejecutan todas las acciones en el pa- pueden ejecutar de forma paralela. Se usa
quete o no se ejecuta ninguna). junto a los dos siguientes atributos.
Tiene una o ms transiciones de salida dynamicArguments: lista de objetos que
implcitas: es decir, que se sale del determina en tiempo de ejecucin el nme-
estado de manera automtica cuando ro de ejecuciones paralelas de las acciones
el paquete de acciones termina de del estado. Cada objeto sirve como par-
ejecutarse. Si hay ms de una transi- metro para una de las ejecuciones concu-

132 (c) Macario Polo Usaola


Apuntes de Ingeniera del Software II

Elemento Descripcin Asociaciones y otros atributos


cin de salida, debe etiquetarse cada rrentes.
una con una guarda. dynamicMultiplicity: nmero mximo de
Los estados de accin no pueden tener ejecuciones paralelas de esta actividad.
actividades (doActivity) ni acciones de
salida (exit).
Objeto de flujo Representa una instancia que es entra- isSynch: valor booleano que, si vale true,
(ObjectFlowState) da o salida de una accin. indica que el objeto se usa como estado de
sincronizacin.
type: tipo de la instancia.
Clasificador con Representa una instancia que se en- type: tipo de la instancia
estado (Classifie- cuentra en un cierto estado. Se usa inState: estado en el que se encuentra la
rInState) cuando en la situacin que describe el instancia
diagrama se manipula un objeto cam- parameter: parmetros que el objeto su-
bindolo varias veces de estado. ministra como salida o toma como entrada
Estado de llamada Es un estado de accin (ActionState)
(CallState) que llama a una nica operacin. Es
una forma de separar las acciones de
un ActionState en varios pequeos
estados: esto a veces es interesante
para remarcar, por ejemplo, las accio-
nes que producen determinados
resultados.
Estado de subacti- Estado que representa una secuencia isDynamic: valor booleano que, si vale
vidad (Subactivi- no atmica de ejecucin. true, indica que las acciones del estado se
tyState) pueden ejecutar de forma paralela. Se usa
junto a los dos siguientes atributos.
dynamicArguments: lista de objetos que
determina en tiempo de ejecucin el nme-
ro de ejecuciones paralelas de las acciones
del estado. Cada objeto sirve como par-
metro para una de las ejecuciones concu-
rrentes.
dynamicMultiplicity: nmero mximo de
ejecuciones paralelas de esta actividad.
Tabla 3. Descripcin de los elementos de los diagramas de actividad

3. Ejemplos y notacin
A continuacin se muestra la descripcin de la situacin en que se realiza una
transferencia con una tarjeta desde un cajero automtico: intervienen tres instancias (la
tarjeta, su cuenta asociada y la cuenta destino). Los diagramas de actividad permiten la
creacin de swimlanes (literalmente: calles de piscina). Cada calle se utiliza para re-
presentar los estados por los que pasa cada uno de los objetos que colabora activamente
en el proceso que se est describiendo.
La Figura 122 muestra el diagrama de actividad correspondiente dibujado con Ra-
tional Rose. Esta herramienta no permite la adicin de objetos al diagrama y permite
construcciones ilegales, como la adicin de acciones de salida a los estados de accin.

133 (c) Macario Polo Usaola


Apuntes de Ingeniera del Software II

El mismo diagrama se muestra en la Figura 123, pero en esta ocasin con la herra-
mienta Poseidon CE. En este caso, slo existen estados de actividad y no de accin, y
no es posible aadir swimlanes, aunque s objetos.
La situacin es bastante parecida con otras herramientas de anlisis y diseo orien-
tado a objetos (Fujaba, JDeveloper, Enterprise Architect...): todas dejan construir dia-
gramas de actividad, pero ninguno de forma completa y fiel a la sintaxis abstracta.

Figura 122. Un diagrama de actividad hecho con Rational Rose

134 (c) Macario Polo Usaola


Apuntes de Ingeniera del Software II

Figura 123. Un diagrama de actividad hecho con Poseidon CE

135 (c) Macario Polo Usaola