Está en la página 1de 43

2.

- Diseo del comportamiento:


Diagrama de actividades

M Antonia Zapata
Introduccin

Los diagramas de actividades sirven para

representar el comportamiento dinmico de un


sistema

haciendo hincapi

en la secuencia de actividades que se llevan a cabo y


las condiciones que guardan o disparan esas actividades

2006 2
Elementos bsicos

Estado inicial:

Marca el punto de inicio del flujo de ejecucin

Estado final:
Marca el punto final del flujo de ejecucin

Actividad/Accin:
Representan la realizacin de un paso del flujo de ejecucin

Flujo de control:
Determina qu actividad va a continuacin de otra
(se le puede asociar un nombre)

En los libros aparecen ejemplos con la notacin de la versin 1.5

2006 3
Representacin grfica

estado inicial

Actividad 1 actividad
transicin
Actividad 2

Actividad 3

estado final

2006 4
Ejemplo: cajero automtico (versin 1)

Insertar tarjeta

Introducir cdigo

Introducir cantidad

Retirar tarjeta

Retirar dinero

2006 5
Restricciones

Un estado inicial no puede ser destino de una transicin

Toda actividad tiene al menos un flujo de entrada y otro de


salida

Puede haber cero o ms estados finales (por ejemplo, un


proceso continuo no tendr estado final)

2006 6
Recomendaciones

Conviene colocar (no es obligado) el estado inicial en la


parte superior izquierda del diagrama

2006 7
Situaciones alternativas

Lo normal es que puedan aparecer distintos flujos dependiendo de


que se den una serie de circunstancias u otras.

Por ejemplo:

qu pasa si la tarjeta no es vlida?

qu pasa si el cdigo introducido no es el de la tarjeta?

qu pasa si la cantidad solicitada supera la cantidad disponible


en la tarjeta?

qu pasa si con los tipos de billetes que tiene el cajero en ese


momento no puede entregar la cantidad solicitada?

2006 8
Decisiones

Decisin:

Marca la existencia de flujos alternativos

Condicin/guarda:
Se escribe encima de un flujo de control e indica la [cond.]
condicin que se debe cumplir para que el flujo contine a
travs de l

Fusin (Merge):
Sirve para juntar dos o ms flujos alternativos de
ejecucin que se han producido por una decisin

2006 9
Representacin grfica

Actividad 1

decisin

condicin [cond. 1]
[cond. 2]

Flujos alternativos:
Actividad 2 Actividad 3 se lleva a cabo la
actividad 2 o la 3.

fusin
Actividad 4

2006 10
Otras posible representaciones

Actividad 1
[cond. 1] [cond. 2]
Actividad 1

[cond. 1] [cond. 2]
Actividad 2 Actividad 3
Actividad 2 Actividad 3

Actividad 4
Actividad 4

Sin representar la fusin Sin representar la decisin


(la ms usual) ni la fusin
2006 11
Ejemplos: cajero automtico (versin 2)

Insertar tarjeta

[tarjeta no vlida]

[tarjeta vlida]

Introducir cdigo
[primer o segundo
[tercer cdigo
cdigo no vlido]
no vlido]

[cdigo vlido]
...

2006 12
Restricciones

Una decisin tiene un flujo de entrada y dos o ms de


salida

Todo flujo de salida de una decisin debe estar etiquetado


con una condicin

Las condiciones de todos los flujos de salida de una decisin


deben ser disjuntas y completas

Se puede utilizar la condicin else para representar el flujo


que se sigue en caso de que ninguna de las otras
condiciones sea cierta

Una fusin tiene dos o ms flujos de entrada y un flujo de


salida

2006 13
Flujos concurrentes

Un diagrama de actividades tambin nos permite representar


flujos que ocurren de forma concurrente (en paralelo).

Tambin permite indicar actividades que se pueden hacer en


cualquier orden (si lo hicieran elementos distintos lo podran hacer
a la vez)

Por ejemplo:

A la vez que se expulsa una tarjeta no vlida se le muestra un


