You are on page 1of 5

DIAGRAMA DE ACTIVIDADES

Los diagramas de actividades se utilizan para modelar los aspectos dinmicos de un sistema, muestra el flujo
de control entre actividades. Una actividad es una ejecucin no atmica en curso, dentro de una mquina de
estado (una mquina de estados es un comportamiento que especifica las secuencias de estados por las que
pasa un objeto a lo largo de su vida en respuesta a eventos, junto con sus respuestas a estos eventos). Las
actividades producen finalmente alguna accin, que est compuesta de computaciones atmicas ejecutables
que producen un cambio en el estado del sistema o la devolucin de un valor. Las acciones incluyen
llamadas a otras operaciones, envo de seales, creacin o destruccin de objetos o simples clculos.

Diagrama de actividad es utilizado para describir una secuencia de acciones, las cuales pueden corresponder
a distintos niveles de abstraccin de un sistema: el algoritmo de una operacin en una clase, la interaccin
de un grupo de objetos, la especificacin de un caso de uso, las actividades que integran un procedimiento
en una empresa, etc.
Los diagramas de actividad son en esencia diagramas de flujo, con algunos elementos adicionales que les
permiten expresar conceptos como la concurrencia y la divisin del trabajo.








































Recibir cod.
usuario y libro
[Aceptar]
Verificar cod. libro
Verificar cod.
usuario
[NoOK]
Mensaje cod.
usuario NoOK
[NoOK]
Mensaje cod.
libro NoOK
Verificar estado
libro
[OK]
[OK]
[Disponible]
Reservar libro a
usuario
Informar libro
fuera de servicio
Informar fecha
disponible
[EnProceso]
[Reservado OR Prestado]
[Cancelar]
Estado de actividad
Estado inicial
Bifurcacin
Divisin concurrente
Unin concurrente
Estado final
Transicin

COMPONENTES.

Estados de actividad y estados de accin.
Computaciones ejecutables y atmicas se llaman estados de accin, porque son estados del sistema, y cada
una representa la ejecucin de una accin.




El nombre de estado de accin puede tener texto estructurado, como as tambin la sintaxis y la semntica
de un lenguaje de programacin especfico.
Los estados de accin
no se pueden descomponer
son atmicos (no se interrumpe la ejecucin del estado de accin)
su ejecucin conlleva un tiempo insignificante
Los estados de actividad pueden descomponerse an ms, representando su actividad con otros diagramas
de actividades
no son atmicos (pueden ser interrumpidos)
conlleva algo de tiempo
No hay distincin en cuanto a la notacin de los estados de actividad y los estados de accin, excepto que
un estado de actividad puede tener partes adicionales, como acciones de entrada y salida (entry/exit) <
acciones relacionadas con la entrada y salida del estado>- y especificaciones de submquinas





Los estados de accin y los estados de actividad son tipos especiales de estados de una mquina de
estados. Al entrar en un estado de accin o un estado de actividad, simplemente se ejecuta la accin o la
actividad; al terminar, el control pasa a la siguiente accin o actividad.

Transiciones
Cuando se completa la accin o la actividad de un estado, el flujo de control pasa inmediatamente al
siguiente estado de accin o estado de actividad. Este flujo se especifica con transiciones que muestran el
camino de un estado de actividad o estado de accin al siguiente. Estas transiciones se llaman transiciones
sin disparadores o de terminacin, porque el control pasa inmediatamente una vez que se ha finalizado la
tarea del estado origen.

Bifurcacin
Bifurcacin especifica caminos alternativos, elegidos segn el valor de alguna expresin booleana; se
representa con un rombo. Puede tener una transicin de entrada y dos o ms de salida. En cada transicin
de salida se coloca una expresin booleana (puede tener texto estructurado, como as tambin la sintaxis y
la semntica de un lenguaje de programacin especfico), que se evala slo una vez al entrar en la
bifurcacin. Las guardas de las transiciones de salida no deben solaparse (de otro modo el flujo de control
sera ambiguo), pero debern cubrir todas las posibilidades. Por comodidad, se puede utilizar la palabra else
para marcar una transicin de salida, la cual representa el camino elegido si ninguna de las otras
expresiones de guarda toman el valor verdadero. Con bifurcacin se puede lograr el efecto de la iteracin.

Divisin y unin.
Para modelar flujos de trabajo concurrentes en UML se utiliza una barra de sincronizacin para especificar la
divisin y unin de estos flujos de control paralelos.


