Buscar

Diagrama de Estados em Sistemas Orientados a Objetos

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 14 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 14 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 14 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

- -1
MODELAGEM DE SISTEMAS
MODELOS BÁSICOS DE ANÁLISE
- -2
Olá!
Bom dia!
Em um sistema orientado a objetos, cada objeto representado, num determinado momento, encontra-se em um
estado específico, particular. E, durante o seu ciclo de vida, pode estar em diferentes e finitos estados.
O Diagrama de Estados visa, fundamentalmente, apresentar os estados possíveis de um objeto, as transições
entre eles e os eventos que ocasionam essas transições.
Analisando-as, torna-se possível mapear operações que o objeto precisa realizar e, assim, refinamos e
melhoramos cada vez mais o Diagrama de Estados, bem como outros diagramas usados na modelagem do
sistema, como, por exemplo, o diagrama de classes.
É sobre isso que vamos falar nesta aula.
Objetivos
1. Identificar os conceitos e elementos do diagrama de estados;
2. Aplicar a construção de diagrama de estados.
Estado de um objeto
O estado de um objeto compreende todas as suas associadas aos de cada umapropriedades valores correntes 
delas. Tais propriedades compreendem os . Ou seja, o éatributos de uma classe estado de um objeto
determinado pelos , em um determinado momento. valores de seus atributos
Para garantir a é salutar que apenas os métodos que denotam opropriedade do encapsulamento,
comportamento da classe à qual o objeto pertence alterem os seus respectivos atributos.
Dessa forma, apenas os métodos da própria classe a que o objeto pertença devem alterar o seu estado.
O período de tempo em que o objeto permanece e , chamamos de , ou seja, o tempo quevivo ativo ciclo de vida
decorre desde a sua até sua . Durante o ciclo de vida, o objeto pode ter finitos estados,criação destruição
caracterizados por determinados valores de alguns de seus atributos.
Pela análise das transições de estados, é possível identificar as operações que precisam ser realizadas para
responder aos eventos. Tais operações estarão mapeadas em a que o objeto pertence.métodos da classe
O que ajuda na análise das transições entre os estados de um objeto é o diagrama da UML diagrama de
, ou simplificadamente,transição de estados diagrama de estados.
O Diagrama de Transição de Estados – DTE
- -3
O apresenta os possíveis estados de um objeto e demonstra, por meiodiagrama de transição de estados - DTE 
das transições, os eventos que geram as mudanças de um estado para outro(s), durante todo o ciclo de vida do
objeto.
Em outras palavras, o descreve o DTE ciclo de vida de objetos de uma classe, os eventos que causam as
transições entre estados e as operações resultantes.
Diferentemente dos diagramas de interação (que descrevem o comportamento de objetos de diferentes classes,
mostrando a interação entre elas), o DTE mostra o comportamento de objetos de uma única classe.
Não é preciso desenvolver um DTE para cada classe do sistema, e sim para aquelas que possuem um número
conhecido e finito de estados (maior que um estado).
A UML possui um conjunto rico de elementos para descrever o DTE. veja:
• Básicos: estado e transições;
• Conceitos relacionados: evento, ação e atividade;
• Menos utilizados, mas úteis em momentos específicos transições internas, estados aninhados e 
estados concorrentes.
Conceitos Básicos: Estado, Evento e Transição
Veja, agora, alguns conceitos básicos do diagrama de transição de estados:
Estado
O estado de um objeto é a sua condição específica, em algum momento em que ele está sendo usado no sistema.
Segundo a definição de 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 . Cada estado de um objeto é, em geral, determinadotempo finito
pelos valores de seus atributos.
Esta imagem mostra a representação de um estado, segundo a UML — um retângulo com bordas arredondadas:
Evento
Um evento é a de um estímulo gerado para o objeto, capaz de ocorrência (interna ou externa) mudar o seu
estado atual.
Transição
Uma transição indica um movimento de um estado para o outro, pela ocorrência de um evento.
•
•
•
- -4
A imagem a seguir mostra o evento e a consequente transição de estado, onde a ocorrência do evento faz com
que haja a transição (representada pela seta) entre o “estado UML 1” para o “estado UML 2”. A seta indica a
direção da transição. Observe:
Exemplo de Diagrama de Transição de Estados
Os estados podem ser classificados em dois tipos, que são chamados de . São eles:pseudoestados
Estado inicial
O estado é representado pelo e denota o pseudoestado de um objeto no momento deinicial círculo preenchido 
sua , quando ele é instanciado na memória. mostrando o início decriação Só há um estado inicial em um DTE,
sua leitura. Veja o exemplo:
Estado final
O estado é representado pelo círculo preenchido com outro final círculo em volta e denota o pseudoestado
. É um estado opcional, no DTE, e também pode haver mais um. Veja odo fim do ciclo de vida de um objeto
exemplo:
A figura a seguir mostra um exemplo simples de diagrama de estados que contempla os elementos básicos, que
foram explicados anteriormente. Veja
- -5
Neste exemplo, o estado inicial indica o estado quando o objeto é criado, por isso citamos como pseudoestado,
pois na verdade ainda não é propriamente um estado.
Analisando um Diagrama de Estados e seus Elementos
Vamos identificar os elementos do diagrama de estados, analisando a figura a seguir, que apresenta o diagrama
de estado (DTE) de uma classe Quarto de um sistema de gestão hoteleira:
- -6
O início ocorre no pseudoestado inicial que é a bola preta, cuja seta aponta para o estado ,Disponível
efetivamente o estado em que fica o quarto inicialmente.
Ou seja, assim que o objeto é criado (estado inicial), ele já entra no estado . Imagine um quarto sendoDisponível
criado (novo quarto) que, ao ser inserido no sistema (estado inicial), entra no estado .Disponível
Estando no estado Disponível, o estado pode transitar para o estado quando ocorre o evento “Reservado 
 ”.Cliente faz Reserva