mensaje al usuario

Supongamos que el cdigo y la cantidad se pueden introducir en


cualquier orden.

2006 14
Flujos concurrentes

Divisin:

Marca el inicio de flujos de actividades en paralelo

Unin:
Marca el fin de flujos de actividades en paralelo

2006 15
Representacin grfica

Actividad 1

divisin


Flujos concurrentes: se
Actividad 2 Actividad 3 lleva a cabo la actividad 2
y la 3.

unin
Actividad 4

2006 16
Ejemplos: cajero automtico (versin 3)

Mensaje de Insertar tarjeta


tarjeta no vlida
[tarjeta
no vlida]
Expulsar tarjeta
[tarjeta vlida]

Introducir cdigo Introducir cantidad

[3er cdigo [1er o 2 cdigo [cantidad no


no vlido] no vlido] disponible]

[cdigo vlido] [cantidad


disponible]

...
2006 17
Reglas

Una divisin tiene un flujo de entrada y dos o ms flujos de


salida

Una unin tiene dos o ms flujos de entrada y un flujo de


salida

El flujo de salida de una unin se dispara cuando se han


finalizado todos los flujos de entrada en la unin (todos ellos
discurren en paralelo)

2006 18
Actividades complejas

Para que los diagramas no queden excesivamente complejos se


pueden modularizar haciendo uso de subactividades.

Por ejemplo:

Los procesos de:

- validacin del cdigo

- introduccin de una cantidad

- tarjeta no vlida

se puede representar aparte facilitando la comprensin del


diagrama

2006 19
Subactividades

Subactividad:

La actividad se describe ms en detalle en un diagrama


de actividades aparte

Nota: en la versin 1.5 en los diagramas de actividades se utilizaba


otro smbolo

Accin/Actividad

Una accin representa un paso del flujo de ejecucin que se


considera atmico, mientras que una actividad representa un
comportamiento compuesto de elementos individuales que son
acciones.

2006 20
Representacin grfica

Actividad 2.1
Actividad 1
subactividad
...
Actividad 2
Actividad 2.n
Actividad 3

Diagrama de actividades
describiendo la Actividad 2

2006 21
Ejemplos: cajero automtico (versin 4)

Terminar el proceso

Mensaje de
tarjeta no vlida
Introducir cantidad
Expulsar tarjeta
Introducir cantidad

Introducir cdigo [cantidad no


disponible]

Introducir cdigo [cantidad


disponible]
[3er cdigo [1er o 2 cdigo
no vlido] no vlido]

[cdigo vlido]

2006 22
Ejemplos: cajero automtico (versin 4)

Insertar tarjeta
[tarjeta
no vlida]
Terminar el proceso
[tarjeta vlida]

Introducir cdigo Introducir cantidad

[3er cdigo
no vlido] [cdigo vlido]

...
2006 23
Reglas

Un diagrama de actividades demasiado grande nos debe


hacer pensar que igual conviene incluir alguna subactividad
para simplificarlo

2006 24
Estado Final de flujo o de actividad

Ya conocemos:

Estado final:
Marca el punto final de todos los flujos de ejecucin

UML 2.0 incorpora la nocin de:

Final de flujo:
Marca el punto final de un flujo, dejando en ejecucin el
resto de flujos

2006 25
Representacin grfica

Actividad 1 Si la Actividad 2 es la primera que


acaba entonces la Actividad 3 se
ve interrumpida

Si la Actividad 3 es la primera que


Actividad 2 Actividad 3 acaba entonces la Actividad 2
contina ejecutndose hasta que
se acaba

2006 26
Particiones

Se pueden hacer particiones en un diagrama de actividades para


identificar las acciones que tienen alguna caracterstica en comn.
Por ejemplo que se llevan a cabo por un mismo actor.

Por ejemplo:

Indicar que es el usuario el que introduce el cdigo y la


cantidad

Indicar que es el sistema el que expulsa la tarjeta y muestra el


mensaje de error.

2006 27
Particiones

Particiones:
El diagrama se divide en partes, agrupando las
actividades que tienen algo en comn

