Vous êtes sur la page 1sur 50

Diagrama representativo de uma

Mquina de Estados (DME)

ARQUTECTURAS DE SOFTWARE

F. Mrio Martins 2008

DE-1

DIAGRAMAS DE ESTADOS (DME)


DIAGRAMAS DE M
MQUINAS DE (TRANSI
(TRANSIO DE) ESTADOS
 Para que se compreenda a verdadeira importncia dos DME em UML, ,
em rigor, necess
necessrio compreender a sua gnese e objectivos,
objectivos, em especial
apresentando as teorias/modelos nos quais se baseiam.
 Gnese: So adapta
adaptaes UML de nota
notaes h
h muito existentes para a
descri
descrio do comportamento de sistemas sob a forma de Aut
Autmatos
(m
(mquinas que funcionam sozinhas em resposta a entradas de um dado
tipo), que em cada momento se encontram num estado interno que
representa a sua mem
memria do passado e o seu conhecimento do presente
para que possa transitar correctamente para outro estado quando surge a
entrada ie. evento seguinte;
 As adapta
adaptaes visam permitir que UML possa especificar o comportacomportamento de dispositivos f
fsicos (m
(mquinas hardware) e de entidades l
lgicas
ou mquinas software
software (numa perspectiva OO, certos objectos);
objectos);
 Vamos definir alguns conceitos fundamentais sem os quais os DMEs no
podem ser compreendidos nem correctamente usados.
ARQUTECTURAS DE SOFTWARE

F. Mrio Martins 2008

DE-2

DIAGRAMAS DE ESTADOS (DME)


AUT
AUTMATOS (M
(Mquinas de Estados Finitos)
So m
mquinas cujo comportamento uma consequncia no apenas da
ltima entrada mas tamb
tambm de todo o passado de entradas (visto como a
sequncia de entradas realizadas, por exemplo mquina de caf
caf);
CaracterizamCaracterizam-se por, a cada momento, se encontrarem num estado
interno que representa
representa toda a sua experincia passada (ou seja, o
resultado da sequncia de todas as entradas registadas).
registadas). Comportamento
consiste em transitar de estado em estado (estados
(estados so em n
nmero finito).
finito).
Interactuamos com estes aut
autmatos diariamente,
diariamente, porque diariamente
usamos as m
mquinas de venda de qualquer coisa,
coisa, cf. as m
mquinas de
venda de bebidas, de chocolates, etc.; usamos tamb
tambm as ATM, usamos
as bombas de gasolina e as esta
estaes de lavagem autom
automtica de carros.
H, por
porm, muitas mquinas software
software (classes)
classes) que produzem
objectos
objectos que possuem caracter
caractersticas de comportamento, passivo ou
activo,
activo, muito semelhantes a estas m
mquinas baseadas em electr
electrnica e
mecnica.
Vejamos alguns conceitos importantes sobre aut
autmatos.
ARQUTECTURAS DE SOFTWARE

F. Mrio Martins 2008

DE-3

DIAGRAMAS DE ESTADOS (DME)


AUT
AUTMATOS
So m
mquinas cujo comportamento uma consequncia no apenas da
ltima entrada mas tamb
tambm de todo o passado (visto como a sequncia
de entradas realizadas).
realizadas).
CaracterizamCaracterizam-se por possuirem um estado interno que representa
representa
toda a sua experincia passada (comportamento = > transi
transio de estado).

ARQUTECTURAS DE SOFTWARE

F. Mrio Martins 2008

DE-4

DIAGRAMAS DE ESTADOS (DME)

 Representa
Representao gr
grfica do comportamento do aut
autmato em termos de
estados,
estados, entradas e transi
transies entre estados.
estados.

pseudo estado
inicial

entradas
estados

start + on + on + off + on = ? (estado actual depende do passado)


ARQUTECTURAS DE SOFTWARE

F. Mrio Martins 2008

DE-5

DIAGRAMAS DE ESTADOS (DME)


