Sei sulla pagina 1di 32

Modelagem de

Sistemas

Aula 7

Marcelo Vasques de Oliveira


Aula 7 – Diagrama de Transição de
Estado
• Entender os conceitos e elementos do
diagrama de transição de estados
(DTE)
• Aplicar a construção do diagrama de
estados.

2
O Estado de um Objeto
• O estado de um objeto é determinado pelos
valores de seus atributos, em dado momento.
• Garantia do encapsulamento: apenas os
métodos da classe podem alterar os seus
seus próprios atributos. Dessa forma apenas
os métodos da própria classe devem alterar o
seu estado.
• Ciclo de vida do objeto: tempo que o objeto
permanece vivo e ativo – vários estados 3
O Estado de um Objeto
• Pela análise das transições de estados é
possível identificar as operações que precisam
ser realizadas para responder aos eventos. E
tais operações estarão mapeadas em
métodos da classe a que o objeto pertence.
• O Diagrama da UML que ajuda na análise das
transições entre os estados de um objeto é o
DTE ou DE.
4
Diagrama de Transição de Estados
• DTE descreve:
–o ciclo de vida de objetos de uma classe,
–os eventos que causam as transições entre
estados e
–as operações resultantes
• Mostra o comportamento de objetos de uma
única classe.
–DTE – 1 para cada classe com 2 ou mais
estados 5
Estado
• Segundo a definição de UML Guia de
Usuário[Booch, Rumbauch e Jaconson, 2006],
estado é uma condição ou situação na vida de
um objeto durante o qual o objeto satisfaz
alguma condição, realiza alguma atividade ou
aguarda um evento. Um objeto permanece em
um estado por um tempo finito.

6
Evento
• Um evento é a ocorrência (interna ou externa)
de um estímulo gerado para o objeto, capaz
de mudar o seu estado atual.
• Uma transição indica um movimento de um
estado para o outro, pela ocorrência de um
evento.

7
Pseudo estado: Inicial
• Denota o estado (pseudo estado) de um
objeto no momento de sua criação, no
momento em que ele é instanciado na
memória. Só há um estado INICIAL em um
DTE, mostrando o inicio de sua leitura

8
Pseudo estado: Final
• Denota o estado (pseudo estado) do fim do
ciclo de vida de um objeto. É um estado
opcional, no DTE, e também pode-se ter mais
um.

9
10
11
Conclusões do DTE
• Os estados determinam e delimitam as
operações passíveis com aquele objeto.
• Um hóspede não pode chegar ao hotel e
hospedar-se sem que tenha feito uma reserva:
sem transição entre Disponível e Ocupado.
–Somente existe transição para o estado de
Ocupado, estando no estado Reservado.

12
Conclusões do DTE
• Como acabamos com a obrigação de reservar
um quarto para pode ocupa-lo ?

13
Detalhando a transição
• Cada transição possui três partes:
–Assinatura do gatilho, é um único evento que
demanda a mudança de estado. Usamos
apenas assinatura do gatilho (Cliente Faz
Reserva, Cliente Faz Checkin e etc), ou seja
o evento que ocasiona a transição de
estado. A ausência, denota que a transição
é feita imediatamente.
14
Detalhando a transição
• Cada transição possui três partes:
–Sentinela: se estiver presente, é uma condição
que deve ser verdadeira para que a transição
ocorra. Se ausente, indica que a transição
sempre acontece. Representada entre
colchetes [..], com a condição dentro.
–Atividade é um comportamento executado
durante a transição. A ausência diz que nada é
feito durante a transição.
15
Detalhando a transição
• Assinatura do gatilho: Saque de R$
• Sentinela: [Saldo < 0]
• Atividade: Aguardar depósito

Leitura: ao realizar um “Saque de R$” e o saldo ficar <


