UML - Diagramas - luizantoniopereira.com.br 4 - OO_UML... · PUC-Rio C C E 2/28 Conhecidos como......

28
C C E PUC-Rio 1/28 Tópico 4: Diagrama de Máquinas de Estados Luiz Antônio M. Pereira [email protected]

Transcript of UML - Diagramas - luizantoniopereira.com.br 4 - OO_UML... · PUC-Rio C C E 2/28 Conhecidos como......

Page 1: UML - Diagramas - luizantoniopereira.com.br 4 - OO_UML... · PUC-Rio C C E 2/28 Conhecidos como... Diagrama de máquina de estados (UML) Diagrama de estados Diagrama de transições

C C

E

PUC-Rio

1/28

Tópico 4: Diagrama de Máquinas de Estados

Luiz Antônio M. Pereira [email protected]

Page 2: UML - Diagramas - luizantoniopereira.com.br 4 - OO_UML... · PUC-Rio C C E 2/28 Conhecidos como... Diagrama de máquina de estados (UML) Diagrama de estados Diagrama de transições

PUC-Rio

C C

E

2/28

Conhecidos como...

Diagrama de máquina de estados (UML)

Diagrama de estados

Diagrama de transições e estados

Diagrama de estados e transições...

Page 3: UML - Diagramas - luizantoniopereira.com.br 4 - OO_UML... · PUC-Rio C C E 2/28 Conhecidos como... Diagrama de máquina de estados (UML) Diagrama de estados Diagrama de transições

PUC-Rio

C C

E

3/28

DTE

Ex.: Fowler

Verificando Expedindo

Aguardando Entregue

faça/verificar

item

faça/iniciar

entrega

/obter primeiro item [nem todos os itens

verificados]

/obter próximo item

[todos os itens verifi-

cados && alguns itens

fora de estoque]

Item recebido[alguns

itens fora de estoque]

[todos os itens

verificados && todos

em estoque]

Entregue

Objeto: Pedido

Page 4: UML - Diagramas - luizantoniopereira.com.br 4 - OO_UML... · PUC-Rio C C E 2/28 Conhecidos como... Diagrama de máquina de estados (UML) Diagrama de estados Diagrama de transições

PUC-Rio

C C

E

4/28

DTE

Principais aspectos: Usados para modelar o comportamento de objetos e

sistemas que possuem comportamento dinâmico;

Descrevem os estados possíveis em que o objeto enfocado pode estar (ciclo de vida do objeto);

Descrevem as reações aos eventos que atingem os objetos enfocados;

Cada estado reflete a situação dos atributos e dos relacionamentos;

A passagem de um estado para outro se dá pela ocorrência de um evento (que pode ser o fim de uma atividade);

Page 5: UML - Diagramas - luizantoniopereira.com.br 4 - OO_UML... · PUC-Rio C C E 2/28 Conhecidos como... Diagrama de máquina de estados (UML) Diagrama de estados Diagrama de transições

PUC-Rio

C C

E

5/28

DTE

Em geral um DTE descreve o comportamento dos objetos de uma única classe;

Não é necessário construir-se DTEs para todos os objetos de nosso sistema;

É uma Máquina de Estados Finitos (FSM).

Page 6: UML - Diagramas - luizantoniopereira.com.br 4 - OO_UML... · PUC-Rio C C E 2/28 Conhecidos como... Diagrama de máquina de estados (UML) Diagrama de estados Diagrama de transições

C C

E

PUC-Rio

6/28

DTE

Elementos

Page 7: UML - Diagramas - luizantoniopereira.com.br 4 - OO_UML... · PUC-Rio C C E 2/28 Conhecidos como... Diagrama de máquina de estados (UML) Diagrama de estados Diagrama de transições

PUC-Rio

C C

E

7/28

DTE

Ex.: Fowler

Verificando Expedindo

Aguardando Entregue

faça/verificar

item

faça/iniciar

entrega

/obter primeiro item [nem todos os itens

verificados]

/obter próximo item

[todos os itens verifi-

cados && alguns itens

fora de estoque]