TornaTorna-se pois interessante e importante colocar a questo: Ser
Seramos
neste momento capazes de conceber,
conceber, usando uma nota
notao rigorosa
(nunca podendo realizar tal implementa
implementao),
o), uma mquina de venda de
chocolates ao pre
preo fixo de 50 cntimos ? Como descrever
descreveramos o que se
passa no interior de tal m
mquina, medida que vo sendo introduzidas
moedas, de tal forma que a m
mquina aceite moedas at
at ao momento em
m
quina
que a sequncia de valores das moedas introduzidas conduza a m
a um estado interno em que a mesma passe a aceitar a ordem de fornecer
fornecer
o produto e, posteriormente, eventualmente dar um troco ?
Claro que se tiv
tivssemos introduzido 5c depois de termos introduzido
25c, a m
mquina ter
ter que saber
saber que o total inserido de 30c, e mais do
que isso, que no d
d para comprar o chocolate, ou seja, o seu estado
actual no aceit
aceitvel
vel para a concluso com sucesso da tarefa. Mas o
que importante compreender neste contexto, que, se foram
introduzidos 10c e depois 25c, ento a m
mquina ter
ter que saber
saber que
actualmente capitaliza
capitaliza 35c,
35c, e que, ainda assim, no se encontra num
estado aceit
aceitvel
vel para a efectiva
efectivao da compra.
compra.
ARQUTECTURAS DE SOFTWARE

F. Mrio Martins 2008

DE-6

DIAGRAMAS DE ESTADOS (DME)

 Representa
Representao gr
grfica dos estados poss
possveis, entradas e transi
transies
de estado de uma mquina de venda de chocolates a 50 c,
c, at
at se atingir
uma quantia que permita comprar um chocolate.
chocolate.

Estados
aceit
aceitveis para
continua
continuao do
comportamento
da m
mquina
(ex
(ex comprar)

A necessidade de estrutura e
modularidade bvia
ARQUTECTURAS DE SOFTWARE

F. Mrio Martins 2008

DE-7

DIAGRAMAS DE ESTADOS (DME)


 Quando muda de estado, um aut
autmato pode gerar outputs
outputs (resul(resultados de ac
aces) que se descrevem associados s entradasentradas-eventos,
eventos, tal
como em entrada / ac
aco

ARQUTECTURAS DE SOFTWARE

F. Mrio Martins 2008

DE-8

DIAGRAMAS DE ESTADOS (DME)


 As ac
aces associadas s transi
transies podem ser quaisquer. Se
associarmos ao aut
autmato vari
variveis (extended state automaton
automaton), as
ac
vari
veis.
aces podem ter a ver com o controlo dos valores dessas vari

ARQUTECTURAS DE SOFTWARE

F. Mrio Martins 2008

DE-9

DIAGRAMAS DE ESTADOS (DME)


 Uma m
mquina de estados estendida (Mealy
(Mealy)
Mealy) definedefine-se como:
um conjunto de sinais de entrada (alfabeto de input)
um conjunto de sinais de sada (alfabeto de output)
um conjunto finito de estados (cf. FSM finite state machine)
um conjunto de transies (eventou ou sinal e aco)
um conjunto de variveis
um estado inicial
um conjunto de estados finais (se o autmato termina)
 Mquinas de Estados apenas podem modelar comportamento
discreto,
discreto, ou seja, no cont
contnuo e baseado na reac
reaco a eventos,
comportamento reactivo discreto (que no est
est sempre a ocorrer, ao
contr
contrrio de um motor de carro ou sistema de ar condicionado).
condicionado).
 Ao contr
contrrio do estado de um objecto OO, que corresponde aos
valores dos seus atributos num dado momento, os estados de um
aut
autmato so mais abstractos porque diferentes estados implicam
diferentes reac
reaces a eventos (comportamento diferente).
diferente).
ARQUTECTURAS DE SOFTWARE

F. Mrio Martins 2008

DE-10

DIAGRAMAS DE ESTADOS (DME)

 Diagrama de Estados b
bsico de UML

ARQUTECTURAS DE SOFTWARE

F. Mrio Martins 2008

DE-11

DME: Definies
Transies representam passagens de
um estado a outro pela ocorrncia de um
evento.
Associado ao evento de uma transio
podemos ter parmetros e aces.
H transies que so condicionadas, ou
seja, guardadas por uma condio entre
[ ]. Se true h transio seno
Quando uma mquina est num dado
estado e ocorre um evento, apenas uma
transio de sada pode ser tomada.
Eventos, transies e actividades so
realizados de forma instantnea.
Forma geral:
evento(pars) [guarda] / ac
aco
Qualquer das 3 partes opcional !
ARQUTECTURAS DE SOFTWARE

F. Mrio Martins 2008