2006 28
Representacin grfica

Particin 1 Particin 2

particin

Actividad 1
[cond. 1] [cond. 2]

Actividad 2 Actividad 3

Actividad 4

2006 29
Ejemplos: cajero automtico (versin 5)

Cajero automtico Usuario

Insertar tarjeta

Terminar el [tarjeta no vlida]


proceso
[tarjeta vlida]

Introducir Introducir
cdigo cantidad

[3er cdigo
no vlido] [cdigo vlido]

...
2006 30
Reglas

Cada actividad debe estar en una particin

No aconsejan representar diagramas con ms de cinco


particiones por simplicidad

2006 31
Flujo de objetos

Objetos:
Objetos que se ven involucrados en las
actividades

Flujo de objetos:
Conectan los objetos con las actividades que
los producen o los consumen.
Un flujo de objetos de una actividad a otra
implica un flujo de control.

2006 32
Representacin grfica

objeto


objeto, con
indicacin del
estado
Actividad 1 objeto1


flujo de objetos objeto2
Actividad 2
[estado]

Actividad 3

2006 33
Representacin grfica (alternativa)

objeto, con
indicacin del
estado
objeto


objeto2
objeto1 [estado]
Actividad 1 Actividad 2 Actividad 3
objeto1 objeto2
[estado]
flujo de objetos

2006 34
Ejemplo

Rellenar Enviar
Pedido Pedido Pedido

Pedido Pedido
Rellenar Enviar
Pedido Pedido

Rellenar Enviar
Pedido Pedido

2006 35
Reglas

Un flujo de objetos no puede iniciarse en un estado inicial

Los objetos (por no tratarse de actividades) pueden


aparecer encima de las lneas que sirven para dividir las
calles de una particin

2006 36
Seales

Enviar (SendEventAction):
Representa la accin de enviar una seal

Aceptar (AcceptEventAction):
Representa la accin de aceptar una seal.

Aceptar evento temporal:


Tipo particular de accin aceptar en la que la
seal es una seal de tiempo.

Excepcin:
Representa la ocurrencia de una excepcin.

Regin que se puede interrumpir:


Representa un grupo de actividades que se
pueden interrumpir.

2006 37
Representacin grfica

Accin de

Actividad 1 Seal 1 enviar una


seal
excepcin

Accin de Seal 3
aceptar una Seal 2
seal
Actividad 2
Accin de
aceptar una
seal de tiempo Tiempo 1 Actividad 3

2006 38
Ejemplos

Tramitar Solicitar Confirmar Expedir


Pedido Pago Pago Pedido

...

Introducir cantidad Mensaje de


1 minuto tiempo expirado

[cantidad no
disponible]
[cantidad
disponible]
...

2006 39
Reglas

Cuando un nodo aceptar no tiene ningn flujo de entrada su


comportamiento es especial. No acaba cuando acepta un
evento sino que se queda a la espera de nuevos eventos
mientras la actividad que lo contiene permanece activa.

Gestin
Emitir
Informe
Actividad 1 Final de mensual
mes

...

2006 40
Regiones

Nodo de expansin:
Flujo de una coleccin a travs de la frontera
de una regin de expansin

Regin de expansin:
Permite representar la ejecucin de un bloque
de actividades para cada elemento de una
coleccin de entrada

2006 41
Representacin grfica

Coleccin
de entrada

Actividad 1
Regin

Actividad 2

Actividad 3

Coleccin de
salida

2006 42
Reglas

Todos los vectores (de entrada y salida) deben tener el


mismo tamao

Existe al menos un nodo de expansin de entrada y cero o ms


nodos de expansin de salida

Si un nodo de expansin tiene nombre entonces corresponde al


nombre de un elemento individual

La ejecucin para cada uno de los elementos puede ser:


en paralelo: las ejecuciones son independientes
iterativa: secuencial, una detrs de otra
como corriente: una vez empezada la ejecucin sigue
recibiendo elementos de entrada

2006 43

También podría gustarte