• Nenhum resultado encontrado

Interações entre objetos

N/A
N/A
Protected

Academic year: 2021

Share "Interações entre objetos"

Copied!
28
0
0

Texto

(1)

Interações entre objetos

(2)

Interações

Interações

! Interações mostram os aspectos dinâmicos de um sistema, enfatizando a troca de mensagens entre

objetos

! Dois diagramas podem ser usados para modelar as interações: diagramas de seqüência e diagramas

(3)

Utilidade

Utilidade

! Modelar as interações em um sistema é uma das técnicas mais poderosas para a descoberta das

classes e das operações do sistema

! Diagramas de interação facilitam o entendimento de sistemas com comportamento complexo

! Diagramas de interação são especialmente úteis para sistemas orientados a objetos porque a

funcionalidade nesses sistemas geralmente é distribuída em muitas classes diferentes

(4)

Links

Links

! Um link é uma conexão entre dois objetos, pela qual mensagens podem ser trocadas

! Sempre que uma classe tiver uma associação com outra classe, pode haver um link entre os objetos dessas classes darAumento(perc: float) alocar(d: Departamento) Pessoa empregado empregador 1..* 0..5 p: Pessoa e: Empresa alocar(desenvolvimento)

(5)

Mensagens

Mensagens

! Definição formal: uma mensagem é a especificação de uma comunicação entre objetos, onde são

passadas informações, com a esperança de que ocorra alguma atividade

! Na maioria das vezes, uma mensagem resulta na execução de uma operação

(6)

Seqüenciamento

Seqüenciamento

! Quando um objeto envia uma mensagem para outro objeto, o objeto que recebe a mensagem pode enviar outras mensagens e assim por diante, formando uma

(7)

Diagramas de seqüência

Diagramas de seqüência

! Diagramas de seqüência enfatizam a ordenação das mensagens trocadas entre os objetos

! Um cenário é uma seqüência específica de ações que ilustra um comportamento

! Diagramas de seqüência podem modelar um

cenário ou um conjunto de cenários

! Diagramas de seqüência podem mostrar decisões simples e iterações

(8)

Exemplo

Exemplo

Br ow s er Se rvidor We b Pr oce s s ador de pe didos

Inte r face com o banco Es tudante

Subm ete r form ulár io de pe dido pr e enchido

Codificar dados do form ulário

Enviar dados

codificados Pr oce s s ar dados

Enviar dados proce s s ados Exe cutar Es te é um pr ogram a CGI ou ISAPI Cadastr ar pe dido Cadas tro OK Ge rar página de confir m ação Enviar página Enviar página Exibir página

(9)

Modelando o fluxo de controle através de Diagramas

Modelando o fluxo de controle através de Diagramas

de Seqüência

de Seqüência

! Defina o contexto da interação (ex: um cenário de um Use Case)

! Identifique quais objetos participam da interação

! Distribua o comportamento do use case em objetos das classes de análise dos seguintes tipos (estereótipos)

" Fronteira (interação com os atores)

" Controle (uma para cada use case)

" Entidade (obtidas a partir do fluxo de eventos)

! Defina a linha de vida do objeto.

" A maioria dos objetos irão persistir durante toda a interação

" Se precisar indicar o nascimento ou morte de objetos durante a interação, use mensagens do tipo Create ou Destroy.

(10)

Modelando o fluxo de controle através de Diagramas

Modelando o fluxo de controle através de Diagramas

de Seqüência

de Seqüência

! Comece com a mensagem inicial. As mensagens subseqüentes são colocadas do topo para baixo da linha de vida.

! Para explicar a semântica, é possível incluir as propriedades da mensagens, por ex. Parâmetros.

! Se precisar especificar limitações (ex: de tempo), adorne a mensagem com uma marca apropriada.

! Se precisar especificar o fluxo de controle mais formalmente, coloque pré e pós condições nas mensagens.

(11)

Classes de Fronteira (

Classes de Fronteira (

boundary

boundary

classes

classes

)

)

! Isolam o sistema de mudanças no ambiente externo

! Atores devem se comunicar apenas com classes de fronteira

! Exemplos de classes fronteira " GUI

" Interface com outros sistemas

" Interface com dispositivos

(12)

O Papel de uma Classe de Fronteira

O Papel de uma Classe de Fronteira

Modela interação entre o sistema e seu ambiente <<boundary>> <<entity>> <<control>> <<boundary>> <<boundary>> <<entity>> Usuário Fonte: Rational

(13)

Regra geral para encontrar

Regra geral para encontrar

Classes de Fronteira

Classes de Fronteira

! Uma classe por cada par ator/caso de uso

! Exemplo: Caso de uso Sacar Dinheiro

Cliente Sacar dinheiro Sistema do banco

(14)

Classes de Entidade (

Classes de Entidade (

entity

entity

classes

classes

)

)

! Abstrações e conceitos chave dos casos de uso

<<entity>>

Descrição do

Caso de uso <<entity>>

(15)

O Papel de uma Classe de Entidade

O Papel de uma Classe de Entidade

<<boundary>> <<entity>> <<control>> <<boundary>> <<boundary>> <<entity>> Customer Armazenam e gerenciam informação no sistema

(16)

Orientações para encontrar

Orientações para encontrar

Classes de Entidade

Classes de Entidade

! Usando a descrição do caso de uso, use a abordagem tradicional de filtrar substantivos

" identifique substantivos no fluxo de eventos

" remova candidatos redundantes e vagos

" remova atores que interagem indiretamente com o