Item recebido[alguns

itens fora de estoque]

[todos os itens

verificados && todos

em estoque]

Entregue

Início

Page 8: UML - Diagramas - luizantoniopereira.com.br 4 - OO_UML... · PUC-Rio C C E 2/28 Conhecidos como... Diagrama de máquina de estados (UML) Diagrama de estados Diagrama de transições

PUC-Rio

C C

E

8/28

DTE

Ex.: Fowler

Verificando Expedindo

Aguardando Entregue

faça/verificar

item

faça/iniciar

entrega

/obter primeiro item [nem todos os itens

verificados]

/obter próximo item

[todos os itens verifi-

cados && alguns itens

fora de estoque]

Item recebido[alguns

itens fora de estoque]

[todos os itens

verificados && todos

em estoque]

Entregue

Estados

Objeto: Pedido

Page 9: UML - Diagramas - luizantoniopereira.com.br 4 - OO_UML... · PUC-Rio C C E 2/28 Conhecidos como... Diagrama de máquina de estados (UML) Diagrama de estados Diagrama de transições

PUC-Rio

C C

E

9/28

DTE

Estado: É o resultado cumulativo da vida do objeto

até um determinado momento, sendo representado por seus atributos;

É uma condição (situação) durante a vida de um objeto ou uma interação na qual: ele efetua uma ação (ex.: lendo dados),

satisfaz uma condição (ex.: todos os dados lidos) ou

espera por um evento (ex.: aguardando);

Page 10: UML - Diagramas - luizantoniopereira.com.br 4 - OO_UML... · PUC-Rio C C E 2/28 Conhecidos como... Diagrama de máquina de estados (UML) Diagrama de estados Diagrama de transições

PUC-Rio

C C

E

10/28

DTE

Estados podem ser, portanto:

De atividade: nome bom » verbo no gerúndio (lendo, calculando ...)

De satisfação de condição: nome bom » verbo no particípio (autenticado, lançado...)

De espera: nome bom » verbo no gerúndio (aguardando)

Page 11: UML - Diagramas - luizantoniopereira.com.br 4 - OO_UML... · PUC-Rio C C E 2/28 Conhecidos como... Diagrama de máquina de estados (UML) Diagrama de estados Diagrama de transições

PUC-Rio

C C

E

11/28

DTE

Estado:

Envolve uma atividade lenta ...

... que pode ser interrompida por um evento;

É definido por um conjunto de atributos;

Pode ser um “estado de espera”;

Pode incluir sub-estados ou mesmo uma FSM inteira.

Page 12: UML - Diagramas - luizantoniopereira.com.br 4 - OO_UML... · PUC-Rio C C E 2/28 Conhecidos como... Diagrama de máquina de estados (UML) Diagrama de estados Diagrama de transições

PUC-Rio

C C

E

12/28

DTE

Notações:

Nome_do_estado

rótulo/atividade

Nome_do_estado

ou

Onde ...

Page 13: UML - Diagramas - luizantoniopereira.com.br 4 - OO_UML... · PUC-Rio C C E 2/28 Conhecidos como... Diagrama de máquina de estados (UML) Diagrama de estados Diagrama de transições

PUC-Rio

C C

E

13/28

DTE Nome_do_estado: em geral um verbo no

gerúndio ou no particípio;

rótulo + “/” + atividade rótulo (reservados pela UML):

Entrada – executada ao se entrar no estado

Saída – executada ao se sair do estado

Fazer (faça) – executada durante a permanência no estado

Incluir – invocação de uma submáquina de estados

rótulo (outros): Para representar eventos internos (exibição de help, p/

ex.)

atividade:

descrição da atividade associada ao estado.

Page 14: UML - Diagramas - luizantoniopereira.com.br 4 - OO_UML... · PUC-Rio C C E 2/28 Conhecidos como... Diagrama de máquina de estados (UML) Diagrama de estados Diagrama de transições

PUC-Rio

C C

E

14/28

DTE

Digitando senha

entrada/inibir eco de caracteres

saída/re-habilitar eco de caracteres

fazer/obter caracter teclado

