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

Análisis y Diseño de Sistemas de Información INF-162cotana.informatica.edu.bo/downloads/diagramas de estados1.pdf · Un diagrama de estados muestra una máquina de estados. Una

  • Upload
    vanthuy

  • View
    242

  • Download
    0

Embed Size (px)

Citation preview

1

IV. UML

MODULO IV

4.7 Diagramas de Estados

1

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

INF-162

Facilitador: Miguel Cotaña 01 de Diciembre 2010

22

Un diagrama de estados muestra unamáquina de estados.

Una máquina de estados es uncomportamiento que especifica lassecuencias de estados por la que pasaun objeto a lo largo de su vida enrespuesta a eventos, junto con susrespuestas a esos eventos.

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

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

Puede ser visto como un grafo deestados conectados por transicionesetiquetadas.

3

Modelan los aspectos dinámicos delsistema;

Cada objeto sigue elcomportamiento descrito en elStatechart asociado a su clase;

Cada objeto está en un estado encierto instante;

El estado está caracterizadoparcialmente por los valores de losatributos del objeto;

STATECHARTS

4

Los Statecharts de UML son deterministas;

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

La suposición básica es que una máquinade estados procesa un evento cada vez ytermina con todas las consecuencias delevento antes de procesar otro. Si ocurrendos eventos simultáneamente se procesancomo si se hubieran producido encualquier orden, sin pérdida degeneralidad. 5

6

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

Un evento es un estímulo que dispara unatransició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

llamada: la recepción de una peticiónpara invocar una operación.Normalmente un evento de llamada esmodelado como una operación delobjeto receptor, manejado por unmétodo del receptor y se implementacomo una acción o transición de lamáquina de estados;

TIPOS DE EVENTOS

7

señal: Es enviada por un objeto a otroobjeto o conjunto de objetos. Lasseñales con nombre que puede recibirun objeto se modelan designándolasen un compartimento extra de la clasede ese objeto. Normalmente una señales manejada por la máquina deestados del objeto receptor y puededisparar una transición en la máquinade estados; 8

Tiempo: representa el paso deltiempo (ocurrencia de un tiempoabsoluto respecto de un reloj real ovirtual o el paso de una cantidad detiempo dada desde que un objetoentra en un estado). Palabra claveafter: after (2 segundos); after 1 msdesde la salida de devInactivo;

9

cambio: evento que representa uncambio en el estado o elcumplimiento de alguna condición.Palabra clave when, seguida deuna expresión booleana, quepuede ser de tiempo o de otraclase: when (hora = 11:30); when( altitud < 1000).

10

Manual AutomáticoiniciarPilotoAutomático (normal)

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

evento

parámetro

• Eventos de tiempo y de cambio

Inactivo Activoafter (2 segundos) / cortarConexión()

when (11:30PM) / autoTest()

evento de cambio

evento de tiempo

11

12

Un estado es una situación en la vidade un objeto en la que satisface ciertacondición, realiza alguna actividad oespera algún evento.

Elementos de un estado:

–Nombre;

–Acciones entrada/salida;

–Transiciones internas;

–Subestados;

–Eventos diferidos.

ESTADOS

13

Rastreando

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

nuevoObjetivo/rastreador.adquirirdo / seguirObjetivo

autotest / defer

acción salidatransición interna

evento diferido

acción entrada

actividad

Se trata de un pseudoestado queindica el punto de partida por defectopara una transición cuyo destino es ellímite de un estado compuesto

El estado inicial del estado de nivelmás alto representa la creación deuna nueva instancia de la clase

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

ESTADO INICIAL

14

Y

entry/b

XZ

estado inicialTransició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. Seejecuta la acción de entrada b y el estado inicial queda activado. Latransición saliente se dispara inmediatamente, ejecutando la acción cy pasando al estado Z. Si estando en X se produce f, se ejecuta d, seejecuta b, al entrar a Y, y se pasa a Z, sin ejecutar c, pues el estadoinicial ya no está implicado

Primer estado propiamente dicho

Dueño del estado inicial

Transición directa a un estado interior

15

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

Un estado final no es un pseudoestado.Puede ser activado por un periodo detiempo, a diferencia del inicial quetransita inmediatamente a su sucesor,p.ej., mientras espera la terminación deotros subestados concurrentes en elmismo estado compuesto;

