Universidade da Beira Interior
Engenharia de Software
Diagramas de Estados
Fundamentos dos Diagramas de Estados:
–conceito e aplicação
–quando usar diagramas de estados
Bibliografia:
M. Fowler and K. Scott, UML Destilled: Applying the Standard Object
Modeling Language, Addison-Wesley Longman, Inc., 1997
P-A Muller, Instant UML, English Translation by Wrox Press, ltd., 1997
M. Nunes e H. O’Neilll, Fundamental de UML, FCA Editores, 2001
Universidade da Beira Interior
Tópicos Cobertos
• Diagrama de Estados:
– Conceito e aplicação
• estado
• transição de estados
– Tópicos avançados
• agrupamento de estados
• concorrência entre subestados
• Quando utilizar os Diagramas de Estados
Engenharia de Software – Capítulo 3-6 – Diagramas de Estados
2
Universidade da Beira Interior
Objectivos
• Familiarizar com os conceitos essenciais
sobre os Diagramas de Estados
– perceber o conceito de estado e transição entre estados
– mostrar exemplos de diagramas de estados
– familiarizar-se com alguns aspectos avançados relativos aos
diagramas de estados
– compreender quando usar os diagramas de estados
Engenharia de Software – Capítulo 3-6 – Diagramas de Estados
3
Universidade da Beira Interior
Máquinas de Estado: Conceito
• O comportamento dos objectos
de uma classe pode ser descrito
formalmente em termos de estados
e eventos, utilizando uma máquina
de estados conectada à classe em
consideração.
• Uma máquina de estado é uma
abstracção de todos os
comportamentos possíveis,
semelhante à forma como os
diagramas de classes são
abstracções da estrutura estática.
Engenharia de Software – Capítulo 3-6 – Diagramas de Estados
Classe
1
0 .. *
Mquina de Estados
4
Universidade da Beira Interior
Estado e Diagrama de Estados: Conceito
Cada objecto está num estado particular em cada
momento. O estado é caracterizado pelos
conceitos de duração e estabilidade.
• Estado: representa uma situação estável de um objecto que se
prolonga durante um intervalo de tempo, durante o qual os
atributos não sofrem qualquer alteração de valor, nem o objecto
sofre estímulos externos.
• Diagrama de Estados
– É uma técnica familiar para descrever o comportamento de um sistema.
– Descreve todos os estados possíveis que um dado objecto pode assumir e o
modo como o estado do objecto se altera em resultado de eventos que
atingem o objecto.
Engenharia de Software – Capítulo 3-6 – Diagramas de Estados
5
Universidade da Beira Interior
Diagramas de Estados: símbolos e elementos
de representação
•
Estado - representado por um rectângulo de cantos
arredondados, pode ter actividade associada, indicado por
uma etiqueta com a sintaxe: ex. do / actividade; possui um
identificador e um compartimento para descrever as operações
que são executadas nesse estado.
•
Estado Inicial e Final - o primeiro representado por um circulo
negro, sendo o segundo representado por um circulo negro e
circunferência exterior concêntrica com o circulo.
Estado
Intermédio
Estado Inicial
Engenharia de Software – Capítulo 3-6 – Diagramas de Estados
Estado Final
6
Universidade da Beira Interior
Diagramas de Estados: símbolos e elementos
de representação
• Transição – Ligação unidireccional entre estados,
representada por uma seta. A passagem de um estado a outro
(instantânea) acontece por via de estímulos externos (eventos)
que estão associadas à realização de acções (operações da
classe).
– Com etiqueta de transição, possuindo três partes (todas opcionais):
Nome do Evento (argumentos) [Guarda] / Acção.
– Quando uma transição não tem um evento associado, isso significa que a
transição ocorrerá logo que qualquer actividade associada ao estado seja
completada.
Estado A
Estado B
Uma transição permite a passagem de um estado a outro; é representda
através de uma linha desenhada do estado inicial para o final
Engenharia de Software – Capítulo 3-6 – Diagramas de Estados
7
Universidade da Beira Interior
Diagramas de Estados: símbolos e elementos
de representação
• Evento – Corresponde à ocorrência de uma dada situação
no domínio do problema. Um evento é utilizado como um
“trigger” para ir de um estado a outro.
– As transições especificam caminhos num diagrama de estados.
Os eventos determinam que caminhos serão percorridos.
– Eventos, transições e estados não podem ser dissociados da
descrição do comportamento dinâmico.
– Um objecto, quando num dado estado, espera pela ocorrência de
um dado evento para transitar para outro estado.
Evento
Estado A
Estado B
Um evento dispara a transição a ele associada
Engenharia de Software – Capítulo 3-6 – Diagramas de Estados
8
Universidade da Beira Interior
Diagramas de Estados: símbolos e elementos
de representação
• Guarda - condição lógica que retornará o valor “verdade” ou
“falso”. Uma transacção com guarda só ocorre se a guarda for
satisfeita.
Estado A
Evento [condição]
Estado A
Está muito quente[verão]
Estado B
A ocorrência do evento disparará a transição se
a condição se verificar
Ar
condicionado
Está muito quente[inverno]
Abrir Janela
Quando está muito quente, as guardas tornam possvel ligar o
ar condicionado ou simplesmente abrir as janelas
• As condições expressas na guarda têm de ser mutuamente
exclusivas, por forma a que num dado momento só possa
ocorrer uma transição de saída de um estado.
Engenharia de Software – Capítulo 3-6 – Diagramas de Estados
9
Universidade da Beira Interior
Diagramas de Estados: símbolos e elementos
de representação
•
Acções - estão associadas às transições ou estados e são consideradas
•
A acção corresponde a uma das operações declaradas na classe do
objecto que está a receber o evento.
•
Os estados podem também
conter acções, executadas
ao entrar (simbolizada por
entry), sair (simbolizada por
exit) ou quando ocorre um
evento quando o objecto está
no estado (simbolizada pelo
nome do evento seguido de
/), evento esse que não leve
a outro estado.
ser processos que ocorrem rapidamente – idealmente instantaneamente,
mas no real de alguns ciclos de relógio até alguns segundos, mas sempre
com um tempo de execução desprezável face à dinâmica do sistema; as
acções não são interruptíveis.
A
entry/
AnEvent/
exit/
Uma acção pode ser executada ao entar ou sair de um estado,
ou na ocorrência de um evento dentro do estado
Engenharia de Software – Capítulo 3-6 – Diagramas de Estados
10
Universidade da Beira Interior
Diagramas de Estados: símbolos e elementos
de representação
• Actividades - são as operações que estão
associadas a estados e podem demorar mais;
podem ser interrompidas por algum evento.
– Podem ser activadas em quatro momentos distintos:
•
•
•
•
no início do estado (entry/)
durante o estado (do/)
imediatamente antes da transição do estado (exit/)
ou em resposta a um estímulo (on event/)
– neste caso a sintaxe é: evento(args) [condição]: /
operação
Engenharia de Software – Capítulo 3-6 – Diagramas de Estados
11
Universidade da Beira Interior
Diagramas de Estados: símbolos e elementos
de representação
- Pontos de Execução de Operações
Para resumir, indica-se que há 6 lugares para
especificar operações que devem ser executadas.
Por ordem de execução:
–
–
–
–
–
–
Acção associada à transição à entrada do estado (op1)
Acção de entrada no estado (op2)
Actividade dentro do estado (op3)
Acção associada a eventos internos (op4)
Acção à saída do estado (op5)
Acção associada à transição à saída do estado (op6)
Engenharia de Software – Capítulo 3-6 – Diagramas de Estados
/Op1
Um estado
entry/Op2
do/Op3
AnEvent/Op4
exit/Op5
/Op6
12
Universidade da Beira Interior
Diagramas de Estados: criação e destruição de
objectos
•
•
A criação de objectos
é representada
através do envio de
um evento de criação
para a classe do
objecto.
Despenhar-se
A voar
Levantar
Os parâmetros do
evento tornam
possível inicializar o
novo objecto que tem
início num dado
estado inicial
definido na máquina
de estados da classe.
Aterrar
Criar(Registo)
Em terra
A transição de criação leva o objecto do seu estado inicial ao seu
primeiro estado de operação. Atingir o estado final implica que o objecto
desaparece.
Engenharia de Software – Capítulo 3-6 – Diagramas de Estados
13
Universidade da Beira Interior
Diagramas de Estados: transições
temporizadas
•
Por definição, os atrasos são actividades que demoram algum
tempo. Assim, atrasos são naturalmente associados a um estado e
não a uma transição e representados através de uma actividade
“atraso”.
•
A actividade atraso será interrompida quando o evento esperado
ocorrer.
•
De facto esse evento ao ocorrer, irá disparar uma transição e o fluxo
de controlo é transferido para outro estado.
•
No acetato seguinte mostra-se uma sequência de atraso relativo à
operação de depósito numa ATM.
Engenharia de Software – Capítulo 3-6 – Diagramas de Estados
14
Universidade da Beira Interior
Diagramas de Estados: transições
temporizadas
Sequência de atraso relativo à operação de depósito numa ATM.

