Upload
portaldoestudanteads
View
613
Download
2
Embed Size (px)
Citation preview
DIAGRAMAS DE ESTADOS
Edgar Gemo: [email protected] Saugene: [email protected]
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”
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.
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)
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...
Diagramas de Estado
Sub-EstadosSub-Estados Concorrentes
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.
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.
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.
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.
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.
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
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.
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.
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();…”
Acções e Actividades
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…
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.
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.
Sub-Estados : Exemplo• Diagrama de Estados de um PC
• Variante 1
Sub-Estados : Exemplo
• Variante 2
Sub-Estados : Exemplo
• Variante 3
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)
• 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
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.