Dinâmica dos Objetos - UTFPR
Transcript of Dinâmica dos Objetos - UTFPR
![Page 1: Dinâmica dos Objetos - UTFPR](https://reader030.fdocumentos.com/reader030/viewer/2022012420/6174798933a28f6cf20c6e4e/html5/thumbnails/1.jpg)
Dinâmica dos Objetos
![Page 2: Dinâmica dos Objetos - UTFPR](https://reader030.fdocumentos.com/reader030/viewer/2022012420/6174798933a28f6cf20c6e4e/html5/thumbnails/2.jpg)
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
![Page 3: Dinâmica dos Objetos - UTFPR](https://reader030.fdocumentos.com/reader030/viewer/2022012420/6174798933a28f6cf20c6e4e/html5/thumbnails/3.jpg)
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
![Page 4: Dinâmica dos Objetos - UTFPR](https://reader030.fdocumentos.com/reader030/viewer/2022012420/6174798933a28f6cf20c6e4e/html5/thumbnails/4.jpg)
Estados de um objeto
![Page 5: Dinâmica dos Objetos - UTFPR](https://reader030.fdocumentos.com/reader030/viewer/2022012420/6174798933a28f6cf20c6e4e/html5/thumbnails/5.jpg)
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
![Page 6: Dinâmica dos Objetos - UTFPR](https://reader030.fdocumentos.com/reader030/viewer/2022012420/6174798933a28f6cf20c6e4e/html5/thumbnails/6.jpg)
Exemplo de diagrama de estados(com 5 estados e 4 transições)
![Page 7: Dinâmica dos Objetos - UTFPR](https://reader030.fdocumentos.com/reader030/viewer/2022012420/6174798933a28f6cf20c6e4e/html5/thumbnails/7.jpg)
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
![Page 8: Dinâmica dos Objetos - UTFPR](https://reader030.fdocumentos.com/reader030/viewer/2022012420/6174798933a28f6cf20c6e4e/html5/thumbnails/8.jpg)
Conflitos● Um conflito ocorre em uma bifurcação quando duas ou mais transições partindo de um mesmo estado estão habilitadas
![Page 9: Dinâmica dos Objetos - UTFPR](https://reader030.fdocumentos.com/reader030/viewer/2022012420/6174798933a28f6cf20c6e4e/html5/thumbnails/9.jpg)
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
![Page 10: Dinâmica dos Objetos - UTFPR](https://reader030.fdocumentos.com/reader030/viewer/2022012420/6174798933a28f6cf20c6e4e/html5/thumbnails/10.jpg)
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
![Page 11: Dinâmica dos Objetos - UTFPR](https://reader030.fdocumentos.com/reader030/viewer/2022012420/6174798933a28f6cf20c6e4e/html5/thumbnails/11.jpg)
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
![Page 12: Dinâmica dos Objetos - UTFPR](https://reader030.fdocumentos.com/reader030/viewer/2022012420/6174798933a28f6cf20c6e4e/html5/thumbnails/12.jpg)
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
![Page 13: Dinâmica dos Objetos - UTFPR](https://reader030.fdocumentos.com/reader030/viewer/2022012420/6174798933a28f6cf20c6e4e/html5/thumbnails/13.jpg)
Ações nos estados
![Page 14: Dinâmica dos Objetos - UTFPR](https://reader030.fdocumentos.com/reader030/viewer/2022012420/6174798933a28f6cf20c6e4e/html5/thumbnails/14.jpg)
Ações nos estados
● Categorias de ações
● Saída: realizadas exatamente no momento de abandono de um estado
![Page 15: Dinâmica dos Objetos - UTFPR](https://reader030.fdocumentos.com/reader030/viewer/2022012420/6174798933a28f6cf20c6e4e/html5/thumbnails/15.jpg)
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
![Page 16: Dinâmica dos Objetos - UTFPR](https://reader030.fdocumentos.com/reader030/viewer/2022012420/6174798933a28f6cf20c6e4e/html5/thumbnails/16.jpg)
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
![Page 17: Dinâmica dos Objetos - UTFPR](https://reader030.fdocumentos.com/reader030/viewer/2022012420/6174798933a28f6cf20c6e4e/html5/thumbnails/17.jpg)
Concorrência
![Page 18: Dinâmica dos Objetos - UTFPR](https://reader030.fdocumentos.com/reader030/viewer/2022012420/6174798933a28f6cf20c6e4e/html5/thumbnails/18.jpg)
Concorrência● Sincronismo entre os estados intermediários de duas ou mais concorrências
![Page 19: Dinâmica dos Objetos - UTFPR](https://reader030.fdocumentos.com/reader030/viewer/2022012420/6174798933a28f6cf20c6e4e/html5/thumbnails/19.jpg)
Ex. de diagramas de estados
![Page 20: Dinâmica dos Objetos - UTFPR](https://reader030.fdocumentos.com/reader030/viewer/2022012420/6174798933a28f6cf20c6e4e/html5/thumbnails/20.jpg)
Ex. de diagramas de estados
![Page 21: Dinâmica dos Objetos - UTFPR](https://reader030.fdocumentos.com/reader030/viewer/2022012420/6174798933a28f6cf20c6e4e/html5/thumbnails/21.jpg)
Ex. de diagramas de estados
![Page 22: Dinâmica dos Objetos - UTFPR](https://reader030.fdocumentos.com/reader030/viewer/2022012420/6174798933a28f6cf20c6e4e/html5/thumbnails/22.jpg)
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
![Page 23: Dinâmica dos Objetos - UTFPR](https://reader030.fdocumentos.com/reader030/viewer/2022012420/6174798933a28f6cf20c6e4e/html5/thumbnails/23.jpg)
Diagramas de atividades● Primitivas adicionais
● Sincronismo de concorrências
![Page 24: Dinâmica dos Objetos - UTFPR](https://reader030.fdocumentos.com/reader030/viewer/2022012420/6174798933a28f6cf20c6e4e/html5/thumbnails/24.jpg)
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.
![Page 25: Dinâmica dos Objetos - UTFPR](https://reader030.fdocumentos.com/reader030/viewer/2022012420/6174798933a28f6cf20c6e4e/html5/thumbnails/25.jpg)
Bibliografia[1] STADZISZ, Paulo Cézar. Projeto de software usando a UML. Versão 2002. CEFET-PR