análisis y diseño de sistemas de información inf-162cotana.informatica.edu.bo/downloads/diagramas...

42
1 IV. UML MODULO IV Diagramas de Estados 1 Análisis y Diseño de Sistemas de Información INF-162 Facilitador: Miguel Cotaña 06 de Diciembre 2012

Upload: ledung

Post on 09-Feb-2019

226 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Análisis y Diseño de Sistemas de Información INF-162cotana.informatica.edu.bo/downloads/diagramas de estados.pdf · Los Statecharts de UML son ... ejecuta la acción de entrada

1

IV. UML

MODULO IV

Diagramas de Estados

1

Análisis y Diseño de Sistemas de Información

INF-162

Facilitador: Miguel Cotaña 06 de Diciembre 2012

Page 2: Análisis y Diseño de Sistemas de Información INF-162cotana.informatica.edu.bo/downloads/diagramas de estados.pdf · Los Statecharts de UML son ... ejecuta la acción de entrada

2 2

Un diagrama de estados muestra una máquina de estados.

Una máquina de estados es un comportamiento que especifica las secuencias de estados por la que pasa un objeto a lo largo de su vida en respuesta a eventos, junto con sus respuestas a esos eventos.

Page 3: Análisis y Diseño de Sistemas de Información INF-162cotana.informatica.edu.bo/downloads/diagramas de estados.pdf · Los Statecharts de UML son ... ejecuta la acción de entrada

Los statecharts representan máquinas de estados (autómatas de estados finitos), con estados y transiciones.

Los Statecharts de UML son básicamente los de David Harel, extendidos con características OO.

Puede ser visto como un grafo de estados conectados por transiciones etiquetadas.

3

Page 4: Análisis y Diseño de Sistemas de Información INF-162cotana.informatica.edu.bo/downloads/diagramas de estados.pdf · Los Statecharts de UML son ... ejecuta la acción de entrada

Modelan los aspectos dinámicos del sistema;

Cada objeto sigue el comportamiento descrito en el Statechart asociado a su clase;

Cada objeto está en un estado en cierto instante;

El estado está caracterizado parcialmente por los valores de los atributos del objeto;

STATECHARTS

4

Page 5: Análisis y Diseño de Sistemas de Información INF-162cotana.informatica.edu.bo/downloads/diagramas de estados.pdf · Los Statecharts de UML son ... ejecuta la acción de entrada

Los Statecharts de UML son deterministas;

La transición entre estados es instantánea y se debe a la ocurrencia de eventos;

La suposición básica es que una máquina de estados procesa un evento cada vez y termina con todas las consecuencias del evento antes de procesar otro. Si ocurren dos eventos simultáneamente se procesan como si se hubieran producido en cualquier orden, sin pérdida de generalidad. 5

Page 6: Análisis y Diseño de Sistemas de Información INF-162cotana.informatica.edu.bo/downloads/diagramas de estados.pdf · Los Statecharts de UML son ... ejecuta la acción de entrada

6

Un evento es un acontecimiento que ocupa un lugar en el tiempo y espacio;

Un evento es un estímulo que dispara una transición en una máquina de estados;

Eventos externos vs. Eventos internos;

Tipos de eventos:

–Señales (excepciones);

–Llamadas;

–Paso de tiempo;

–Cambio de estado.

EVENTOS

Page 7: Análisis y Diseño de Sistemas de Información INF-162cotana.informatica.edu.bo/downloads/diagramas de estados.pdf · Los Statecharts de UML son ... ejecuta la acción de entrada

llamada: la recepción de una petición para invocar una operación. Normalmente un evento de llamada es modelado como una operación del objeto receptor, manejado por un método del receptor y se implementa como una acción o transición de la máquina de estados;

TIPOS DE EVENTOS

7

Page 8: Análisis y Diseño de Sistemas de Información INF-162cotana.informatica.edu.bo/downloads/diagramas de estados.pdf · Los Statecharts de UML son ... ejecuta la acción de entrada

señal: Es enviada por un objeto a otro objeto o conjunto de objetos. Las señales con nombre que puede recibir un objeto se modelan designándolas en un compartimento extra de la clase de ese objeto. Normalmente una señal es manejada por la máquina de estados del objeto receptor y puede disparar una transición en la máquina de estados; 8

