CIn-UFPE1 Interações entre objetos. CIn-UFPE2 Modelagem Comportamental Modelagem Comportamental n...

29
CIn-UFPE CIn-UFPE 1 Interações entre Interações entre objetos objetos

Transcript of CIn-UFPE1 Interações entre objetos. CIn-UFPE2 Modelagem Comportamental Modelagem Comportamental n...

Page 1: CIn-UFPE1 Interações entre objetos. CIn-UFPE2 Modelagem Comportamental Modelagem Comportamental n Diagramas de Use Case n Diagramas de Seqüência n Diagramas.

CIn-UFPECIn-UFPE 11

Interações entre objetosInterações entre objetos

Page 2: CIn-UFPE1 Interações entre objetos. CIn-UFPE2 Modelagem Comportamental Modelagem Comportamental n Diagramas de Use Case n Diagramas de Seqüência n Diagramas.

CIn-UFPECIn-UFPE 22

Modelagem ComportamentalModelagem Comportamental

Diagramas de Use Case Diagramas de Seqüência

Diagramas de Colaboração

Statecharts

Diagramas de Atividades

Page 3: CIn-UFPE1 Interações entre objetos. CIn-UFPE2 Modelagem Comportamental Modelagem Comportamental n Diagramas de Use Case n Diagramas de Seqüência n Diagramas.

CIn-UFPECIn-UFPE 33

InteraçõesInteraçõ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 de colaboração

Page 4: CIn-UFPE1 Interações entre objetos. CIn-UFPE2 Modelagem Comportamental Modelagem Comportamental n Diagramas de Use Case n Diagramas de Seqüência n Diagramas.

CIn-UFPECIn-UFPE 44

UtilidadeUtilidade

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

Page 5: CIn-UFPE1 Interações entre objetos. CIn-UFPE2 Modelagem Comportamental Modelagem Comportamental n Diagramas de Use Case n Diagramas de Seqüência n Diagramas.

CIn-UFPECIn-UFPE 55

LinksLinks

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

d arAu m en to(p erc : float)alocar(d : D ep artam en to)

Pessoa

Empresa

e m pregad o

em pregador

1..*

0 ..5

p: Pessoa

e: Empresa

alocar(desenvolvimento)

Page 6: CIn-UFPE1 Interações entre objetos. CIn-UFPE2 Modelagem Comportamental Modelagem Comportamental n Diagramas de Use Case n Diagramas de Seqüência n Diagramas.

CIn-UFPECIn-UFPE 66

MensagensMensagens

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

Page 7: CIn-UFPE1 Interações entre objetos. CIn-UFPE2 Modelagem Comportamental Modelagem Comportamental n Diagramas de Use Case n Diagramas de Seqüência n Diagramas.

CIn-UFPECIn-UFPE 77

SeqüenciamentoSeqü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 seqüência de mensagens

Page 8: CIn-UFPE1 Interações entre objetos. CIn-UFPE2 Modelagem Comportamental Modelagem Comportamental n Diagramas de Use Case n Diagramas de Seqüência n Diagramas.

CIn-UFPECIn-UFPE 88

Diagramas de seqüênciaDiagramas 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

Page 9: CIn-UFPE1 Interações entre objetos. CIn-UFPE2 Modelagem Comportamental Modelagem Comportamental n Diagramas de Use Case n Diagramas de Seqüência n Diagramas.

CIn-UFPECIn-UFPE 99

ExemploExemplo

Br ow s e r Se rvid o r We b Pr oce s s ado r depe d ido s

In te r face co mo b anco

Es tu d an te

Su b m e te r fo r m u lár iod e p e d ido p r e e n ch id o

Co d if icar d ad o sd o for m u lár io

En viar d ad o sco d if icad o s Pr o ce s s ar d ad o s

En viar d ad o sp ro ce s s ad o s

Exe cutar

Es te é um p r o gram aCGI ou ISA PI

C ad as tr ar p e d id o

Cad as tr o OK

Ge r ar pág in ad e co n f ir m ação

En viar pág in aEn viar pág in a

Exib ir pág in a

