El documento proporciona una introducción a los diagramas de estados en UML. Explica que los diagramas de estados muestran el flujo de control entre los estados posibles de un objeto y cómo se producen los cambios entre estados. Incluye ejemplos de máquinas de estados que modelan el estado de ánimo de una persona y el procesamiento de una orden en una tienda en línea para ilustrar los conceptos clave de los estados, transiciones y eventos.
2. 2
Diagramas de Estados
(Máquina de Estados)
Los Diagramas de Estados describen una
Máquina de Estados
(o en general, Autómatas de Estados Finitos)
hay toda una teoría matemática sobre esto:
http://en.wikipedia.org/wiki/Finite-state_machine
http://en.wikipedia.org/wiki/Mealy_machine
http://en.wikipedia.org/wiki/Moore_machine
no vamos a entrar en detalles
3. 3
Diagramas de Estados
(¿Qué Muestran?)
Un diagrama de estados muestra el flujo de control
entre estados: en qué estados posibles puede estar
“cierto algo” y cómo se producen los cambios entre
dichos estados
Una máquina de estados es un comportamiento que
especifica las secuencias 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
(Booch, Rumbaugh, Jacobson)
4. 4
Diagramas de Estados
(¿Qué Muestran?)
Son útiles para modelar cualquier aspecto de un
sistema que se pueda modelar con una máquina de
estados:
El ciclo de vida de un objeto, usuario, etc
Un protocolo de comunicación
Un interprete de un lenguaje (compiladores)
Muchas otras aplicaciones...
5. 5
Diagramas de Estados
(Máquina de Estados)
¿en qué estado (de ánimo) se
encuentra usted y como
cambia su estado de ánimo?
(cuidado, humor negro adelante)
6. 6
Diagramas de Estados
(Máquina de Estados)
normal
(vivo)
contento
triste
deprimido
menos
deprimido
...
buena
noticia
mala
noticia
anti depresivos
mucho
menos
deprimido antidepresivos
muerto
(sobredosis)
tiempo
tiempo
buena
noticia
mala
noticia
noticia
devastadora
en
tratamiento
busca
ayuda
evaluación
favorable
evaluación
desfavorable
antidepresivos
buena noticia, buena noticia, tiempo, noticia devastadora, busca ayuda,
evaluación favorable, noticia devastadora, ad, ad, ad ...
7. 7
Diagramas de Estados
(Conceptos)
Un estado es una condición o situación en la vida de un
objeto durante la cual éste satisface una condición,
realiza alguna actividad o espera algún evento
Un evento es la especificación de un acontecimiento
(estímulo) que ocupa un lugar en el tiempo y en el
espacio y que puede (o no) activar una transición de
estado
Una transición es una relación entre dos estados que
indica que un objeto que esté en el primer estado realizará
ciertas acciones y entrará en el segundo estado cuando
ocurra un evento especificado y se satisfagan unas
condiciones especificadas
8. 8
Diagramas de Estados
(Máquina de Estados)
normal
(vivo)
contento
triste
deprimido
menos
deprimido
...
buena
noticia
mala
noticia
anti depresivos
mucho
menos
deprimido antidepresivos
muerto
(sobredosis)
tiempo
tiempo
buena
noticia
mala
noticia
noticia
devastadora
en
tratamiento
busca
ayuda
evaluación
favorable
evaluación
desfavorable
antidepresivos
buena noticia, buena noticia, tiempo, noticia devastadora, busca ayuda,
evaluación favorable, noticia devastadora, ad, ad, ad ...
estados
transiciones
eventos
9. 9
Diagrama de Estado
(Ejemplo: El modelo de una puerta)
Estado
Transición
¿Como implementaría la
guarda?
¿en qué estado
se encuentra
la puerta
inicialmente?
12. 12
Diagrama de Estado
(Ejemplo: Procesando una Orden)
Do / seleccionar
producto es una
actividad que se
realiza mientras
estemos en el estado
Acción
(Se ejecuta cuando se
dispara la transición)
Adaptado de UML Gota a Gota / Martin Fowler
Volveremos más
adelante al concepto
de actividad
14. 14
Diagrama de Estado
(Ejemplo: Procesando una Orden)
¿las líneas rojas
hacen el
diagrama difícil
de leer?
¿cómo se puede
mejorar le
legibilidad?
Adaptado de UML Gota a Gota / Martin Fowler