DE-12

DME: Exemplos

Um simples login

Um cofre muito especial

ARQUTECTURAS DE SOFTWARE

F. Mrio Martins 2008

DE-13

DME: Refinamento
 Um estado uma situao particular dentro das vrias situaes
possveis no ciclo de vida de um autmato, durante a qual o autmato
possui dadas propriedades (cf. aberto, fechado, feliz, infeliz), satisfaz
alguma condio (cf. transitvel ou no, vlido ou invlido), realiza
alguma actividade (cf. faz soar o alarme, ou faz pisca-pisca), ou ento
apenas espera a ocorrncia de algum evento vlido.
 Tal como foi dito antes, os estados relevantes de um DME so aqueles
que respondem de forma diferente aos eventos que podem ocorrer (ver
exemplo seguinte);
 Estes autmatos so determinsticos, pelo que, tal como se disse
antes, a especificao apenas estar correcta se, partindo-se de um
qualquer estado actual, apenas 1 estado seguinte seja possvel de atingir
dadas as combinaes de eventos e guardas. Esta propriedade muito
importante e designa-se por determinismo.

ARQUTECTURAS DE SOFTWARE

F. Mrio Martins 2008

DE-14

DME: Exemplo

DME: Torniquete de entrada no Metro ou num Est


Estdio

ARQUTECTURAS DE SOFTWARE

F. Mrio Martins 2008

DE-15

DME: Implementaes (I)


public static Estado estado = Estado.Fechado;
public enum Estado { Fechado, Aberto, Fraude };
public enum Evento { bilhete, moeda, passar, pronto, reset };
public void fechar();
public void abrir();
public void passar();
public void alarme();

public void Transicao(Evento e) {


switch(estado) {
case Estado.Fechado:
switch(e) {
case Evento.moeda: { estado = Estado.Aberto; abrir(); break; }
case Evento.bilhete: { estado = Estado.Aberto; abrir(); break; }
case Evento.passar: { alarme(); break; }
}
break;
case Estado.Aberto:
switch(e) {
case Evento.moeda: { escrever(obrigado); break; }
case Evento.passar: { fechar(); break; }
}
break; ..

ARQUTECTURAS DE SOFTWARE

F. Mrio Martins 2008

DE-16

DME: Implementaes (II)


Implementa
Implementao em tabela
Estado Origem

Estado Destino

Evento

Guarda

Actividade

pseudo

Fechado

null

true

fechar

Fechado

Aberto

bilhete

true

abrir

Fechado

Aberto

moeda

true

abrir

Fechado

Fraude

passar

true

alarme

Aberto

Fechado

passar

true

fechar

Fraude

Fraude

reset

true

reset alarme

Fraude

Fechado

pronto

true

reset alarme, fechar

A implementao em tabelas muito importante quando se pretende representar estes autmatos em Bases de Dados o que muito comum, pois estes
autmatos permitem representar o ciclo de vida de, por exemplo, um
documento, um livro da biblioteca, uma tarefa, um meio complementar de
diagnstico mdico, etc.

ARQUTECTURAS DE SOFTWARE

F. Mrio Martins 2008

DE-17

DME: Exemplo

ARQUTECTURAS DE SOFTWARE

F. Mrio Martins 2008

DE-18

DME: Ramificao

Ramifica
Ramificao condicional em fun
funo
do valor de uma expresso
(pseudoestado de escolha)
escolha)

ARQUTECTURAS DE SOFTWARE

F. Mrio Martins 2008

DE-19

DME: Juno
oferta(valor) [ valor < 100] /
rejeitar

Feliz
Feliz

Venda
Venda

oferta(valor)
(valor >= 100] &
valor <200]) /
vender

Ramifica
Ramificao condicional em fun
funo
do valor de uma expresso
(pseudoestado de jun
juno)
o)

oferta(valor) [ valor >= 200]


/ vender

Infeliz
Infeliz

So equivalentes !

ARQUTECTURAS DE SOFTWARE

F. Mrio Martins 2008

DE-20

DME: Exemplos

Mquina ATM

ARQUTECTURAS DE SOFTWARE

F. Mrio Martins 2008

DE-21

DIAGRAMAS DE ESTADOS (DME)


OUTROS EVENTOS
Tipo de Evento
de tempo relativo ou de
tempo absoluto

de tempo absoluto

Descrio

Sintaxe

