Normalmente los diagramas de actividades contienen:
- Estados de actividad y estados de acción.
- Estado de actividad: Elemento compuesto cuyo flujo de control se compone de otros estados de actividad y de acción.
- Estado de acción: Estado que representa la ejecución de una acción atómica, que no se puede descomponer ni interrumpir, normalmente la invocación de una operación. Generalmente se considera que su ejecución conlleva un tiempo insignificante.
- Pueden definirse también otro tipo de estados:
- Transiciones: Relación entre dos estados que indica que un objeto en el primer estado realizará ciertas acciones y pasará al segundo estado cuando ocurra un evento específico y satisfaga ciertas condiciones. Se representa mediante una línea dirigida del estado inicial al siguiente. Podemos encontrar diferentes tipos de transacciones:
- Secuencial o sin disparadores: Al completar la acción del estado origen se ejecuta la acción de salida y, sin ningún retraso, el control sigue por la transición y pasa al siguiente estado.
- Bifurcación(Decision node): Especifica caminos alternativos, elegidos según el valor de alguna expresión booleana. Las condiciones de salida no deben solaparse y deben cubrir todas las posibilidades (puede utilizarse la palabra clave
else
). Pueden utilizarse para lograr el efecto de las iteraciones.
- Fusión (Merge node): Redirigen varios flujos de entrada en un único flujo de salida. No tiene tiempo de espera ni sincronización.
- División (Fork node): Permiten expresar la sincronización o ejecución paralela de actividades. Las actividades invocadas después de una división son concurrentes.
- Unión (Join node): Por definición, en la unión los flujos entrantes se sincronizan, es decir, cada uno espera hasta que todos los flujos de entrada han alcanzado la unión.
- Objetos: Manifestación concreta de una abstracción o instancia de una clase. Cuando interviene un objeto no se utilizan los flujos de eventos habituales sino flujos de objetos (se representan con una flecha de igual manera) que permiten mostrar los objetos que participan dentro del flujo de control asociado a un diagrama de actividades. Junto a ello se puede indicar cómo cambian los valores de sus atributos, su estado o sus roles.
Se utilizan carriles o calles para ver QUIENES son los responsables de realizar las distintas actividades, es decir, especifican qué parte de la organización es responsable de una actividad.
- Cada calle tiene un nombre único dentro del diagrama.
- Puede ser implementada por una o varias clases.
- Las actividades de cada calle se consideran independientes y se ejecutan concurrentemente a las de otras calles.