Quando a ranhura se abre o utilizador tem 3 minutos para introduzir o
envelope com o depósito.


Se o fizer, a actividade de atraso é interrompida e há o disparo da transição que leva ao estado B
Se não o fizer em 3 minutos, é disparada a transição para o estado cancelada no fim da
actividade “atraso”.
A
A
/ Abre ranhura
/ Abre ranhura
Espera pelo dinheiro
Espera pelo dinheiro
do/Espera 3 m inutos
entry/Mostra m ensagem
exit/Fecha a ranhura
depois de (3 minutos)
Cancelar
Transacção
entry/Mostra m ensagem
exit/Fecha a ranhura
Depósito executado
Depósito executado
A voar
B
A voar
B
Representação de um temporizador através da combinação de
uma actividade Espera e uma transição automática
Cancelar
Transacção
Representação alternativa de um temporizador utilizando uma notação mais
compacta mercê do evento de disparo after (duração de temporização)
Engenharia de Software – Capítulo 3-6 – Diagramas de Estados
15
Universidade da Beira Interior
Estado e Diagrama de Estados: Exemplo
início
busca 1.º item
busca próximo item
[ainda não verificados todos os itens]
Verificação
[todos os itens verificados && todos
os itens disponíveis]
do / verifica
item
[todos os itens verificados &&
alguns itens não existentes em armazém]
Despacho
do / inicia
entrega
Item recebido
[todos itens disposníveis]
Entregue
actividade
Item recebido
[alguns itens não em stock]
Espera
auto-transição
Engenharia de Software – Capítulo 3-6 – Diagramas de Estados
transição
Entregue
estado
16
Universidade da Beira Interior
Diagramas de Estados: exemplo
Explicação do Diagrama
•
Começa-se com uma transição inicial (com acção / busca o 1.º item)
para o estado verificação, que tem uma actividade associada (verifica
item)
•
Três transições saem do estado verificação, todas com guardas:
–
–
–
•
A 1.ª é uma auto-transação: se não tivermos verificado todos os itens, busca-se o
próximo e volta-se para o estado verificação para ser verificado.
A 2.ª se tiverem sido verificados todos os itens e estiverem todos em stock, dá-se a
transição para o estado Despacho.
Na 3.ª se tiverem sido verificados todos os itens, mas não existirem todos em stock,
dá-se a transição para o estado Espera.
Olhemos para o estado “Espera”: não há actividades para este estado
e temos duas transições a sair dele, ambas com o evento Item
recebido. Isto significa que a encomenda fica em Espera até que seja
detectado esse evento. Nessa altura, vão ser avaliadas as guardas
(ou se continua em Espera ou se passa para o estado Despacho).
Engenharia de Software – Capítulo 3-6 – Diagramas de Estados
17
Universidade da Beira Interior
Diagramas de Estados: exemplo
Explicação do Diagrama (continuação)
•
No estado “Despacho”, temos uma actividade que inicia a entrega.Há uma
única transição sem guarda despoletada pelo evento “Entregue”. Isto indica
que a transição ocorrerá sempre quando esse evento ocorrer. Note-se que a
transição não ocorrerá quando a actividade ficar completa; em vez disso, uma
vez a actividade “iniciar entrega” esteja acabada, a encomenda permanece no
estado “Despacho” até que o evento Entregue ocorra.
Engenharia de Software – Capítulo 3-6 – Diagramas de Estados
18
Universidade da Beira Interior
Diagramas de Estados: exemplo
No diagrama de estados anterior, o estado final era Encomenda Entregue, mas também é de
prever que o processo seja abortado em qualquer ponto, ou seja teremos um estado final
alternativo “Cancelada”.
busca 1.º item
busca próximo item
[ainda não verificados todos os itens]
Verificação
[todos os itens verificados && todos
os itens disponíveis]
do / verifica
item
[todos os itens verificados &&
alguns itens não existentes em armazém]
Despacho
do / inicia
entrega
Item recebido
[todos itens disposníveis]
Cancelada
Entregue
Cancelada
Item recebido
[alguns itens não em stock]
Espera
Cancelada
Engenharia de Software – Capítulo 3-6 – Diagramas de Estados
Cancelada
Entregue
19
Universidade da Beira Interior
Diagramas de Estados: tópicos
avançados - agrupamento de estados
No exemplo que
estamos a tratar, a
encomenda pode
passar a
cancelada, a partir
de três estados
distintos:
verificação, espera
e despacho.
Poderemos
agrupar estes num
SuperEstado,
aumentando a
legibilidade do
diagrama.
Nome do Superestado
busca 1.º item
busca próximo item
[ainda não verificados todos os itens]
Verificação
Enc. Activa
[todos os itens verificados && todos
os itens disponíveis]
do / verifica
item
[todos os itens verificados &&
alguns itens não existentes em armazém]
Despacho
do / inicia
entrega
Item recebido
[todos itens disposníveis]
Entregue
Item recebido
[alguns itens não em stock]
Espera
Cancelada
Cancelada
Engenharia de Software – Capítulo 3-6 – Diagramas de Estados
Entregue
20
Universidade da Beira Interior
Diagramas de Estados: tópicos
avançados - concorrência entre subestados
No exemplo anterior os estados
da encomenda são baseados
na disponibilidade dos itens.
Ora há que ter em conta a
questão da autorização de
pagamento. Se olharmos para
essa questão poderemos
construir o diagrama ao lado.
Autorização
[pagamento não OK]
do / valida
pagamento
[pagamento OK]
Autorizada
Rejeitada
Entregue
Engenharia de Software – Capítulo 3-6 – Diagramas de Estados
21
Universidade da Beira Interior
Diagramas de Estados: tópicos avançados
- diagrama de estados concorrentes
As secções concorrentes do diagrama de estados são lugares nos quais, em qualquer
ponto, a encomenda está em dois estados, cada um a partir de um dos diagramas. Quando
a encomenda deixa os estados concorrentes, está apenas num único estado.
cancelada
Cancelada
Espera
Despacho
Verificação
Central
Entregue
Central
Autorizada
Autorização
Central
fim
Recusada
[Pagamento recusado]
Engenharia de Software – Capítulo 3-6 – Diagramas de Estados
22
Universidade da Beira Interior
Diagramas de Estados: tópicos
avançados - diagrama de estados concorrentes
Podemos ver que uma encomenda inicia-se em ambos os estados (verificação e
autorização). Se a actividade “verifica pagamento” do estado Verificação é completada
antes e com sucesso, então a encomenda ficará nos estados Verificação e Autorizada. Se o
evento “cancel” ocorrer, então a encomenda ficará somente no estado “Cancelada”.
Os diagramas de estados concorrentes são úteis quando um dado objecto tiver conjuntos
de comportamentos independentes.
Note-se que não deveremos
estabelecer muitos conjuntos de
comportamentos concorrentes a
ocorrer num único objecto. Se
tivermos muitos digramas de
estados concorrentes para um
objecto, deve considerar-se a
divisão do objecto em objectos
separados.
cancelada
Cancelada
Espera
Verificação
Central
Despacho
Entregue
Central
Autorização
Central
Autorizada
fim
Recusada
[Pagamento recusado]
Engenharia de Software – Capítulo 3-6 – Diagramas de Estados
23
Universidade da Beira Interior
Diagramas de Estados: quando utilizar
•
Somente para cada classe de objecto que tenha um
comportamento dinâmico relevante como, por exemplo, os
objectos de controlo ou de interface.
•
Utilizar os diagramas de estado para as classes que
exibam um comportamento interessante, onde a
construção do diagrama ajudem na compreensão do que
se passa.
Engenharia de Software – Capítulo 3-6 – Diagramas de Estados
24
Download

Diagrama de Estados