Page 9: Análisis y Diseño de Sistemas de Información INF-162cotana.informatica.edu.bo/downloads/diagramas de estados.pdf · Los Statecharts de UML son ... ejecuta la acción de entrada

Tiempo: representa el paso del tiempo (ocurrencia de un tiempo absoluto respecto de un reloj real o virtual o el paso de una cantidad de tiempo dada desde que un objeto entra en un estado). Palabra clave after: after (2 segundos); after 1 ms desde la salida de devInactivo;

9

Page 10: Análisis y Diseño de Sistemas de Información INF-162cotana.informatica.edu.bo/downloads/diagramas de estados.pdf · Los Statecharts de UML son ... ejecuta la acción de entrada

cambio: evento que representa un cambio en el estado o el cumplimiento de alguna condición. Palabra clave when, seguida de una expresión booleana, que puede ser de tiempo o de otra clase: when (hora = 11:30); when ( altitud < 1000).

10

Page 11: Análisis y Diseño de Sistemas de Información INF-162cotana.informatica.edu.bo/downloads/diagramas de estados.pdf · Los Statecharts de UML son ... ejecuta la acción de entrada

Manual Automático iniciarPilotoAutomático (normal)

• Evento de llamada (se representa igual que el de señal)

evento

parámetro

• Eventos de tiempo y de cambio

Inactivo Activo after (2 segundos) / cortarConexión()

when (11:30PM) / autoTest()

evento de cambio

evento de tiempo

11

Page 12: Análisis y Diseño de Sistemas de Información INF-162cotana.informatica.edu.bo/downloads/diagramas de estados.pdf · Los Statecharts de UML son ... ejecuta la acción de entrada

12

Un estado es una situación en la vida de un objeto en la que satisface cierta condición, realiza alguna actividad o espera algún evento.

Elementos de un estado:

–Nombre;

–Acciones entrada/salida;

–Transiciones internas;

–Subestados;

–Eventos diferidos.

ESTADOS

Page 13: Análisis y Diseño de Sistemas de Información INF-162cotana.informatica.edu.bo/downloads/diagramas de estados.pdf · Los Statecharts de UML son ... ejecuta la acción de entrada

13

Rastreando

entry/ activarModo(enRastreo) exit / activarModo(noRastreo)

nuevoObjetivo/rastreador.adquirir do / seguirObjetivo

autotest / defer

acción salida transición interna

evento diferido

acción entrada

actividad

Page 14: Análisis y Diseño de Sistemas de Información INF-162cotana.informatica.edu.bo/downloads/diagramas de estados.pdf · Los Statecharts de UML son ... ejecuta la acción de entrada

Se trata de un pseudoestado que indica el punto de partida por defecto para una transición cuyo destino es el límite de un estado compuesto

El estado inicial del estado de nivel más alto representa la creación de una nueva instancia de la clase

Sólo puede haber un estado inicial (directamente) dentro de cada estado compuesto

ESTADO INICIAL

14

Page 15: Análisis y Diseño de Sistemas de Información INF-162cotana.informatica.edu.bo/downloads/diagramas de estados.pdf · Los Statecharts de UML son ... ejecuta la acción de entrada

Y

entry/b

X Z

estado inicial Transición al estado inicial

e/a

f/d

/c

No se permiten disparadores de

evento, sí acciones

Si estando en X se produce e, la transición pasa al estado Y. Se ejecuta la acción de entrada b y el estado inicial queda activado. La transición saliente se dispara inmediatamente, ejecutando la acción c y pasando al estado Z. Si estando en X se produce f, se ejecuta d, se ejecuta b, al entrar a Y, y se pasa a Z, sin ejecutar c, pues el estado inicial ya no está implicado

Primer estado propiamente dicho

Dueño del estado inicial

Transición directa a un estado interior

15

Page 16: Análisis y Diseño de Sistemas de Información INF-162cotana.informatica.edu.bo/downloads/diagramas de estados.pdf · Los Statecharts de UML son ... ejecuta la acción de entrada

