UML
Statechart
CIn-UFPE
1
Modelagem Comportamental

Diagramas de Use Case

Diagramas de Seqüência

Diagramas de Colaboração

Statecharts

Diagramas de Atividades
CIn-UFPE
2
Máquinas de Estado

Podem ser aplicadas para modelar o comportamento de
vários elementos de UML: casos de uso específicos,
objetos individuais, conjuntos de objetos, ou um sistema
por completo.

Especificam as seqüências de estados de um elemento
em resposta aos eventos.




Estado
Transição
Evento
Ação e Atividade
CIn-UFPE
3
Estado

É uma situação durante a vida de um elemento, na qual
ele satisfaz alguma condição, executa alguma atividade,
ou espera por algum evento.

Exemplos:



Ocioso
Recebendo Pagamento
Entregando item
CIn-UFPE
4
Máquina de Vendas
entrada de moedas(quant.)
Ociosa
Recebendo R$
cancelar / devolver moedas
selecionar
[ item vazio ]
(item)
[ troco < 0 ]
Oferendo serviços
[ troco = 0 ]
[ troco > 0 ]
Despachando Item
CIn-UFPE
Entregando Troco
5
Estado inicial

É um estado especial que, explicitamente, mostra o início
da máquina de estado.

Pode existir exatamente um estado inicial em cada
diagrama de estado.

O ícone de estado inicial é um círculo compacto com uma
flecha.
CIn-UFPE
6
Estado final

O estado de parada é um círculo englobando um círculo
compacto com uma flecha.

Normalmente, você pode assumir que a máquina de
estado associada a uma classe sairá de sua existência
quando o estado final é atingido.
CIn-UFPE
7
Estados
Estado
Inicial
Estado
Final
desligar
teclaPresioanda
Ocisoso
Executando
término
Nome
Estado
CIn-UFPE
Nome
8
Partes de um Estado

Nome

Ações de entrada (entry):


Ações da saída (exit):


Quando entrar no estado, a ação será executada
Quando sair do estado, a ação será executada.
Atividades (do):

Enquanto no estado, o objeto faz algo que continuará a ser
executado até ser interrompido por um evento
CIn-UFPE
9
Partes de um estado: exemplo
Nome-do-estado
entry/ação-de-entrada
exit/ação-de-saída
do/atividade
CIn-UFPE
10
Transição

É um relacionamento entre dois estados, indicando que o
objeto no primeiro estado irá executar certas ações e
entrar no segundo estado quando o evento especificado
ocorrer e as condições especificadas forem satisfeitas.

Uma transição de estado é uma mudança de estado
causada por um evento.

Utiliza-se transições de estado para conectar dois
estados em um diagrama de estado ou para mostrar
transições de um estado para ele mesmo.
CIn-UFPE
11
Transição

Pode-se mostrar uma ou mais transições de estado
desde que cada transição seja única.

O ícone para uma transição de estado é uma linha com
uma ponta de flecha apontando para o próximo estado.
Ocioso
CIn-UFPE
Quente demais
Esfriando
12
Partes da transição

Estado fonte

Evento de disparo

Condição de guarda

Ação

Estado alvo
CIn-UFPE
13
Evento de disparo

Ocorrência de um estímulo que pode disparar uma
transição de estado.


Ex: Apertar o botão do mouse; Discar um dígito (número)
É possível haver uma transição sem um evento de
disparo.
CIn-UFPE
14
Condição de guarda

Expressão booleana entre [ ], colocada após o evento de
disparo.

A condição de guarda é avaliada apenas após a
ocorrência do evento de disparo da transição.
CIn-UFPE
15
Exemplo: Sinal de trânsito
Norte/Sul
seguir em
frente
encerrado o tempo [carros na via N/S esq.]
Norte/Sul
virar à
esquerda
encerrado o tempo [sem carros na via N/S esq.]
encerrado o tempo
encerrado o tempo
encerrado o tempo [sem carros na via L/O esq.]
Leste/Oeste
virar à
esquerda
CIn-UFPE
encerrado o tempo [carros na via L/O esq.]
Leste/Oeste
seguir em
frente
16
Ação e Atividade

Ação: uma resposta instantânea a uma transição


Usualmente associada a uma transição, embora possa ser
associada a um estado
Atividade (do): Uma operação que tem uma certa
duração, normalmente associada a um estado.
CIn-UFPE
17
Problemas com Maq. Estados

Máquinas de estados não estruturadas não possuem bom
poder de expressão e tornam-se impraticáveis para
problemas grandes.

As formas de estruturação:


Subestados seqüenciais
Subestados concorrentes
CIn-UFPE
18
Subestado seqüencial
cartãoInserido
Ativo
Ocioso
cancelar
Validando
H
fazerManutenção
Manutenção
Selecionando
entry / lerCartão
exit / ejetarCartão
CIn-UFPE
Processando
Imprimindo
19
Subestado concorrente
 Pode ser mostrado com partições pontilhadas.
Inserir Bateria
Relógio
alarmeON
12hs
alarmeOFF
24hs
Acabou Bateria
CIn-UFPE
20
Subestado concorrente
Divisão do Controle:
Subestado 1
evento 1
Subestado 3
evento 3
Subestado 4
evento 4
evento 0
Subestado 2
CIn-UFPE
evento 2
21
Transições e Estados Compostos

De um estado para um estado no mesmo nível.

Diretamente para um subestado, ou diretamente de um
subestado.

Diretamente de um superestado, o que significa que a
transição de estado aplica-se para cada subestado do
superestado (Supertransição).

Diretamente para um superestado com subestados, o que
significa transição para o estado inicial do superestado.
CIn-UFPE
22
História

Freqüentemente, quando transiciona-se diretamente
para um estado com subestados, você quer retornar ao
estado visitado mais recentemente no super-estado.

Use a letra H dentro de um círculo para representar o log
da história.
H
CIn-UFPE
23
História
Neste exemplo, quando ocorrer uma falha,
o super-estado Failure poderá começar em qualquer
dos subestados, dependendo da última visita ao super-estado.
CIn-UFPE
24
Relação entre diagrama de classes e
statecharts

Statecharts especificam uma seqüência permitida de
mudanças de estado nos objetos associados às classes
do Diagrama de Classes.

Constrói-se um Statechart para cada classe com
comportamento temporal significativo.

Objetos se comunicam pelo envio e resposta a eventos.
CIn-UFPE
25
Relação entre diagrama de classes e
statecharts

Eventos, ações e atividades podem ser representados
como operações das Classes.

Diferenças temporais de estado de um objeto são
apropriadamente modeladas através de estados
diferentes de uma mesma classe.
CIn-UFPE
26
Dicas

Digramas de Use Cases e Interação ajudam o início do
processo de construção de Statecharts.

Somente construa Statecharts para classes de objetos
com um comportamento dinâmico significativo.

Nem todas as classes de objeto necessitam de um
Statechart.

Somente considere os atributos relevantes quando da
definição de um estado. Nem todos os atributos
mostrados nas classes precisam ser usados num
Statechart.
CIn-UFPE
27
Download

a6-UMLStateChart