Anda di halaman 1dari 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
3

Representacin grfica

estado inicial
Actividad 1

Actividad 2 Actividad 3

actividad
transicin

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 Fusin (Merge): Sirve para juntar dos o ms flujos alternativos de ejecucin que se han producido por una decisin [cond.]

2006

Representacin grfica

Actividad 1

condicin

[cond. 1]

[cond. 2]

decisin

Actividad 2

Actividad 3

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

Actividad 4

fusin

2006

10

Otras posible representaciones

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

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 [tercer cdigo no vlido] [cdigo vlido] ... [primer o segundo cdigo no 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

Actividad 3

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

Actividad 4 2006

unin

16

Ejemplos: cajero automtico (versin 3)

Mensaje de tarjeta no vlida Expulsar tarjeta

Insertar tarjeta [tarjeta no vlida] [tarjeta vlida]

Introducir cdigo [3er cdigo no vlido] [1er o 2 cdigo no vlido] [cdigo vlido] ... 2006

Introducir cantidad [cantidad no disponible] [cantidad disponible]

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 Introducir cdigo [3er cdigo no vlido] [1er o 2 cdigo no vlido] [cdigo vlido] [cantidad no disponible] [cantidad disponible]

2006

22

Ejemplos: cajero automtico (versin 4)

Insertar tarjeta [tarjeta no vlida] [tarjeta vlida]

Terminar el proceso

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

Actividad 2

Actividad 3

Si la Actividad 3 es la primera que 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 proceso [tarjeta no vlida] [tarjeta vlida]

Introducir cdigo

Introducir 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

flujo de objetos

Actividad 2

objeto2 [estado]

Actividad 3

2006

33

Actividad 1

objeto1

Representacin grfica (alternativa)

objeto1 Actividad 1 objeto1 Actividad 2

objeto2 [estado] Actividad 3 objeto2 [estado]

flujo de objetos

2006

objeto

objeto, con indicacin del estado

34

Ejemplo

Rellenar Pedido

Pedido

Enviar Pedido

Pedido Rellenar Pedido

Pedido Enviar Pedido

Rellenar Pedido

Enviar 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 enviar una seal

Actividad 1

Seal 1

Seal 3

excepcin

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

Seal 2 Actividad 2

Tiempo 1

Actividad 3

2006

38

Ejemplos

Tramitar Pedido

Solicitar Pago

Confirmar Pago

Expedir Pedido

...

Introducir cantidad 1 minuto [cantidad no disponible] [cantidad disponible]

Mensaje de tiempo expirado

... 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 mensual

Actividad 1

Final de 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

Anda mungkin juga menyukai