Estado especial dentro de un estado compuesto que, cuando está activo, indica que la ejecución del estado compuesto ha terminado y que una transición de finalización que sale del estado compuesto está activada;

Un estado final no es un pseudoestado. Puede ser activado por un periodo de tiempo, a diferencia del inicial que transita inmediatamente a su sucesor, p.ej., mientras espera la terminación de otros subestados concurrentes en el mismo estado compuesto;

16

ESTADO FINAL

Page 17: Análisis y Diseño de Sistemas de Información INF-162cotana.informatica.edu.bo/downloads/diagramas de estados.pdf · Los Statecharts de UML son ... ejecuta la acción de entrada

Las transiciones entrantes son transiciones normales.

17

X

e Y Z

estado final

El evento e causa la transición al estado final, que causa la transición de finalización hacia Z

Page 18: Análisis y Diseño de Sistemas de Información INF-162cotana.informatica.edu.bo/downloads/diagramas de estados.pdf · Los Statecharts de UML son ... ejecuta la acción de entrada

Sólo puede ocurrir un estado final (directamente) dentro de un estado compuesto. El símbolo de estado final puede repetirse dentro de un estado, pero cada copia representa el mismo estado final.

Si un objeto alcanza su estado final de nivel superior, la máquina de estados termina y se destruye el objeto

Es posible que no haya estado final, indicando una actividad continua (común por ejemplo en sistemas empotrados)

18

Page 19: Análisis y Diseño de Sistemas de Información INF-162cotana.informatica.edu.bo/downloads/diagramas de estados.pdf · Los Statecharts de UML son ... ejecuta la acción de entrada

19

Una transición de un estado A a un estado B, se produce cuando se origina el evento asociado y se satisface la condición especificada, en cuyo caso se ejecuta la acción de salida de A, la acción de entrada a B y la acción asociada a la transición.

Elementos de una transición:

–Estados origen y destino;

–Evento de disparo;

–Condición de guarda;

–Acción.

TRANSICIONES

Page 20: Análisis y Diseño de Sistemas de Información INF-162cotana.informatica.edu.bo/downloads/diagramas de estados.pdf · Los Statecharts de UML son ... ejecuta la acción de entrada

estado origen: la transición se disparará si, estando en el estado origen, se produce el evento de disparo y si la condición de guarda, si la hay, se satisface;

estado destino: estado activo tras completarse la transición;

evento de disparo: Cuando se produce un evento, afecta a todas las transiciones que lo contienen en su etiqueta. Todas las apariciones de un evento en la misma maquina de estados debe tener la misma signatura; 20

ELEMENTOS DE UNA TRANSICION

Page 21: Análisis y Diseño de Sistemas de Información INF-162cotana.informatica.edu.bo/downloads/diagramas de estados.pdf · Los Statecharts de UML son ... ejecuta la acción de entrada

condición de guarda: Expresión booleana. Si es falsa, la transición no se dispara, y si no hay otra transición etiquetada con el mismo evento que pueda dispararse, éste se pierde; Acción: computación atómica ejecutable. Pueden incluir llamadas a operaciones sobre el objeto que contiene la máquina de estados (o sobre otros visibles), creación o destrucción de objetos, o envío de una señal a otro objeto. 21

Page 22: Análisis y Diseño de Sistemas de Información INF-162cotana.informatica.edu.bo/downloads/diagramas de estados.pdf · Los Statecharts de UML son ... ejecuta la acción de entrada

Las condiciones o guardas permiten condicionar la

transición:

a bEvento[ condición ]

22

GUARDAS EN UNA TRANSICION

Page 23: Análisis y Diseño de Sistemas de Información INF-162cotana.informatica.edu.bo/downloads/diagramas de estados.pdf · Los Statecharts de UML son ... ejecuta la acción de entrada

Podemos especificar la ejecución de una acción como consecuencia de la transición:

a bEvento[ condición ] / acción

Dicha acción también se considera instantánea

Acción: computación atómica ejecutable que produce un cambio en el estado del modelo o que devuelve un valor. Puede ser realizada mediante el envío de un mensaje a un objeto provocando la modificación de un enlace o del valor de un atributo en un objeto. Puede incluir llamadas a operaciones (sobre el objeto que contiene la máquina de estados, así como sobre otros objetos visibles), creación o destrucción de objetos, o el envío de una señal a un objeto