Una divisin puede tener una transicin de entrada y dos o ms transiciones de salida, cada una de las
cuales representa un flujo de control independiente. Despus de la divisin, las actividades asociadas a cada
uno de estos caminos continan en paralelo. Conceptualmente, las actividades de cada uno de estos flujos
son verdaderamente concurrentes, aunque en un sistema en ejecucin, estos flujos pueden ser realmente
Informar libro
fuera de servicio
Preparar construccin()
entry / ponerBloqueo()
concurrentes (en el caso de un sistema instalado en varios nodos) o secuenciales y entrelazados (en el caso
de un sistema instalado en varios nodos), dando la ilusin de concurrencia real.
En la unin, los flujos concurrentes se sincronizan, es decir cada uno espera hasta que todos los flujos de
entrada han alcanzado la unin, y a partir de ah contina un nico flujo de control que sale de la unin.
Las uniones y las divisiones deben equilibrarse, es decir, el nmero de flujos que parten de una divisin
debe coincidir con el nmero de flujos que entran en la unin correspondiente.

Calles (Swimlanes)
Cuando se modelan flujos de trabajo de procesos de organizaciones, se puede dividir los estados de
actividad de un diagrama de actividades en grupos, donde cada uno representa la parte de la organizacin
responsable de esas actividades. En UML cada grupo se denomina una calle. Cada calle tiene un nombre
nico dentro del diagrama.

Cliente Ventas Almacn

Cada actividad pertenece a una nica calle, pero las transiciones pueden cruzar las calles. Cada calle puede
ser implementada por una o ms clases.



Solicitar producto
Procesar pedido
Extraer artculos
Enviar pedido
Facturar al cliente Recibir pedido
Pagar factura
Cerrar pedido
Calle
Flujo de objetos

En el flujo de control asociado a un diagrama de actividades pueden verse involucrados objetos. Se pueden
especificar los objetos implicados en un diagrama de actividades colocndolos en el diagrama, conectados
con una dependencia a la actividad o transicin que los crea, los destruye o los modifica. Este uso de las
relaciones de dependencia y de los objetos se denomina flujo de objetos, porque representa la participacin
de un objeto en un flujo de control.
Adems de mostrar el flujo de un objeto a travs de un diagrama de actividades, tambin es posible mostrar
cmo cambian los valores de sus atributos, su estado y sus roles

Cliente Ventas Almacn


Usos comunes
Cuando se modelan los aspectos dinmicos de un sistema, normalmente se utilizan los diagramas de
actividades de dos formas:
1. Para modelar un flujo de trabajo
Para ello se hace hincapi en las actividades, tal y como son vistas por los actores que colaboran con el
sistema. En este uso de los diagramas de actividades, es particularmente importante el modelado de los
flujos de objetos
2. Para modelar una operacin (como diagramas de flujo)
Solicitar producto
Procesar pedido
Extraer artculos
Enviar pedido
Facturar al cliente Recibir pedido
Pagar factura
Cerrar pedido
Calle
:Pedido
[en progreso]
:Pedido
[completado]
:Factura
[impagada]
:Factura
[pagada]
Ejercicio 1
Problema:
Un cliente desea obtener una cuenta corriente a su nombre en el negocio Los Pinos. El gerente atiende la
solicitud y consulta las referencias comerciales proporcionadas por el cliente al centro de Referencias
Comerciales. Si el gerente acepta la solicitud, fija un monto mximo de crdito y abre la cuenta corriente
solicitada. La solicitud ser rechazada si el cliente ya posee una cuenta abierta, o si no entrega referencias
comerciales o el centro de Referencias Comerciales devuelve un informe negativo.
Resolver:
Detectar el flujo de control descrito y modelarlo con un diagrama de actividades

Ejercicio 2
Problema:
Una compaa es propietaria de una cadena de hoteles en varias ciudades. Se pretende automatizar la
gestin de la reserva y ocupacin de las habitaciones.
Los clientes pueden solicitar una reserva de habitacin para ciertas fechas determinadas (en persona en un
hotel o por telfono a travs de la central de reservas). El cliente debe indicar los das previstos y el
empleado del hotel busca e indica si existen habitaciones libres teniendo en cuenta las fechas. A
continuacin, una vez confirmada, se crea una reserva para los das requeridos con los datos para la factura
(nombre, direccin y habitacin reservada).
Cuando un cliente llega al hotel, con o sin reserva, se abre una ficha para cada habitacin ocupada donde
figura el nmero de habitacin, las fechas de entrada y salida y los datos del cliente. Si exista una reserva,
se toman de ella los datos existentes. A esa ficha se le aaden los servicios que el cliente va utilizando
(telfono, desayuno, etc.). La referencia utilizada es siempre el nmero de habitacin y la fecha y hora del
servicio.
Resolver:
Detectar el flujo de control descrito y modelarlo con un diagrama de actividades

You might also like