Ou seja, assim que um cliente confirma uma reserva, o estado do objeto quarto transita (muda) para .Reservado
Estando no estado de Reservado, pode haver duas transições distintas:
• Transição (de volta) para o estado Disponível se ocorrer o evento “ ”;Reserva é cancelada
• Transição para o estado Ocupado, se ocorrer o evento “ (chega ao hotel para Cliente faz check-in”
hospedar-se).
Do estado Ocupado, só pode haver transição para o estado , na medida em que ocorre o evento “Em Limpeza
” (deixa o hotel).Cliente faz check-out
Estando no estado , o quarto voltará ao estado na ocorrência do evento “Em Limpeza Disponível Atendente
”.libera Quarto
Estando no estado , o Quarto pode mudar também para o estado Final, quando for excluído doDisponível
sistema (quarto deixa de existir para hospedagem).
Exemplo de diagrama de estados
Os estados determinam e delimitam as operações que podem ser realizadas com aquele objeto. Veja um exemplo:
•
•
- -7
Pela análise do DTE, um hóspede não pode chegar ao hotel e hospedar-se sem que tenha feito uma reserva: isto é
interpretado pela ausência de transição entre os estados e . Somente existe transição paraDisponível Ocupado
o estado , estando no estado .Ocupado Reservado
Para que seja possível a ocupação de quarto sem a devida reserva, o DTE deveria ser como o representado na
imagem a seguir, em que, pela transição de Disponível para Ocupado, acabamos com a obrigação de reservar um
quarto para poder ocupá-lo.
A representação das transições entre os estados e foi feita por uma seta dupla (nas duasDisponível Reservado 
direções).
Na seta que representa a transição do estado Disponível para Reservado, temos a ocorrência do evento “Cliente
Faz Reserva”;
Na seta que representa a transição de Reservado para Disponível, temos a ocorrência do evento “Reserva é
cancelada”.
Detalhando a Transição
A , em um diagrama de estados, indica um . Cada transiçãotransiçãomovimento de um estado para outro
possui um rótulo que possui três partes. Veja:
- -8
Assinatura
do gatilho
Via de regra, é um único evento que demanda a mudança de estado. No exemplo inicial,
sobre os estados do do hotel, usamos apenas a assinatura do gatilhoQuarto (Cliente Faz
, ou seja, o evento que ocasiona a transição de estado.Reserva, Cliente Faz Check-in etc.)
É raro que esteja ausente, mas pode ocorrer e denota que a transição é feita
imediatamente.
Sentinela
Quando estiver , corresponde a uma condição que deve ser para quepresente verdadeira 
a transição ocorra. Se , indica que a transição sempre acontece. É representadaausente
entre com a condição dentro.colchetes [..],
Atividade
É um executado durante a transição. A ausência de atividade diz quecomportamento 
nada é feito durante a transição.
Exemplo de transição completa
O trecho de DTE a seguir mostra uma . Veja a descrição: transição completa
A leitura é a seguinte:
Ao realizar um 'saque de R$" e o saldo ficar menor que zero, a conta transita para o estado , em queBloqueada
fica 'aguardando um depósito", que torne o saldo zerado ou positivo (maior ou igual a zero). Um evento pode
denotar mais de uma transição e, neste caso, as sentinelas devem expressar condições que sejam mutuamente
exclusivas, por motivos óbvios. O estado final indica que o ciclo do objeto está encerrado e a sua máquina de
estados está completa.
Ações de Entrada e Saída, Transições internas e Atividades
Seguem algumas características avançadas do DTE, que ajudam a otimizá-lo, a reduzir a quantidade de estados e
a sua complexidade:
Ações de entrada e saída
São ações realizadas dentro do estado, assim que entra no estado (entrada) e antes de sair dele (saída),
independentemente da transição. Veja a descrição:
- -9
A cláusula denomina uma ação de entrada no estado, assim como a cláusula Exit é usada para ações deEntry 
saída;
A cláusula pode ser usada para especificar uma ação a ser efetivada no momento em que o objeto entra noEntry 
respectivo estado;
A cláusula especifica ações a serem realizadas sempre que o objeto sai de determinado estado.Exit 
Transição interna
Os estados podem reagir a eventos, que não ocasionam transição, usando atividades internas. Ou seja, são
eventos que precisam ser tratados, mas que não ocasionam transição de estado.
As atividades internas não disparam ações de entrada e saída, na medida em que não saem e entram do objeto,
em decorrência do evento.
Atividades
Em geral, o objeto fica ocioso em um estado até que um evento ocorra. Porém, talvez você deseje que um objeto
permaneça realizando uma tarefa, até que determinado evento ocorra. Ou seja, executa uma atividade enquanto
está nesse estado.
A cláusula indica que há uma atividade naquele estado.do 
Exemplo de ações de Entrada e Saída, Transições internas e Atividades
Veja, agora, um exemplo de como declarar no estado ações de entrada ( ), de saída ( ) e atividades ( ):Entry Exit do
Acrescentando uma transição interna, temos:
- -10
Descrição:
• O evento, que demanda a ação;
• A condição de guarda para a execução da atividade;
• A atividade interna que será realizada.
Retornando ao exemplo do DTE referente à classe do sistema , poderíamos eliminar o estado Quarto Hotel Em
, fazendo com que a Limpeza seja uma ação de saída ( ) do estado , e assim, reduziremos olimpeza Exit Ocupado
número de estados. Ou seja, quando o cliente fizer o check-in, evento que ocasiona a transição de Ocupado, em
vez de ir para o estado Em limpeza, iria direto para Disponível e acrescentaríamos uma ação de saída ( ), deExit
nome Limpeza, ao estado .Ocupado
O diagrama de estado alterado para atender ao especificado, é representado na imagem a seguir:
•
•
•
- -11
Observe que:
Desaparece o estado ;Em limpeza
A limpeza passa a ser uma atividade que será realizada antes do estado transitar para ;Disponível
Entre , a transição pode acontecer nos dois sentidos: de Disponível para Ocupado,Disponível e Ocupado
quando ocorrer o evento “Cliente Faz Check-in”; e de para , quando ocorrer o eventoOcupado Disponível
“Cliente faz Check-out”.
Superestados
Um superestado, também chamado de , ajuda a estado composto simplificar a modelagem de
, sendo composto de vários estados ou subestados.comportamentos complexos
Observe a seguinte regra para a definição dos superestados: Todos os estados dentro de um estado
composto herdam suas transições.
Um pode ser ou . Segue um exemplo de ,estado composto sequencial concorrente superestado sequencial
ilustrado em duas imagens:
- -12
A segunda imagem mostra o desdobramento do estado Ativo, composto dos subestados Solicitado, Em
produção, Embalando e Entregue.
Passo a Passo para a Construção do DTE
O (diagrama de transição de estado) deve ser elaborado para classes cujos objetos tenham dois ou maisDTE 
estados. Veja o passo a passo para a construção do DTE:
1 Identifique todos os estados relevantes para a classe.
2 Analise os possíveis eventos que ocasionam mudança de estado. Para cada evento, identifique qual transição
ele ocasiona.
3 Para cada estado:
• Identifique as transições possíveis quando um evento ocorre;
• Identifique os eventos internos e ações correspondentes.
4 Para cada transição verifique se há fatores que influenciam no seu disparo (definição de 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 que estão envolvidos.
6 Defina o estado inicial e os eventuais estados finais.
•
•
- -13
7 Desenhe o diagrama.
Contribuições do DTE ao Diagrama de Classes
Para finalizarmos esta aula, veja algumas contribuições do ao :DTE Diagrama de Classes
• O pode ser construído com base nas DTE especificações de casos de uso, nos diagramas de 
interação e nos diagramas de classes;
• Novas propriedades (atributos e métodos) podem ser descobertos ao elaboramos o DTE e devem 
ser incorporados ao diagrama de classes;
• Pode ser necessária a atualização de um ou mais métodos de uma classe, para refletir o 
. Por exemplo: o comportamento do método comportamento do objetos nos respectivos estados
sacar() da classe ContaBancária varia em função do estado no qual esta classe se encontra. Saques, por 
exemplo, não podem ser realizados em uma conta que esteja no estado .Bloqueada
O que vem na próxima aula
•A finalidade, os elementos e a construção do diagrama de atividades;
•As situações em que o uso do diagrama de atividades será útil;
•A construção do diagrama de atividades.
CONCLUSÃO
Nesta aula, você:
• Identificou a finalidade do diagrama de estados.
• Reconheceu quando usar o diagrama de estados;
• Identificou como se deriva o diagrama de estados com base no diagrama de classes.
•
•
•
Saiba mais
Para saber mais sobre os tópicos estudados nesta aula, leia os seguintes textos:
UML. Disponível aqui: https://www.uml.org/
Diagrama de estados. Disponível aqui: https://www.mindomo.com/pt/mindmap/versoes-%
20uml-164c4e92e9c8458ca29cd8e569b1511f
•
•
•
- -14
Referências
BOOCH, G.; JACOBSON, I.; RUMBAUGH, J. — Guia do Usuário. 2. ed. Rio de Janeiro: Elsevier, 2005. cap. 1 e 2.UML 
FOWLER, Martin. — um breve guia para a linguagem padrão. 3. ed. Porto Alegre: Artmed, 2005.UML essencial 
cap. 1
LARMAN, Craig. : uma introdução à análise e ao projeto orientados a objetos e aoUtilizando UML e padrões
processo unificado. 3. ed. Porto Alegre: Artmed, 2007. cap. 2.

Continue navegando