23

ACCIONES EN UNA TRANSICION

Page 24: Análisis y Diseño de Sistemas de Información INF-162cotana.informatica.edu.bo/downloads/diagramas de estados.pdf · Los Statecharts de UML son ... ejecuta la acción de entrada

Podemos especificar el envío de un evento a

otro objeto como consecuencia de la

transición:

a

b

Evento( arg1, arg2 )[ condición ] / ^otro_objeto.evento(arg2)

24

Page 25: Análisis y Diseño de Sistemas de Información INF-162cotana.informatica.edu.bo/downloads/diagramas de estados.pdf · Los Statecharts de UML son ... ejecuta la acción de entrada

Se puede especificar el ejecutar una acción como consecuencia de entrar, salir, estar en un estado, o por la ocurrencia de un evento:

estado A

entry: acción por entrar

exit: acción por salir

do: acción mientras en estado

on evento: acción

25

Page 26: Análisis y Diseño de Sistemas de Información INF-162cotana.informatica.edu.bo/downloads/diagramas de estados.pdf · Los Statecharts de UML son ... ejecuta la acción de entrada

Las esperas son actividades que tienen asociada cierta duración;

La actividad de espera se interrumpe cuando el evento esperado tiene lugar;

Este evento desencadena una transición que permite salir del estado que alberga la actividad de espera. El flujo de control se transmite entonces a otro estado. 26

TRANSICIONES TEMPORIZADAS

Page 27: Análisis y Diseño de Sistemas de Información INF-162cotana.informatica.edu.bo/downloads/diagramas de estados.pdf · Los Statecharts de UML son ... ejecuta la acción de entrada

Ejemplo:

A

esperar dinero

entry: Mostrar mensaje

exit: cerrar ranura

B

anular

transacción

/ Abrir ranura

Transacción efectuada

después de

30 segundos

27

Page 28: Análisis y Diseño de Sistemas de Información INF-162cotana.informatica.edu.bo/downloads/diagramas de estados.pdf · Los Statecharts de UML son ... ejecuta la acción de entrada

28

Especifica la secuencia de estados por las que pasa un objeto a lo largo de su vida en respuesta a eventos, junto con sus respuestas a esos eventos;

Útil si las instancias de una clase tienen un comportamiento que depende de su historia o que deben responder a eventos externos: objetos reactivos;

Se representa mediante un diagrama de estados.

FORMALIZANDO….

Page 29: Análisis y Diseño de Sistemas de Información INF-162cotana.informatica.edu.bo/downloads/diagramas de estados.pdf · Los Statecharts de UML son ... ejecuta la acción de entrada

con préstamos

sin préstamos

alta baja

prestar devolver[ número_préstamos = 1 ]

prestar

devolver[ número_préstamos > 1 ]

número_préstamos = 0

número_préstamos > 0

Socio

número : int

nombre : char[50]

número_prestamos : int = 0

alta()

baja()

prestar(código_libro : int, fecha : date)

devolver(código_libro : int, fecha : date)

29

Page 30: Análisis y Diseño de Sistemas de Información INF-162cotana.informatica.edu.bo/downloads/diagramas de estados.pdf · Los Statecharts de UML son ... ejecuta la acción de entrada

Asociado a la clase Persona:

sin empleo en activo

jubilado

contratar

perder empleo

jubilarse

jubilarse

transición

estado

estado final

estado inicial

30

EJEMPLO

Page 31: Análisis y Diseño de Sistemas de Información INF-162cotana.informatica.edu.bo/downloads/diagramas de estados.pdf · Los Statecharts de UML son ... ejecuta la acción de entrada

autotransición

Buscando

Rastreando

Configuración

Acoplamiento

ruido

evento de disparo

transición sin disparador: (denota una transición final: que se dispara automática-mente cuando el estado origen termina su

actividad)

contactar

after(2 segundos) / send c.estaActivo

envío de señal evento de tiempo