Tempo relativo entrada


no estado origem ou
tempo absoluto
Chegada a um dado
tempo absoluto;
Verificao de condio

after(time)
after(10s)
after(21:00)

when(time)
when(expr_bool)
when(1:00 AM)
when(qt >= 50 ct)

de chamada de operao
de recepo de sinal

ARQUTECTURAS DE SOFTWARE

Recepo de uma
chamada sncrona
Recepo de uma
comunicao assncrona

op(a:T)
sinal(a:T)

F. Mrio Martins 2008

DE-22

DME: Eventos especiais

Exemplos de utiliza
utilizao dos eventos
especiais when() e after()

ARQUTECTURAS DE SOFTWARE

F. Mrio Martins 2008

DE-23

DME: Eventos

Prof. Joo Pascoal, FEUP, 2001

ARQUTECTURAS DE SOFTWARE

F. Mrio Martins 2008

DE-24

DME: Actividades Internas


 Porm, os estados podem ter actividades internas, ou seja, quer quando
so alcanados, ou atingidos, podem executar de imediato as aces
associadas ao evento interno entry,
entry quer quando so abandonados podem
executar as aces associadas ao evento exit.
exit Podem ainda definir
eventos que tm tratamento dentro do mesmo estado, ou seja, que no
provocam transies de estado mas apenas aces realizadas internamente e apenas com efeito interno (designadas self-transitions).
Evento/Ac
Evento/Aco
entry / ac
aco

Defini
Definio
Ac
Aco executada ao entrar no estado

do / ac
aco

Ac
Aco executada enquanto estado activo

exit / ac
aco

Ac
Aco executada ao sair do estado

event / ac
aco

Ac
Aco instantaneamente executada se evento ocorrer

ARQUTECTURAS DE SOFTWARE

F. Mrio Martins 2008

DE-25

DME: Actividades Internas

ARQUTECTURAS DE SOFTWARE

F. Mrio Martins 2008

DE-26

DME: Actividades Internas


Inscrio de alunos num seminrio com n limitado de vagas

ARQUTECTURAS DE SOFTWARE

F. Mrio Martins 2008

DE-27

DME: Actividades Internas


Mquina de Venda I

ARQUTECTURAS DE SOFTWARE

F. Mrio Martins 2008

DE-28

DME: Actividades Internas

Mquina de Venda II

ARQUTECTURAS DE SOFTWARE

F. Mrio Martins 2008

DE-29

DME: Outros Estados I


OUTROS ESTADOS I
Tipo de Estado

Descrio

Notao

Estado sem subestrutura

simples

composto sequencial

estado de submquina
estado histria

ARQUTECTURAS DE SOFTWARE

S
Estado composto
formado por subestados,
dos quais apenas um est
activo quando o estado
composto est activo

Estado que referencia


uma mquina de estados

s:M

pseudo-estado cuja
activao repe o estado
previamente activo num
estado composto

F. Mrio Martins 2008

DE-30

DME: Estado Composto

Estados compostos so muito


teis na estrutura
estruturao dos
diagramas de estado

ARQUTECTURAS DE SOFTWARE

F. Mrio Martins 2008

DE-31

DME: Estado Composto

ARQUTECTURAS DE SOFTWARE

F. Mrio Martins 2008

DE-32

DME: Estado Composto

ARQUTECTURAS DE SOFTWARE

F. Mrio Martins 2008

DE-33

DME: Estado Composto

ARQUTECTURAS DE SOFTWARE

F. Mrio Martins 2008

DE-34

DME: Estado Composto

Note-se que o estado On


composto por dois
subestados, Idle e Cruising,
sendo Cruising igualmente
um estado composto.

O nvel de aninhamento
ilimitado, ou melhor, apenas
limitado pela capacidade de
compreenso e clareza.

ARQUTECTURAS DE SOFTWARE

F. Mrio Martins 2008

DE-35

DME: Memria
 O pseudo-estado de memria indica que a actividade da mquina
retomada no exacto ltimo estado completo em que esta se encontrava
aquando da ltima sada (cf. hibernar em PCs).

ARQUTECTURAS DE SOFTWARE

F. Mrio Martins 2008

DE-36

DME: Estado com Concorrncia


Ar Condicionado
Parado
(Espera ser ligado)

ON

OFF

Ar Condicionado a funcionar
Aquecedor
activado

