25
DIAGRAMAS DE ESTADOS Edgar Gemo: [email protected] Zeferino Saugene: [email protected]

Aula capitulo9 diagrama_estados

Embed Size (px)

Citation preview

Page 1: Aula capitulo9 diagrama_estados

DIAGRAMAS DE ESTADOS

Edgar Gemo: [email protected] Saugene: [email protected]

Page 2: Aula capitulo9 diagrama_estados

Diagramas de Estado

• Modo de representar as alterações de estado dos objectos do sistema (objectos mudam de estado como resposta a eventos e à passagem de tempo).

• Exemplos:– Quando se liga/desliga um interruptor

– Depois da passagem de um determinado período de tempo, a máquina de lavar termina o seu programa de lavagem, e inicia o de secagem

Um diagrama de estado também é designado por “máquina de estados”

Page 3: Aula capitulo9 diagrama_estados

Diagrama de Estados• Diagrama de Estados

– Ilustrar o comportamento interno de um determinado objecto, sub-sistema ou sistema global.

– Representam• Possíveis estados de um objecto• Correspondentes transições entre estados• Eventos que fazem desencadear as transições• Operações (acções e actividades) executadas

dentro de um estado ou durante um transição.– Objectos evoluem ao longo do tempo através de um

conjunto de estados como resposta a eventos e àpassagem do tempo.

Page 4: Aula capitulo9 diagrama_estados

Diagramas de Estado - Representação

X

Estado inicial Estado finalEstado X

Nome

Operações

Visão de um Estado com detalhes

transição

Exemplo: “lâmpada”

AcesaDanificada

Apagada

Desligar (off) Ligar (on)

Page 5: Aula capitulo9 diagrama_estados

Diagramas de EstadoSub-Estados (potencia o mecanismo de abstracção/decomposição)

Um estado pode ser melhor descrito por um conjunto (sequencial e/ou concorrente) de outros estados, designados por “sub-estados”. Ou seja, um conjunto de estados podem ser agregados num único estado...

Page 6: Aula capitulo9 diagrama_estados

Diagramas de Estado

Sub-EstadosSub-Estados Concorrentes

Page 7: Aula capitulo9 diagrama_estados

Estados• Estado: Situação registada por um objecto durante o seu

ciclo de vida, durante a qual uma condição é verificada e vai executando alguma actividade, ou simplesmente espera que determinado evento ocorra.

Page 8: Aula capitulo9 diagrama_estados

Eventos• Elementos

– Nome• String que distingue um estado dos outros. Estado sem

nome diz-se “estado anónimo”.– Acções de Entrada e Saída

• Acções executadas à entrada e saída do estado.– Actividades

• Realizadas sobre um objecto quando se encontra nesse estado. Podem não influir sobre o estado do objecto.

– Transições internas• Transições que ocorrem mas não mudam o estado do

objecto.– Eventos diferidos

• Eventos tratados num outro estado que não o corrente, mas que fazem sentido explicitar.

– Sub-Estados• Estrutura interna ao estado composta por sub-estados

disjuntos ou concorrentes.

Page 9: Aula capitulo9 diagrama_estados

Transições• Relação entre dois estados que especifica que o objecto

pode transitar de um para o outro– Realização de um conjunto de acções.– Desencadeado por um evento e pela verificação de

determinadas condições.• Sintaxe

Evento [condição de guarda] / acção

– Podem existir com ou sem eventos, como ou sem condições de guarda, com ou sem acções.

Page 10: Aula capitulo9 diagrama_estados

Transições• Componentes de uma transição

– Estado de origem e estado de destino.– Evento de gatilho (event trigger)

• Evento cuja recepção faz com que se transite para o estado destino, caso a condição de guarda for satisfeita.

– Condição de guarda• Expressão lógica avaliada quando a transição é lançada

pelo evento de gatilho. Caso se verifique, o objecto transita, senão o estado mantém-se e o evento perde-se.

– Acção.• Executada imediatamente aquando da transição.

• Transição sem gatilho (triggerless)– Ocorrem apenas porque o estado origem termina a

sua actividade normalmente.

Page 11: Aula capitulo9 diagrama_estados

Transições• Uma transição pode ter multiplos estados-origem e

estados-destino, mas não é comum este tipo de utilização.

• Transições internas– Eventos que exigem uma resposta do objecto mas

não provocam uma mudança de estado.• Auto-Transições ou Transições Reflexivas

– Evento que não provoca mudança de estado, mas provoca a interrupção do estado corrente, obrigando à sua reentrada.

Page 12: Aula capitulo9 diagrama_estados

Exemplos

entry / inibe()registaDB()do / produzListaDiáriaexit / activa()

Proposto