objetivoEn(p) [representaAmenaza] / t.añadirObjetivo(p)

evento de disparo con parámetros

condición de guarda acción

Inactivo

31

Page 32: Análisis y Diseño de Sistemas de Información INF-162cotana.informatica.edu.bo/downloads/diagramas de estados.pdf · Los Statecharts de UML son ... ejecuta la acción de entrada

Podemos reducir la complejidad de estos diagramas usando la generalización de estados;

Distinguimos así entre superestado y subestados;

Un estado puede contener varios subestados disjuntos;

Los subestados heredan las variables de estado y las transiciones externas.

32

GENERALIZACION DE ESTADOS

Page 33: Análisis y Diseño de Sistemas de Información INF-162cotana.informatica.edu.bo/downloads/diagramas de estados.pdf · Los Statecharts de UML son ... ejecuta la acción de entrada

Ejemplo:

A B

C

e1

e2

e2

33

Page 34: Análisis y Diseño de Sistemas de Información INF-162cotana.informatica.edu.bo/downloads/diagramas de estados.pdf · Los Statecharts de UML son ... ejecuta la acción de entrada

Quedaría como:

C

a b A B e1

e2

34

Page 35: Análisis y Diseño de Sistemas de Información INF-162cotana.informatica.edu.bo/downloads/diagramas de estados.pdf · Los Statecharts de UML son ... ejecuta la acción de entrada

Las transiciones de entrada deben ir hacia

subestados específicos:

C

a b A B

e1

e2

e0

35

Page 36: Análisis y Diseño de Sistemas de Información INF-162cotana.informatica.edu.bo/downloads/diagramas de estados.pdf · Los Statecharts de UML son ... ejecuta la acción de entrada

Es preferible tener estados iniciales de entrada a

un nivel de manera que desde los niveles

superiores no se sepa a qué subestado se entra:

C

a b A B

e1

e2

e1

e0

36

Page 37: Análisis y Diseño de Sistemas de Información INF-162cotana.informatica.edu.bo/downloads/diagramas de estados.pdf · Los Statecharts de UML son ... ejecuta la acción de entrada

La agregación de estados es la composición de un estado a partir de varios estados independientes

La composición es concurrente por lo que el objeto estará en alguno de los estados de cada uno de los subestados concurrentes

37

Page 38: Análisis y Diseño de Sistemas de Información INF-162cotana.informatica.edu.bo/downloads/diagramas de estados.pdf · Los Statecharts de UML son ... ejecuta la acción de entrada

Por defecto, los autómatas no tienen memoria;

Es posible memorizar el último subestado visitado para recuperarlo en una transición entrante en el superestado que lo engloba;

También es posible la memorización para cualquiera de los subestados anidados (aparece un * junto a la H).

38

HISTORIA

Page 39: Análisis y Diseño de Sistemas de Información INF-162cotana.informatica.edu.bo/downloads/diagramas de estados.pdf · Los Statecharts de UML son ... ejecuta la acción de entrada

Ejemplo:

A

d2

d1

H*

B

C

x y D

out

in

39

Page 40: Análisis y Diseño de Sistemas de Información INF-162cotana.informatica.edu.bo/downloads/diagramas de estados.pdf · Los Statecharts de UML son ... ejecuta la acción de entrada

Ejemplo:

Enjuague Lavado Secado

H

Enjuague Lavado Secado

H

Espera

abir puerta cerrar puerta

40

Page 41: Análisis y Diseño de Sistemas de Información INF-162cotana.informatica.edu.bo/downloads/diagramas de estados.pdf · Los Statecharts de UML son ... ejecuta la acción de entrada

La destrucción de un objeto es efectiva cuando el flujo de control del autómata alcanza un estado final no anidado;

La llegada a un estado final anidado implica la “subida” al superestado asociado, no el fin del objeto.

41

DESTRUCCION DEL OBJETO

Page 42: Análisis y Diseño de Sistemas de Información INF-162cotana.informatica.edu.bo/downloads/diagramas de estados.pdf · Los Statecharts de UML son ... ejecuta la acción de entrada

Ejemplo:

En tierraCrear(matricula)

En vuelo

aterrizardespegar

crash

42