Escolar Documentos
Profissional Documentos
Cultura Documentos
e Projeto de Sistemas
com UML
2 edio
Eduardo Bezerra
Editora Campus/Elsevier
Captulo 9
Modelagem de estados
Tpicos
Introduo
Diagramas de transio de estados
Identificao dos elementos de um diagrama de estados
Construo de diagramas de transio de estados
Modelagem de estados no processo de desenvolvimento
Introduo
Objetos do mundo real se encontram em estados particulares a cada
momento.
uma jarra est cheia de lquido
uma pessoa est cansada.
Estados
Transies
Evento
Ao
Atividade
Transies internas
Estados aninhados
Estados concorrentes
Estado
Situao na vida de um objeto em que ele satisfaz a alguma
condio ou realiza alguma atividade. funo dos valores
dos atributos e (ou) das ligaes com outros objetos.
O atributo reservado deste objeto livro tem valor verdadeiro.
Uma conta bancria passa para o vermelho quando o seu saldo fica negativo.
Um professor est licenciado quando no est ministrando curso algum durante
o semestre.
Um tanque est na reserva quando nvel de leo est abaixo de 20%.
Um pedido est atendido quando todos os seus itens esto atendidos.
Transies
Os estados esto associados a outros pelas transies.
Uma transio mostrada como uma linha conectando
estados, com uma seta apontando para um dos estados.
Quando uma transio entre estados ocorre, diz-se que a
transio foi disparada.
Uma transio pode ser rotulada com uma expresso da
seguinte forma:
Eventos
Uma transio possui um evento associado.
Um evento algo que acontece em algum ponto no tempo e
que pode modificar o estado de um objeto:
Pedido realizado
Fatura paga
Cheque devolvido
10
Tipos de Evento
Evento de chamada
corresponde ao recebimento de uma mensagem de outro objeto.
Pode-se pensar neste tipo de evento como uma solicitao de servio de
um objeto a outro.
Evento de sinal
Neste evento o objeto recebe um sinal de outro objeto que pode faz-lo
mudar de estado.
A diferena bsica entre o evento de sinal e o evento de chamada que
neste ltimo o objeto que envia a mensagem fica esperando a execuo
da mesma.
No evento de sinal, o objeto remetente continua o seu processamento aps
ter enviado o sinal.
11
Evento de mudana
Corresponde a uma condio que se torna verdadeira.
representado por uma expresso de valor lgico (verdadeiro ou falso) e
especificado utilizando-se a clusula when.
when(saldo > 0): significa que a transio disparada quando o valor do atributo
saldo for positivo.
12
Exemplo (ContaBancria)
13
Exemplo (OfertaDisciplina)
14
15
Condio de guarda
uma expresso de valor lgico que condiciona o disparo de
uma transio.
A transio correspondente disparada se e somente se o evento
associado ocorre e a condio de guarda verdadeira.
Uma transio que no possui condio de guarda sempre disparada quando o
evento ocorre.
16
Aes
Ao transitar de um estado para outro, um objeto pode realizar
uma ou mais aes.
Uma ao uma expresso definida em termo dos atributos,
operaes, associaes da classe ou dos parmetros do evento
tambm podem ser utilizados.
A ao associada a uma transio executada se e somente se
a transio for disparada.
17
Atividades
Semelhantes a aes, atividades so algo que deve ser
executado.
No entanto, uma atividade pode ser interrompida (uma ao
no pode).
Por exemplo, enquanto a atividade estiver em execuo, pode acontecer
um evento que a interrompa.
18
Ponto de juno
Pode ser que o prximo estado de um objeto varie de acordo
com uma condio.
Se o valor da condio for verdadeiro, o objeto vai para um
estado E1; se o valor for falso, o objeto vai para outro estado E2.
como se a transio tivesse bifurcaes, e cada transio de
sada da bifurcao tivesse uma condio de guarda.
19
Ponto de juno
De uma forma geral, pode haver um nmero ilimitado de
transies saindo de um ponto de juno.
Pode haver tambm uma transio de sada que esteja rotulada
com a clusula else.
Se as outras condies forem falsas, a transio da clausula else
disparada.
20
21
Clusulas
No compartimento adicional de um retngulo de estado
podem-se especificar aes ou atividades a serem executadas.
Sintaxe geral: evento / [ao | atividade]
H trs clusulas predefinidas: entry,exit,do
Clusula entry
Pode ser usada para especificar uma ao a ser realizada no momento em que o
objeto entra em um estado.
A ao desta clusula sempre executada, independentemente do estado do
qual o objeto veio.
como se a ao especificada estivesse associada a todas as transies de entrada
no estado.
22
Clusulas
Clusula exit
Serve para declarar aes que so executadas sempre que o objeto sai de um
estado.
sempre executada, independentemente do estado para o qual o objeto vai.
como se a ao especificada estivesse associada a todas as transies de
sada do estado.
Clusula do
Usada para definir alguma atividade a ser executada quando o objeto passa para
um determinado estado.
Ao contrrio da clusula entry, serve para especificar uma atividade, em vez de
uma ao.
23
Clusula do - exemplo
24
25
Clusula do - exemplo
26
Exemplo (Despertador)
27
29
30
31
33
34
36
37