Page 10: CIn-UFPE1 Interações entre objetos. CIn-UFPE2 Modelagem Comportamental Modelagem Comportamental n Diagramas de Use Case n Diagramas de Seqüência n Diagramas.

CIn-UFPECIn-UFPE 1010

Modelando o fluxo de controle através de Diagramas Modelando o fluxo de controle através de Diagramas de Seqüênciade 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

Page 11: CIn-UFPE1 Interações entre objetos. CIn-UFPE2 Modelagem Comportamental Modelagem Comportamental n Diagramas de Use Case n Diagramas de Seqüência n Diagramas.

CIn-UFPECIn-UFPE 1111

Modelando o fluxo de controle através de Diagramas Modelando o fluxo de controle através de Diagramas de Seqüênciade 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.

Page 12: CIn-UFPE1 Interações entre objetos. CIn-UFPE2 Modelagem Comportamental Modelagem Comportamental n Diagramas de Use Case n Diagramas de Seqüência n Diagramas.

CIn-UFPECIn-UFPE 1212

Classes de Fronteira (Classes de Fronteira (boundary classesboundary 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

<<boundary>>

Page 13: CIn-UFPE1 Interações entre objetos. CIn-UFPE2 Modelagem Comportamental Modelagem Comportamental n Diagramas de Use Case n Diagramas de Seqüência n Diagramas.

CIn-UFPECIn-UFPE 1313

O Papel de uma Classe de FronteiraO 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

Page 14: CIn-UFPE1 Interações entre objetos. CIn-UFPE2 Modelagem Comportamental Modelagem Comportamental n Diagramas de Use Case n Diagramas de Seqüência n Diagramas.

CIn-UFPECIn-UFPE 1414

Regra geral para encontrar Regra geral para encontrar Classes de FronteiraClasses de Fronteira

Uma classe por cada par ator/caso de uso Exemplo: Caso de uso Sacar Dinheiro

ClienteSacar dinheiro

Sistema do banco

FormularioSaque SistemaBanco

Page 15: CIn-UFPE1 Interações entre objetos. CIn-UFPE2 Modelagem Comportamental Modelagem Comportamental n Diagramas de Use Case n Diagramas de Seqüência n Diagramas.

CIn-UFPECIn-UFPE 1515

Classes de Entidade (Classes de Entidade (entity classesentity classes))

Abstrações e conceitos chave dos casos de uso

<<entity>>

Descrição doCaso de uso <<entity>>

<<entity>>

Fonte: Rational

Page 16: CIn-UFPE1 Interações entre objetos. CIn-UFPE2 Modelagem Comportamental Modelagem Comportamental n Diagramas de Use Case n Diagramas de Seqüência n Diagramas.

CIn-UFPECIn-UFPE 1616

O Papel de uma Classe de EntidadeO Papel de uma Classe de Entidade

<<boundary>>

<<entity>>

<<control>>

<<boundary>>

<<boundary>>

<<entity>>

Customer

Fonte: Rational

Armazenam e gerenciam informação no sistema

Page 17: CIn-UFPE1 Interações entre objetos. CIn-UFPE2 Modelagem Comportamental Modelagem Comportamental n Diagramas de Use Case n Diagramas de Seqüência n Diagramas.

CIn-UFPECIn-UFPE 1717

Orientações para encontrarOrientações para encontrarClasses de EntidadeClasses de Entidade

Utilizando 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

tarde)

Page 18: CIn-UFPE1 Interações entre objetos. CIn-UFPE2 Modelagem Comportamental Modelagem Comportamental n Diagramas de Use Case n Diagramas de Seqüência n Diagramas.

CIn-UFPECIn-UFPE 1818

Exemplo: Classe de entidade do caso de uso Sacar Exemplo: Classe de entidade do caso de uso Sacar DinheiroDinheiro

Conta

Page 19: CIn-UFPE1 Interações entre objetos. CIn-UFPE2 Modelagem Comportamental Modelagem Comportamental n Diagramas de Use Case n Diagramas de Seqüência n Diagramas.

CIn-UFPECIn-UFPE 1919

Classes de Controle (Classes de Controle (control classescontrol classes))

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

Interface entre fronteira e entidade

<<control>>

Page 20: CIn-UFPE1 Interações entre objetos. CIn-UFPE2 Modelagem Comportamental Modelagem Comportamental n Diagramas de Use Case n Diagramas de Seqüência n Diagramas.

CIn-UFPECIn-UFPE 2020

O Papel de uma Classe de ControleO Papel de uma Classe de Controle

Coordenam o comportamento do caso de usoUma classe controle pode ter referência a vários objetos entidadeFinalidade semelhante às classes de fachada (Arquitetura de Camadas)

<<boundary>>

<<entity>>

<<control>>

<<boundary>>

<<boundary>>

<<entity>>

Customer

Fonte: Rational

Page 21: CIn-UFPE1 Interações entre objetos. CIn-UFPE2 Modelagem Comportamental Modelagem Comportamental n Diagramas de Use Case n Diagramas de Seqüência n Diagramas.

CIn-UFPECIn-UFPE 2121

Orientações para encontrar Orientações para encontrar Classes de ControleClasses 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)