help/exibir janela de ajuda

Exemplo:

Page 15: UML - Diagramas - luizantoniopereira.com.br 4 - OO_UML... · PUC-Rio C C E 2/28 Conhecidos como... Diagrama de máquina de estados (UML) Diagrama de estados Diagrama de transições

PUC-Rio

C C

E

15/28

DTE

Ex.: Fowler

Verificando Expedindo

Aguardando Entregue

faça/verificar

item

faça/iniciar

entrega

/obter primeiro item [nem todos os itens

verificados]

/obter próximo item

[todos os itens verifi-

cados && alguns itens

fora de estoque]

Item recebido[alguns

itens fora de estoque]

[todos os itens

verificados && todos

em estoque]

Entregue

Transições

Objeto: Pedido

Page 16: UML - Diagramas - luizantoniopereira.com.br 4 - OO_UML... · PUC-Rio C C E 2/28 Conhecidos como... Diagrama de máquina de estados (UML) Diagrama de estados Diagrama de transições

PUC-Rio

C C

E

16/28

DTE

Ex.: Fowler

Verificando Expedindo

Aguardando Entregue

faça/verificar

item

faça/iniciar

entrega

/obter primeiro item [nem todos os itens

verificados]

/obter próximo item

[todos os itens verifi-

cados && alguns itens

fora de estoque]

Item recebido[alguns

itens fora de estoque]

[todos os itens

verificados && todos

em estoque]

Entregue

Auto-

transições

Page 17: UML - Diagramas - luizantoniopereira.com.br 4 - OO_UML... · PUC-Rio C C E 2/28 Conhecidos como... Diagrama de máquina de estados (UML) Diagrama de estados Diagrama de transições

PUC-Rio

C C

E

17/28

DTE

Transições:

Passagem de um estado para outro;

Ocorrem a partir de eventos;

Envolvem, em geral, ações de curta duração;

Ações não podem ser interrompidas.

Page 18: UML - Diagramas - luizantoniopereira.com.br 4 - OO_UML... · PUC-Rio C C E 2/28 Conhecidos como... Diagrama de máquina de estados (UML) Diagrama de estados Diagrama de transições

PUC-Rio

C C

E

18/28

DTE

Sintaxe para rótulos de transições (ECA):

evento + “[“ + guarda + “]” + “/” + ação

Exemplo:

evento Guarda (condição

para que a transição

seja trilhada)

Ação

executada

durante a

transição

Caracter digitado[caracter entre 65 e 90]/concatenar caracter

Exemplo mais adiante ...

Page 19: UML - Diagramas - luizantoniopereira.com.br 4 - OO_UML... · PUC-Rio C C E 2/28 Conhecidos como... Diagrama de máquina de estados (UML) Diagrama de estados Diagrama de transições

PUC-Rio

C C

E

19/28

DTE Observações:

Evento e/ou guarda e/ou ação podem ser omitidos: Evento omitido: transição ocorre quanto a

atividade do estado termina (ex. Saída do estado “Verificando”). Só é aplicável se o estado de origem da transição for um estado de atividade;

guarda omitida: transição ocorre incondicionalmente;

ação omitida: nenhuma ação executada durante a transição.

Page 20: UML - Diagramas - luizantoniopereira.com.br 4 - OO_UML... · PUC-Rio C C E 2/28 Conhecidos como... Diagrama de máquina de estados (UML) Diagrama de estados Diagrama de transições

PUC-Rio

C C

E

20/28

DTE

Exemplo: Estados de objetos da classe Sessão UNIX

Informando senha

Caracter digitado[caracter entre 65 e 90] /concatenar caracter a nome usuário

Informando nome usuário

Caracter digitado[caracter = “CR”] /inibir eco de caracteres

Caracter digitado[caracter entre 65 e 90] /concatenar caracter à senha

Autenticando usuário/senha

Caracter digitado[caracter = “CR”] /habilitar eco de caracteres

Iniciando sessão

[usuário autenticado]

[usu

ário n

ão a

ute

ntica

do]

...