16

ESTADO FINAL

Las transiciones entrantes sontransiciones normales.

17

X

eY Z

estadofinal

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

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

Si un objeto alcanza su estado final denivel superior, la máquina de estadostermina y se destruye el objeto

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

18

19

Una transición de un estado A a unestado B, se produce cuando seorigina el evento asociado y sesatisface la condición especificada, encuyo caso se ejecuta la acción desalida de A, la acción de entrada a B yla 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

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

estado destino: estado activo trascompletarse la transición;

evento de disparo: Cuando se produce unevento, afecta a todas las transiciones quelo contienen en su etiqueta. Todas lasapariciones de un evento en la mismamaquina de estados debe tener la mismasignatura; 20

ELEMENTOS DE UNA TRANSICION

condición de guarda: Expresiónbooleana. Si es falsa, la transición nose dispara, y si no hay otra transiciónetiquetada con el mismo evento quepueda dispararse, éste se pierde;Acción: computación atómicaejecutable. Pueden incluir llamadas aoperaciones sobre el objeto quecontiene la máquina de estados (osobre otros visibles), creación odestrucción de objetos, o envío deuna señal a otro objeto. 21

Las condiciones o guardas permiten condicionar la

transición:

a bEvento[ condición ]

22

GUARDAS EN UNA TRANSICION

Podemos especificar la ejecución de unaacció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 enel estado del modelo o que devuelve un valor. Puede ser realizadamediante el envío de un mensaje a un objeto provocando lamodificación de un enlace o del valor de un atributo en un objeto.Puede incluir llamadas a operaciones (sobre el objeto que contienela 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 unobjeto

23

ACCIONES EN UNA TRANSICION

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

Se puede especificar el ejecutar una accióncomo consecuencia de entrar, salir, estar enun 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

Las esperas son actividades que tienenasociada cierta duración;

La actividad de espera se interrumpecuando el evento esperado tienelugar;

Este evento desencadena unatransición que permite salir del estadoque alberga la actividad de espera. Elflujo de control se transmite entoncesa otro estado. 26

TRANSICIONES TEMPORIZADAS

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

28

Especifica la secuencia de estadospor las que pasa un objeto a lo largode su vida en respuesta a eventos,junto con sus respuestas a esoseventos;

Útil si las instancias de una clasetienen un comportamiento quedepende de su historia o que debenresponder a eventos externos:objetos reactivos;

Se representa mediante un diagramade estados.

FORMALIZANDO….

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

Asociado a la clase Persona:

sin empleo en activo

jubilado

contratar

perder empleo

jubilarse

jubilarse

transición

estado

estado final

estado inicial

30

EJEMPLO

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ñalevento de tiempo

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

evento de disparo con parámetros

condición de guarda acción

Inactivo

31

Podemos reducir la complejidad deestos diagramas usando lageneralización de estados;

Distinguimos así entre superestado ysubestados;

Un estado puede contener variossubestados disjuntos;

Los subestados heredan las variablesde estado y las transiciones externas.

32

GENERALIZACION DE ESTADOS

Ejemplo:

A B

C

e1

e2

e2

33

Quedaría como:

C

a bA Be1

e2

34

Las transiciones de entrada deben ir hacia

subestados específicos:

C

a bA B

e1

e2

e0

35

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 bA B

e1

e2

e1

e0

36

La agregación de estados es lacomposición de un estado a partir devarios estados independientes

La composición es concurrente por loque el objeto estará en alguno de losestados de cada uno de los subestadosconcurrentes

37

Por defecto, los autómatas no tienenmemoria;

Es posible memorizar el últimosubestado visitado para recuperarlo enuna transición entrante en elsuperestado que lo engloba;

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

38

HISTORIA

Ejemplo:

A

d2

d1

H*

B

C

x yD

out

in

39

Ejemplo:

Enjuague Lavado Secado

H

Enjuague Lavado Secado

H

Espera

abir puertacerrar puerta

40

La destrucción de un objeto es efectivacuando el flujo de control delautómata alcanza un estado final noanidado;

La llegada a un estado final anidadoimplica la “subida” al superestadoasociado, no el fin del objeto.

41

DESTRUCCION DEL OBJETO

Ejemplo:

En tierraCrear(matricula)

En vuelo

aterrizardespegar

crash

42