21
Diagrama de Estados Prof. Cesar Augusto Tacla

Diagrama de Estados - dainf.ct.utfpr.edu.brtacla/UML/0090-DiagEstados-slides1.pdfDiagrama de estados Representação do comportamento de uma classe de objetos Possui um número de

Embed Size (px)

Citation preview

Page 1: Diagrama de Estados - dainf.ct.utfpr.edu.brtacla/UML/0090-DiagEstados-slides1.pdfDiagrama de estados Representação do comportamento de uma classe de objetos Possui um número de

Diagrama de Estados

Prof. Cesar Augusto Tacla

Page 2: Diagrama de Estados - dainf.ct.utfpr.edu.brtacla/UML/0090-DiagEstados-slides1.pdfDiagrama de estados Representação do comportamento de uma classe de objetos Possui um número de

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

Page 3: Diagrama de Estados - dainf.ct.utfpr.edu.brtacla/UML/0090-DiagEstados-slides1.pdfDiagrama de estados Representação do comportamento de uma classe de objetos Possui um número de

Elementos básicos

�Estado�Transição�Evento�Ação

�Nas transições�Nos estados

�Atividade�Condições de guarda

Page 4: Diagrama de Estados - dainf.ct.utfpr.edu.brtacla/UML/0090-DiagEstados-slides1.pdfDiagrama de estados Representação do comportamento de uma classe de objetos Possui um número de

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.

Page 5: Diagrama de Estados - dainf.ct.utfpr.edu.brtacla/UML/0090-DiagEstados-slides1.pdfDiagrama de estados Representação do comportamento de uma classe de objetos Possui um número de

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

Page 6: Diagrama de Estados - dainf.ct.utfpr.edu.brtacla/UML/0090-DiagEstados-slides1.pdfDiagrama de estados Representação do comportamento de uma classe de objetos Possui um número de

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

Page 7: Diagrama de Estados - dainf.ct.utfpr.edu.brtacla/UML/0090-DiagEstados-slides1.pdfDiagrama de estados Representação do comportamento de uma classe de objetos Possui um número de

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

Page 8: Diagrama de Estados - dainf.ct.utfpr.edu.brtacla/UML/0090-DiagEstados-slides1.pdfDiagrama de estados Representação do comportamento de uma classe de objetos Possui um número de

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

Page 9: Diagrama de Estados - dainf.ct.utfpr.edu.brtacla/UML/0090-DiagEstados-slides1.pdfDiagrama de estados Representação do comportamento de uma classe de objetos Possui um número de

Auto-transição

stm Conta letras

Initial

Contando letras

- num: int

+ entry / num++ Final

/num:=-1 enter

letra teclada

Page 10: Diagrama de Estados - dainf.ct.utfpr.edu.brtacla/UML/0090-DiagEstados-slides1.pdfDiagrama de estados Representação do comportamento de uma classe de objetos Possui um número de

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

Page 11: Diagrama de Estados - dainf.ct.utfpr.edu.brtacla/UML/0090-DiagEstados-slides1.pdfDiagrama de estados Representação do comportamento de uma classe de objetos Possui um número de

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 ???

Page 12: Diagrama de Estados - dainf.ct.utfpr.edu.brtacla/UML/0090-DiagEstados-slides1.pdfDiagrama de estados Representação do comportamento de uma classe de objetos Possui um número de

Condição de guarda

Importante: condição de guarda só é avaliada na ocorrênciado evento userInput

Page 13: Diagrama de Estados - dainf.ct.utfpr.edu.brtacla/UML/0090-DiagEstados-slides1.pdfDiagrama de estados Representação do comportamento de uma classe de objetos Possui um número de

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)

Page 14: Diagrama de Estados - dainf.ct.utfpr.edu.brtacla/UML/0090-DiagEstados-slides1.pdfDiagrama de estados Representação do comportamento de uma classe de objetos Possui um número de

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)

Page 15: Diagrama de Estados - dainf.ct.utfpr.edu.brtacla/UML/0090-DiagEstados-slides1.pdfDiagrama de estados Representação do comportamento de uma classe de objetos Possui um número de

Exemplo: Eventos temporaisSEMÁFORO

Page 16: Diagrama de Estados - dainf.ct.utfpr.edu.brtacla/UML/0090-DiagEstados-slides1.pdfDiagrama de estados Representação do comportamento de uma classe de objetos Possui um número de

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

Page 17: Diagrama de Estados - dainf.ct.utfpr.edu.brtacla/UML/0090-DiagEstados-slides1.pdfDiagrama de estados Representação do comportamento de uma classe de objetos Possui um número de

Evento de mudança xCondição de guarda

Avaliação contínua

Avaliação associada ao evento

Page 18: Diagrama de Estados - dainf.ct.utfpr.edu.brtacla/UML/0090-DiagEstados-slides1.pdfDiagrama de estados Representação do comportamento de uma classe de objetos Possui um número de

Estados compostos

�Representação�Decomposição (abstração)�Concorrência�submáquinas

Page 19: Diagrama de Estados - dainf.ct.utfpr.edu.brtacla/UML/0090-DiagEstados-slides1.pdfDiagrama de estados Representação do comportamento de uma classe de objetos Possui um número de

Estado composto

Estado composto>>>>>>>>>>>

Page 20: Diagrama de Estados - dainf.ct.utfpr.edu.brtacla/UML/0090-DiagEstados-slides1.pdfDiagrama de estados Representação do comportamento de uma classe de objetos Possui um número de

Estado composto: Recebendo

Page 21: Diagrama de Estados - dainf.ct.utfpr.edu.brtacla/UML/0090-DiagEstados-slides1.pdfDiagrama de estados Representação do comportamento de uma classe de objetos Possui um número de

Histórico (shallow history)

Transição válida para qualquer evento do estado composto