Upload
truongkhanh
View
215
Download
0
Embed Size (px)
Citation preview
Diagrama de Estados
Prof. Cesar Augusto Tacla
Diagrama de estados
�Representação do comportamento de uma classe de objetos
�Possui um número de estados finitos�Comportamentos possíveis em cada estado�O que causa as mudanças de estado�Quais mudanças são possíveis
�Modelo dinâmico
Elementos básicos
�Estado�Transição�Evento�Ação
�Nas transições�Nos estados
�Atividade�Condições de guarda
Notação básica
stm Abstrato
estado inicial
Estado Estado 2
Final
transição evento [guarda] /ação
transição
Estado: tempo durante o qual o objeto satisfaz alguma condição.
Exemplo 1: janela
class Estações do ano
Initial
JanelaOriginal
JanelaMinimizada
Final
botão min.pressionado/minimizar
botão rest. pressionado/restaurar
botão fecharpressionado /destruir
transição
ação
evento
Transição automática
Ação nas transiçõesstm Liv ro ações nas transições
Initial
Disponível
Emprestado
Em reparo
Final
comprado/NotificarInteressados
Emprestado
Colocado em reparo
devolvido/NotificarInteressados
reparado/NotificarInteressados
retirado do acervo
Ação: atômica e instantânea
Ação nos estadosstm Livro ações no estado
Initial
Disponív el
+ entry / NotificarInteressados
Emprestado
Em reparo
Final
comprado
emprestado devolvido
retirado do acervo
colocado em reparo
reparado
Toda vez que se alcançao estado Disponível executa-sea ação NotificarInteressados
A palavra-chave exit funcionade forma similar, porém para asaída do estado
Atividade (do)
stm Ativ idade no estado
Initial
Impressora ociosa
Sem papel
+ do / beep(tempo)
Imprimindo
impressão iniciada
fim impressão
falta depapel
papel colocadoimpressão cancelada
impressão cancelada
tempo = 1 minuto: enquanto estiver no estado Sem Papele dentro do 1 minuto, um beep soa.
Atividade pode serinterrompida peloevento papel colocadoou impr. cancelada
Auto-transição
stm Conta letras
Initial
Contando letras
- num: int
+ entry / num++ Final
/num:=-1 enter
letra teclada
Transição interna
stm Conta letras
Initial
Contando letras
- num: int
+ F1 / mostrar help+ entry / num++ Final
/num:=-1 enter
letra teclada
transição interna F1: não provoca saída e reentrada no estadocontando letras
Ordem de execução de ações e atividades
stm Ordem exec
Initial
Estado A
+ entry / A1+ do / A2+ exit / A3
Estado B
+ entry / A5+ do / A6+ ev interno / A7+ exit / A8
Final
/A0
ev AB /AB
ev FIM /A9
ev B /A4
Qual a ordem deexecução das açõesface aos eventos:início,ev AB,ev interno,ev Bev FIM ???
Condição de guarda
Importante: condição de guarda só é avaliada na ocorrênciado evento userInput
Tipos de evento
� Chamada (call)�método
� Sinal (signal)�Recepção de
mensagem
�Evento de interface�Clique�enter
� Temporal (time)�When(12h)�After(45”)
� De Mudança(change)�When(volume>=30)
Evento de chamadastm CtrlConversao ME
Inicial
Aguarda entrada
+ entry / ^IUConversao.solicitarCelsius
fim
Final
[falso]/ConversaoCF(v),^IUConversao.mostrar(f)
[verdadeiro]/writeObject()
v:=valorfornecido
/instanciaHistorico eIUConversao
stm IUConv ersao ME
Initial
Aguarda cmdo controle
Aguarda entrada usuário
final
sol icitarCelsius valor fornecido [numéricoou "fim"]
valor fornecido[~fim & ~numérico]
destroy
mostrar(f)/mostrar(f)
Exemplo: Eventos temporaisSEMÁFORO
Evento de mudança xCondição de guarda
Avaliada somente quando o evento ocorre !
stm Estado
Initial
Aguarda entrada usuário
Final
entrada fornecida [entrada ok]
entrada fornecida [entrada ok] /beep
entrada fornecida[fim] /2x beep
1 2
1
1
Evento de mudança xCondição de guarda
Avaliação contínua
Avaliação associada ao evento
Estados compostos
�Representação�Decomposição (abstração)�Concorrência�submáquinas
Estado composto
Estado composto>>>>>>>>>>>
Estado composto: Recebendo
Histórico (shallow history)
Transição válida para qualquer evento do estado composto