Comentário favorável / NCP++Comentário desfavorável / NCN++

Discussão

Validação

Aceite

Recusado

After (1 dia)

when ( dataRegisto + períodoDiscussão >= dataActual)

[NCP > NCN] / adicionaGlossárioOficial

[NCP <= NCN] /adicionaGlossárioRecusados

Page 13: Aula capitulo9 diagrama_estados

Eventos• Ocorrência de um estímulo que pode

corresponder a uma transição de estado• Quatro tipos de eventos

– Sinais• Objecto que é enviado assincronamente por um objecto e

recebido por outro (ex: excepções).– Invocação

• Lançamento de uma operação, tipicamente de modo síncrono.

– Passagem do tempo• O que já se sabe. Usa-se a palavra-chave “after” para o

explicitar.– Mudança de estado

• Mudança de estado ou satisfação de uma condição. Usa-se “when” seguido da expressão lógica.

Page 14: Aula capitulo9 diagrama_estados

Acções e Actividades• Acção

– Computação atómica– Execução num período de tempo instantâneo

e não interrompível. – Podem ser

• Invocação de métodos• Criação ou destruição de objectos• Envio de sinal para outro objecto

– Num estado• Acções de entrada: entry• Acções de saída : exit• Outras acções internas: evento / acção.

Page 15: Aula capitulo9 diagrama_estados

Acções e Actividades• Actividade

– Computação não atómica– Interrompível por outros eventos– Corresponde a uma operação complexa

• Componentes do diagrama de actividades• Podem ser referidas na especificação de uma

estado– Através do prefixo “do”.– Sequência de acções : “do / oper1();

oper2();…”

Page 16: Aula capitulo9 diagrama_estados

Acções e Actividades

Page 17: Aula capitulo9 diagrama_estados

Ordem da realização de operações• Um estado pode incluir

– Acções de entrada, saída, actividades, transições internas e acções deferidas.

• Ordem pela qual surgem no diagramaEntry / action, action, …Do / activity, activity, …Exit / action, action, …Internal transition / action, action, …Internal transition / action, action, ……Event / DeferEvent / Defer…

Page 18: Aula capitulo9 diagrama_estados

Ordem da realização de operações

• Sequência de execução aquando de um evento de transição

1. Caso exista uma actividade em execução, deveráser interrompida “graciosamente”

2. Caso existam, executar acções de saída.3. Caso existam, executar acções definidas na

transição de estado.4. Caso existam, executar as acções de entrada,

definida na clausula “entry”, do novo estado.5. Caso existam, começar a executar as actividades

do novo estado.

Page 19: Aula capitulo9 diagrama_estados

Sub-Estados

• Estado definido dentro de outro estado– Abstracção que permite refinar/generalizar o nível de

detalhe na descrição de um estado.• Estado “Composto”

– Estado composto por sub-estados.– Pode conter

• Sub-estados concorrentes.• Sub-estados sequenciais.

Page 20: Aula capitulo9 diagrama_estados

Sub-Estados : Exemplo• Diagrama de Estados de um PC

• Variante 1

Page 21: Aula capitulo9 diagrama_estados

Sub-Estados : Exemplo

• Variante 2

Page 22: Aula capitulo9 diagrama_estados

Sub-Estados : Exemplo

• Variante 3

Page 23: Aula capitulo9 diagrama_estados

Diagramas de Estados - Outros Aspectos

• Distinção entre diferentes tipos de estados– Simples : Sem sub-estados ou regiões– Composto : Com sub-estados ou regiões– Submáquina : reutilizável, referenciada por outras

máquinas de estados.– Estado submáquina : contentor para uma sub-

máquina, especificando pontos de entrada e saída.• Possibilidade de se definir especialização ou

generalização entre estados.• Possibilidade da utilização de pseudo estados

– Estado inicial, deep history, shallow history, barra de difusão (fork), barra de junção (join), ponto de junção (junction), ponto de decisão e ponto de entrado (entrypoint)

Page 24: Aula capitulo9 diagrama_estados

• Possibilidade de utilização de portos para definição de tipos de serviço suportados por um estado.

• Possibilidade da definição de protocolos de máquinas de estados (protocol state machines) genéricos para diferentes tipos de classificadores.

Diagramas de Estados - Outros Aspectos

Page 25: Aula capitulo9 diagrama_estados

TPC1. Desenhe o Diagrama de Estados para as seguintes

situações:• Cliente e Cassete do Sistema de Gestão de

Videoclube;• Leitor e Publicação no Sistema de Gestão de

Biblioteca;• Artigo do Sistema de Gestão de Conferências;• Espectáculo, Bilhete, Sala, Lugar e Reserva do

Sistema de gestão de Espectáculos.