Page 21: UML - Diagramas - luizantoniopereira.com.br 4 - OO_UML... · PUC-Rio C C E 2/28 Conhecidos como... Diagrama de máquina de estados (UML) Diagrama de estados Diagrama de transições

PUC-Rio

C C

E

21/28

DTE

Observações: Apenas uma única transição por vez pode

ocorrer na saída de um estado. Em outras palavras ...

... Transições de saída do mesmo estado são mutuamente excludentes (determinismo);

Exemplo: Vide guardas nas saídas do estado “Verificando”.

Ações são em geral mais rápidas do que atividades;

Ações e atividades são associadas a métodos das classes.

Page 22: UML - Diagramas - luizantoniopereira.com.br 4 - OO_UML... · PUC-Rio C C E 2/28 Conhecidos como... Diagrama de máquina de estados (UML) Diagrama de estados Diagrama de transições

PUC-Rio

C C

E

22/28

DTE

Observações:

Eventos também podem ser passagens de períodos de tempo.

Page 23: UML - Diagramas - luizantoniopereira.com.br 4 - OO_UML... · PUC-Rio C C E 2/28 Conhecidos como... Diagrama de máquina de estados (UML) Diagrama de estados Diagrama de transições

PUC-Rio

C C

E

23/28

DTE Conceitos avançados:

Um estado pode conter outros estados,

concorrentes ou independentes – Estado

Composto

Transição de/para Estados Compostos

Transições de/para Estados Concorrentes

Exemplo de objetos da classe Telefone:

Page 24: UML - Diagramas - luizantoniopereira.com.br 4 - OO_UML... · PUC-Rio C C E 2/28 Conhecidos como... Diagrama de máquina de estados (UML) Diagrama de estados Diagrama de transições

PUC-Rio

C C

E

24/28

DTE

Objeto: Telefone

Trivial Não tão trivial...

Desligado Ligado

telefone é colocado no gancho

/desconectar

telefone é retirado do gancho

/solicitar tom de discagem

Page 25: UML - Diagramas - luizantoniopereira.com.br 4 - OO_UML... · PUC-Rio C C E 2/28 Conhecidos como... Diagrama de máquina de estados (UML) Diagrama de estados Diagrama de transições

PUC-Rio

C C

E

25/28

DTE

Objeto: Telefone

Desligado

Ligado

Timeout

+ do / tom de ocupado

Pronto

+ do / tom de discar

Discando

Número Inv álido

+ do / mensagem de erro

Conectando

Chamando

+ do / sinal de chamada

Ocupado

+ do / tom de ocupado

Falando

telefone é retirado do gancho

/solicitar tom de discagem

telefone é desligado

/desconectar

após (15s)

digito pressionado

após(20s)

digito pressionado [número incompleto]

digito pressionado [número

inválido]

digito pressionado [número válido]

conexão estabelecidaapós(20s)

ocupação detectada

destinatário atendeu

Page 26: UML - Diagramas - luizantoniopereira.com.br 4 - OO_UML... · PUC-Rio C C E 2/28 Conhecidos como... Diagrama de máquina de estados (UML) Diagrama de estados Diagrama de transições

PUC-Rio

C C

E

26/28

DTE Estados concorrentes:

Verificando

Aguardando

Expedindo

Autorizando Autorizado

Entregue

Objeto: Pedido

Page 27: UML - Diagramas - luizantoniopereira.com.br 4 - OO_UML... · PUC-Rio C C E 2/28 Conhecidos como... Diagrama de máquina de estados (UML) Diagrama de estados Diagrama de transições

PUC-Rio

C C

E

27/28

DTE

Observação final:

Desenvolva DTEs somente para classes (um para cada uma) que apresentam mudanças significativas de estados ao longo de suas vidas (em geral “atravessam” mais de um caso de uso);

Page 28: UML - Diagramas - luizantoniopereira.com.br 4 - OO_UML... · PUC-Rio C C E 2/28 Conhecidos como... Diagrama de máquina de estados (UML) Diagrama de estados Diagrama de transições

PUC-Rio

C C

E

28/28

DTE

Exercícios...