sistema, pois estes não fazem parte da modelagem

" desconsidere atributos e operações (serão usados mais

(17)

Exemplo: Classe de entidade do caso de uso Sacar

Exemplo: Classe de entidade do caso de uso Sacar

Dinheiro

Dinheiro

(18)

Classes de Controle (

Classes de Controle (

control

control

classes

classes

)

)

! Coordenam o comportamento (lógica de controle) do caso

de uso

! Interface entre fronteira e entidade

(19)

O Papel de uma Classe de Controle

O Papel de uma Classe de Controle

Coordenam o comportamento do caso de uso

Uma classe controle pode ter referência a vários objetos entidade

Finalidade semelhante a classes de fachada (Arquitetura de Camadas)

<<boundary>> <<entity>> <<control>> <<boundary>> <<boundary>> <<entity>> Customer

(20)

Orientações para encontrar

Orientações para encontrar

Classes de Controle

Classes de Controle

! Usualmente, uma classe de controle por caso de uso

! Eventualmente mais de uma (comportamento

complexo) ou nenhuma (manipulação simples de informações armazenadas)

(21)

Exemplo de Classe de Controle

Exemplo de Classe de Controle

Caso de uso

Caso de uso

Sacar Dinheiro

Sacar Dinheiro

Cliente Sacar dinheiro Sistema do banco

(22)

Exemplo

Exemplo: Classes de Análise resultantes do caso de uso : Classes de Análise resultantes do caso de uso Sacar Sacar Dinheiro Dinheiro <<boundary>> SistemaBanco <<control>> ControladorSaque <<boundary>> FormularioSaque <<entity> Conta

(23)

Exemplo de um Diagrama de Seqüência:

Caso de uso

Sacar Dinheiro

:Formulário

saque : ControladorSaque : Conta :SistemaBanco

solicitar saque (dados do saque)

buscar conta (dados da conta)

criar conta () solicitar saque (dados do saque)

(24)

Descrevendo Responsabilidades

Descrevendo Responsabilidades

! Responsabilidades identificadas nos fluxos de eventos são refletidas em diagramas de

interação

! Mensagens nestes diagramas resultam em responsabilidades nas classes receptoras

:Client :Supplier // PerformResponsibility Supplier // PerformResponsibility diagrama de classe diagrama de interação

(25)

Diagramas de colaboração

Diagramas de colaboração

! Diagramas de colaboração enfatizam a organização dos objetos em uma interação

! Praticamente tudo que pode ser mostrado em um diagrama de seqüência pode também ser mostrado em um diagrama de colaboração

! Diagramas de colaboração podem ser transformados em diagramas de seqüência e vice-versa

(26)

Browser Servidor Web Processador de pedidos Interface com o banco Estudante submeter(dadosForm) 1: codificarDados(dadosForm) 2: enviarDadosCodificados(dados) 3: processarDados() 4: executar() 5: enviarDadosProc(dados) 6: cadastrapedido(consSQL) 8: enviarPagina(pag) 9: enviarPagina(pagina) 7: gerarPagResposta()

Diagramas de colaboração: exemplo

(27)

Modelando o fluxo de controle através de Diagramas de

Modelando o fluxo de controle através de Diagramas de

Colaboração

Colaboração

! Defina o contexto da interação (ex: um cenário de um Use Case)

! Identifique quais objetos participam da interação.

!

Se os valores dos atributos mudam de forma

significativa durante a interação, duplique o

objeto, conecte-os com o estereótipo

<<torna-se>> ou <<cópia>> e atualize o novo objeto com

os novos valores.

(28)

Modelando o fluxo de controle através de Diagramas de

Modelando o fluxo de controle através de Diagramas de

Colaboração

Colaboração

! Especifique os links entre objetos. Eles permitem a passagem das mensagens.

! Começando com a mensagem que inicia a interação, coloque a numeração seqüencial nas mensagens. Se necessário, use aninhamento (1.1, 1.2).

! Se precisar especificar limitações (ex: de tempo), adorne a mensagem com uma marca apropriada.

! Se precisar especificar o fluxo de controle mais formalmente, coloque pré e pós condições nas mensagens.

Referências

Documentos relacionados

Para quem vai sair do país é importante buscar informações sobre a ocorrência, na região de destino, de doenças como, Febre do Chinkinguya (África e Ásia)

(PRÓ REITORIAS NO ED. 2) Concentrar as Pró Reitorias e Gabinete da Reitoria no Campus Rebouças, de modo a proporcionar áreas livres nos demais edifícios da UFPR para o. abrigo de

Climate change in coastal areas Consequences of climate change in sandy coasts, estuaries and lagoons, and rocky shores Changes on coastal risk as a result of climate change

Oferecemos este Rosário (ou Terço) em desagravo dos pecados cometidos contra o Sagrado Coração de Jesus, Imaculado Coração de Maria e o Amantíssimo Coração de São José, pela

Fonte: Elaboragao propria a partir dos estudos de Rodrigues (2002).. Pelas informagoes apresentadas pelo Quadro 2, ficam expostos quatro pressupostos da responsabilidade civil: a

Através do exercício físico, o sistema locomotor é funcionalmente estimulado e o tecido muscular esquelético provê a força muscular necessária para realização

De forma a poder alcançar estes objectivos, gestores como programadores têm de perceber a importância desta ferramenta para o cliente, e assim criar uma estrutura de

Neste contexto, o objetivo deste trabalho é analisar a participação da agricultura familiar nas compras da alimentação escolar nas escolas municipais de Passo Fundo,