ZERO, a conta transita para estado de Bloqueada,
onde “aguarda um depósito”, que torne o saldo zerado
ou positivo (maior ou igual a zero). 16
Otimizando o DTE
• Ajudam a otimizar e reduzir a quantidade de
estados e complexidade do DTE.
–Ações de Entrada e Saída (entry / exit)
–Atividades (do)
–Transição interna (evento)

17
Ações de Entrada e Saída
• Ações realizadas dentro do estado, assim que
entra (entrada) e antes de sair (saída),
independente da transição.
• A cláusula ENTRY (ação de entrada)
• A cláusula EXIT (ações de saída).
–A clausula ENTRY - ação no momento em que
o objeto entra no respectivo estado
–A cláusula EXIT - ação sempre que o objeto
sai de determinado estado.
18
Transição Interna
• Os estados pode reagir a eventos, que não
ocasionam transição, usando atividades
internas.
• São eventos que precisam ser tratados, mas
que não ocasionam transição de estado.

19
Atividades
• Em geral, objeto fica ocioso em um estado até
que um evento ocorra.
• Porém pode ser que você deseje que um
objeto permaneça realizando uma tarefa até
que determinado evento ocorra.
–executa uma atividade enquanto está nesse
estado. A cláusula DO indica que há uma
atividade naquele estado.

20
Otimizando o Caso Hotel
• Eliminar o estado EM LIMPEZA, e criar uma
Ação de Saída (Exit) do estado OCUPADO e
assim reduziremos o número de estados.

21
Superestados
• Um superestado ajuda a simplificar a
modelagem de comportamentos complexos,
sendo composto de vários estados .
• Um superestado é composto de subestados e
é chamado de estado composto.
• Um estado composto pode ser sequencial ou
concorrente

22
Superestados

• Regra: Todos os
estados dentro de
um estado
composto herdam
suas transições.
23
Passo a passo para construir o DTE
1. Identifique os estados relevantes da classe
2. Analise possíveis eventos (mudança estado)
Para cada evento, identifique transição
3. Para cada estado:
identifique as transições de um evento
identifique os eventos internos e ações
4. Para cada transição
verifique condições de guarda e ações.
5. Para cada condição de guarda e para cada ação,
identifique os atributos e ligações
6. Defina o estado inicial e os eventuais estados finais.
7. Desenhe o diagrama 24
Contribuições :DTE ao diagrama de classes
• O DTE é feito com base nas especificações de casos de uso,
nos diagramas de interação e nos diagramas de classes.
• Novos atributos e métodos podem ser descobertos ao
elaboramos DTE e são adicionados ao diagrama de classes.
• Pode ser necessária a atualização de métodos de uma classe
para refletir o comportamento nos respectivos estados
• Por exemplo, o comportamento do método sacar() da
classe ContaBancária varia em função do estado no qual
esta classe se encontra: saques não podem ser realizados
em uma conta BLOQUEADA.

25
Modelagem de
Sistemas

Atividades

Marcelo Vasques de Oliveira


Estudo de Caso
• O Pedido pode ter vários estados
• Ao ser inserido, o status é EM ESPERA.
• Com o sinal pago, o status é PRONTO PARA
PRODUÇÃO
• Ao iniciar a produção da faixa, o status é EM
PRODUÇÃO.
• Ao ser finalizado o status passa a ser PRONTO.
• Ao ser entregue o status passa a ser ENTREGUE.
Para estar ENTREGUE o pedido tem que ter o saldo
de pagamento confirmado.
27
Estudo de Caso

28
Estudo de Caso
• E se o pedido puder ser cancelado enquanto não
entrar em produção

29
Estudo de Caso

30
Atividade
• Questão 3: (Eletrobrás) Observe o diagrama de transição de
estados a seguir. Suponha que, num dado momento, o
sistema se encontra no Estado0 e que ocorra a seguinte
sequencia de eventos: e c b a a

• O estado do sistema após a ocorrência desses eventos, será
?
• ( ) Estado0
• ( ) Estado3
• ( ) Estado1
• ( ) Estado4
• ( ) Estado final 31
Estudo de Caso

32

Potrebbero piacerti anche