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

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

Representacin grfica

estado inicial
Actividad 1

actividad
transicin

Actividad 2

Actividad 3

estado final

2006

Ejemplo: cajero automtico (versin 1)

Insertar tarjeta

Introducir cdigo

Introducir cantidad

Retirar tarjeta

Retirar dinero

2006

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

Recomendaciones

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


parte superior izquierda del diagrama

2006

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

Decisiones

Decisin:
Marca la existencia de flujos alternativos
Condicin/guarda:
Se escribe encima de un flujo de control e indica la
condicin que se debe cumplir para que el flujo contine a
travs de l

[cond.]

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

2006

Representacin grfica

Actividad 1

condicin

[cond. 1]

decisin

[cond. 2]

Actividad 2

Actividad 3

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

fusin

Actividad 4

2006

10

Otras posible representaciones

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

Actividad 1

[cond. 2]

[cond. 2]
Actividad 2

Actividad 2

Actividad 3

Actividad 3
Actividad 4
Actividad 4

Sin representar la fusin


(la ms usual)
2006

Sin representar la decisin


ni la fusin
11

Ejemplos: cajero automtico (versin 2)

Insertar tarjeta
[tarjeta no vlida]
[tarjeta vlida]
Introducir cdigo
[primer o segundo
cdigo no vlido]

[tercer cdigo
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

Actividad 2

divisin

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

Actividad 3

unin

Actividad 4

2006

16

Ejemplos: cajero automtico (versin 3)

Insertar tarjeta

Mensaje de
tarjeta no vlida

[tarjeta
no vlida]

Expulsar tarjeta
[tarjeta vlida]

Introducir cantidad

Introducir cdigo
[3er cdigo
no vlido]

[1er o 2 cdigo
no vlido]

[cantidad no
disponible]
[cantidad
disponible]

[cdigo vlido]
...
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
[cantidad no
disponible]

Introducir cdigo
Introducir cdigo
[3er cdigo
no vlido]

[1er o 2 cdigo
no vlido]

[cantidad
disponible]

[cdigo vlido]

2006

22

Ejemplos: cajero automtico (versin 4)

Insertar tarjeta

Terminar el proceso

[tarjeta
no vlida]
[tarjeta vlida]

Introducir cantidad

Introducir cdigo

[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

Actividad 2

2006

Actividad 3

Si la Actividad 2 es la primera que


acaba entonces la Actividad 3 se
ve interrumpida

Si la Actividad 3 es la primera que


acaba entonces la Actividad 2
contina ejecutndose hasta que
se acaba

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]

Actividad 2

[cond. 2]

Actividad 3

Actividad 4

2006

29

Ejemplos: cajero automtico (versin 5)


Cajero automtico

Usuario

Insertar tarjeta
Terminar el
proceso

[tarjeta no vlida]
[tarjeta vlida]

Introducir
cdigo

[3er cdigo
no vlido]

Introducir
cantidad

[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

Actividad 1

flujo de objetos

objeto, con
indicacin del
estado

objeto1

objeto

Actividad 2

objeto2
[estado]

Actividad 3

2006

33

Representacin grfica (alternativa)

objeto

objeto, con
indicacin del
estado

objeto2
[estado]

objeto1
Actividad 1

Actividad 3

Actividad 2
objeto1

objeto2
[estado]

flujo de objetos

2006

34

Ejemplo

Rellenar
Pedido

Pedido

2006

Enviar
Pedido

Pedido

Pedido

Rellenar
Pedido

Enviar
Pedido

Rellenar
Pedido

Enviar
Pedido

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

Actividad 1

Accin de
aceptar una
seal
Accin de
aceptar una
seal de tiempo

2006

Seal 1

Accin de
enviar una
seal

excepcin

Seal 3
Seal 2
Actividad 2

Tiempo 1

Actividad 3

38

Ejemplos

Tramitar
Pedido

Solicitar
Pago

Confirmar
Pago

Expedir
Pedido

...

Introducir cantidad
1 minuto

Mensaje de
tiempo expirado

[cantidad no
disponible]

...
2006

[cantidad
disponible]
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

Actividad 1

Final de
mes

Emitir
Informe
mensual

...

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