Análisis y Diseño de Sistemas de Información INF-162cotana.informatica.edu.bo/downloads/diagramas...
Transcript of Análisis y Diseño de Sistemas de Información INF-162cotana.informatica.edu.bo/downloads/diagramas...
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
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
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