Page 22: CIn-UFPE1 Interações entre objetos. CIn-UFPE2 Modelagem Comportamental Modelagem Comportamental n Diagramas de Use Case n Diagramas de Seqüência n Diagramas.

CIn-UFPECIn-UFPE 2222

Exemplo de Classe de ControleExemplo de Classe de ControleCaso de uso Caso de uso Sacar DinheiroSacar Dinheiro

ClienteSacar dinhei ro

Sistema do banco

ControladorSaque

Page 23: CIn-UFPE1 Interações entre objetos. CIn-UFPE2 Modelagem Comportamental Modelagem Comportamental n Diagramas de Use Case n Diagramas de Seqüência n Diagramas.

CIn-UFPECIn-UFPE 2323

ExemploExemplo: Classes de Análise resultantes do caso de uso : Classes de Análise resultantes do caso de uso Sacar Sacar DinheiroDinheiro

<<boundary>>SistemaBanco

<<control>>ControladorSaque

<<boundary>>FormularioSaque

<<entity>Conta

Page 24: CIn-UFPE1 Interações entre objetos. CIn-UFPE2 Modelagem Comportamental Modelagem Comportamental n Diagramas de Use Case n Diagramas de Seqüência n Diagramas.

CIn-UFPECIn-UFPE 2424

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)

Exibir mensagem (saque ok) saque ok

Page 25: CIn-UFPE1 Interações entre objetos. CIn-UFPE2 Modelagem Comportamental Modelagem Comportamental n Diagramas de Use Case n Diagramas de Seqüência n Diagramas.

CIn-UFPECIn-UFPE 2525

Descrevendo ResponsabilidadesDescrevendo 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

Page 26: CIn-UFPE1 Interações entre objetos. CIn-UFPE2 Modelagem Comportamental Modelagem Comportamental n Diagramas de Use Case n Diagramas de Seqüência n Diagramas.

CIn-UFPECIn-UFPE 2626

Diagramas de colaboraçãoDiagramas 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

Page 27: CIn-UFPE1 Interações entre objetos. CIn-UFPE2 Modelagem Comportamental Modelagem Comportamental n Diagramas de Use Case n Diagramas de Seqüência n Diagramas.

CIn-UFPECIn-UFPE 2727

Browser Servidor Web

Processador depedidos

Interface como 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: exemploDiagramas de colaboração: exemplo

Page 28: CIn-UFPE1 Interações entre objetos. CIn-UFPE2 Modelagem Comportamental Modelagem Comportamental n Diagramas de Use Case n Diagramas de Seqüência n Diagramas.

CIn-UFPECIn-UFPE 2828

Modelando o fluxo de controle através de Diagramas de Modelando o fluxo de controle através de Diagramas de ColaboraçãoColaboraçã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.

Page 29: CIn-UFPE1 Interações entre objetos. CIn-UFPE2 Modelagem Comportamental Modelagem Comportamental n Diagramas de Use Case n Diagramas de Seqüência n Diagramas.

CIn-UFPECIn-UFPE 2929

Modelando o fluxo de controle através de Diagramas de Modelando o fluxo de controle através de Diagramas de ColaboraçãoColaboraçã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.