Você está na página 1de 25

Dinâmica

dos Objetos
Dinâmica dos objetos
● Necessário desenvolver estudo sobre comportamento
interno das classes
● Permitir a especificação da dinâmica i.e. a forma como

os objetos de cada classe se comportam


● A especificação da dinâmica do sistema deve ser feita

através de diagramas de estado


Notação de Harel
● Um diagrama de estados é um grafo dirigido cujos nós
representam os estados e cujos arcos representam
as transições entre os estados
● Estado de um objeto

● é um momento na vida de um objeto. Um objeto pode

passar por diferentes estados: o momento em que foi


criado, momento que fez uma inicialização,
momento que fez uma solicitação, momento de seu
desaparecimento, etc
● Muitas vezes o nome de um estado é um verbo no

gerúndio ou no particípio
● Um mesmo estado pode ser repetido em um diagrama

de estados i.e. se houver dois estados com o mesmo


nome trata-se, na verdade, do mesmo
estado
Estados de um objeto
Transição de estado
● Um objeto não fica permanentemente em um estado
● Os objetos tendem a avançar de um estado para outro

● O avanço de uma situação (estado) para outra

denomina-se transição de estado


● Sintaxe:

● Evento: indica o nome de um sinal, mensagem ou


notificação recebida pelo objeto e que torna a transição
habilitada
● Argumentos: são valores recebidos junto com o evento

● [Condição]: expressão lógica que é avaliada quando o

evento ocorrer
● /Ação: indica uma ação que é executada durante a

transição de um estado a outro


Exemplo de diagrama de estados
(com 5 estados e 4 transições)
Construções típicas
● Sequências: fluxos de estados representados por
encadeamentos de um estado e uma transição
(figura anterior)
● Bifurcações e junções

● bifurcação: duas ou mais transições partindo de

um mesmo estado
● junção: duas ou mais transições conduzindo a um

mesmo estado
Conflitos
●Um conflito ocorre em uma bifurcação quando duas ou mais
transições partindo de um mesmo estado estão habilitadas
Construções típicas
●Repetições (laços): encadeamento cíclico de estados e
transições contendo um controle sobre a repetição dos
ciclos
Cláusula de envio
● ação de envio de uma mensagem, do objeto que se está
modelando, para algum outro objeto.
● Notação: acento circunflexo seguido do nome do objeto e

do nome da mensagem separados por ponto


Transições reflexivas
● Transição que parte de um estado e alcança o
mesmo estado
● Produz ação sem afetar o estado no qual o objeto

se encontra
● Indica que o objeto recebe certas mensagens (ou percebe

certos eventos) sem alterar seu estado comportamental


Ações nos estados
● Sempre que o estado for alcançado, as ações serão
realizadas
● dois compartimentos:

● identificação: contém o nome do estado

● das ações: listas das ações realizadas no interior do

estado
● Categorias de ações

● Entrada: realizada exatamente no momento em que se

alcança o estado (antes de qualquer outra ação)


● Saída: realizadas exatamente no momento de

abandono de um estado
Ações nos estados
Ações nos estados
● Categorias de ações

● Saída: realizadas exatamente no momento de


abandono de um estado
Estados compostos
● Estado constituído de um conjunto de subestados
● permite que se façam construções hierarquizadas com

● estados maiores no níveis iniciais → maior nível de

abstração
● estados mais específicos nos níveis seguintes

● menor abstração → maior detalhamento


Concorrência
● Representam dois ou mais encadeamentos de estados
e transições que são percorridos simultaneamente
● A concorrência dentro de um objeto significa que ele possui

mais de um fluxo de de controle (threads, processos)


● Representação → divisão de um estado composto em

regiões separadas por linhas tracejadas


● Pontos de sincronismo explícito: entrada e saída do

estado composto
Concorrência
Concorrência
●Sincronismo entre os estados intermediários de duas
ou mais concorrências
Ex. de diagramas de estados
Ex. de diagramas de estados
Ex. de diagramas de estados
Diagramas de atividades
● É um diagrama de estado no qual a maioria dos estados
representa a execução de ações ou atividades
● Primitivas adicionais: estados de bifurcação e convergência
Diagramas de atividades
● Primitivas adicionais
● Sincronismo de concorrências
Exercício
5) Para a especificação apresentada em aula,
a partir dos diagramas de sequência criados no
exercício 3, desenhe as máquinas de estado que
implementem tais sequências.
Bibliografia
[1] STADZISZ, Paulo Cézar.
Projeto de software usando a UML. Versão 2002.
CEFET-PR

Você também pode gostar