View
4
Download
0
Category
Preview:
Citation preview
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 mesmoestado
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
Recommended