Aquecedor
aumenta a sua
temperatura

Temperatura
estabiliza

subdiagramas
concorrentes

Aquecimento

Ventoinha
activada

Ventoinha
aumenta
velocidade

Ventoinha mantm
alta velocidade

Ventilao

Quando se entra neste estado, os dois subdiagramas so executados de


forma concorrente. O comportamento termina quando terminarem os 2.
ARQUTECTURAS DE SOFTWARE

F. Mrio Martins 2008

DE-37

DME: Concorrncia/Regies

ARQUTECTURAS DE SOFTWARE

F. Mrio Martins 2008

DE-38

DME: Sntese

ARQUTECTURAS DE SOFTWARE

F. Mrio Martins 2008

DE-39

DME: Estados Sub-Mquinas

Criada uma mquina de


estados com identificao

Um qualquer estado
de um outro
diagrama a pode
referenciar
nome : tipo
ARQUTECTURAS DE SOFTWARE

F. Mrio Martins 2008

DE-40

DME: Entry/Exit points

ARQUTECTURAS DE SOFTWARE

F. Mrio Martins 2008

DE-41

DME: Submquinas

 Submquina CheckPIN

ARQUTECTURAS DE SOFTWARE

F. Mrio Martins 2008

DE-42

DME: Exemplo

Especificao dos
passos do
estabelecimento de uma
ligao segura (SSL) a
um servidor bancrio
para realizar
transaces

ARQUTECTURAS DE SOFTWARE

F. Mrio Martins 2008

DE-43

DME: Objectos e Mquinas

Correspondncia

Um objecto
servidor

ARQUTECTURAS DE SOFTWARE

Uma FSM
F. Mrio Martins 2008

DE-44

DME: Objectos Activos


Objectos passivos possuem fluxos de execuo que dependem de
energia e inteligncia ou controlo exterior (cf. invocao de mtodos);
Objectos activos possuem energia para definir e executar os seus
prprios fluxos de execuo (threads, cf. processos leves);

P
A
S
S
I
V
O

A
C
T
I
V
O

 Semntica de runrun-toto-completion
completion => tratar 1 evento de cada vez
ARQUTECTURAS DE SOFTWARE

F. Mrio Martins 2008

DE-45

DME: Objectos Activos


Objectos activos possuem energia para definir e executar os seus
prprios fluxos de execuo (threads, cf. processos leves);
 Semntica de runrun-toto-completion
completion => tratar 1 evento de cada vez

A
C
T
I
V
O

Eventos so serializados
Elimina concorrncia interna
Minimiza overhead
overhead de mudan
mudana de
contexto

ARQUTECTURAS DE SOFTWARE

F. Mrio Martins 2008

DE-46

DME: Onde Usar ?

 Diagramas de Estado permitem-nos descrever o comportamento de


uma entidade importante do sistema de forma completa, ou seja, trazendo
para um nico diagrama o comportamento que em geral est especificado
de forma dispersa em vrios UC ou DS.
 Os diagramas de actividade tambm permitem uma viso mais sistmica,
pois permitem especificar fluxos importantes de actividades que envolvem
vrios objectos, use cases e at actores.
 Diagramas de Estado no so adequados para descrever ou analisar
colaboraes entre entidades/objectos.
 Diagramas de Estado no so usados para descrever todas as classes
do sistema, mas aquelas que exibam comportamento interessante ou
complexo. Alguns autores usam DMEs para especificar certas classes
relacionadas com a Interface com Utilizador.

ARQUTECTURAS DE SOFTWARE

F. Mrio Martins 2008

DE-47

DME: Exemplo interessante

Estes botes da
IU disparam os
eventos

http://ihcs.irit.fr/bastide/Teaching/UML/StateCharts/
ARQUTECTURAS DE SOFTWARE

F. Mrio Martins 2008

DE-48

DME: Exemplo interessante

Estes botes da
IU disparam os
eventos
A m
mquina de estados
transita de estado
mostrando sempre o
estado actual interno.
Na interface
apresentado em cada
momento ou o tempo ou
estado externo do rel
relgio

ARQUTECTURAS DE SOFTWARE

F. Mrio Martins 2008

DE-49

DME: Viso tridimensional

MODELOS
COERENTES

ARQUTECTURAS DE SOFTWARE

F. Mrio Martins 2008

DE-50

Vous aimerez peut-être aussi