Interações entre objetos
CIn-UFPE
1
Modelagem Comportamental

Diagramas de Use Case

Diagramas de Seqüência

Diagramas de Colaboração

Statecharts

Diagramas de Atividades
CIn-UFPE
2
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
de colaboração
CIn-UFPE
3
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
CIn-UFPE
4
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
Pessoa
p: Pessoa
darAumento(perc: float)
alocar(d: Departamento)
empregado 1..*
alocar(desenvolvimento)
0..5
empregador
Empresa
CIn-UFPE
e: Empresa
5
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
CIn-UFPE
6
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
seqüência de mensagens
CIn-UFPE
7
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
CIn-UFPE
8
Exemplo
Es te é um pr ogram a
CGI ou ISAPI
Br ow s er
Pr oce s s ador de
pe didos
Se rvidor We b
Inte r face com
o banco
Es tudante
Subm ete r for m ulár io
de pe dido pr e enchido
Codificar dados
do for m ulár io
Enviar dados
codificados
Pr oce s s ar dados
Exe cutar
Enviar dados
proce s s ados
Cadastr ar pe dido
Cadas tr o OK
Ge r ar página
de confir m ação
Enviar página
Enviar página
Exibir página
CIn-UFPE
9
Modelando o fluxo de controle através de Diagramas
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
CIn-UFPE
10
Modelando o fluxo de controle através de Diagramas
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.
CIn-UFPE
11
Classes de Fronteira (boundary classes)



Isolam o sistema de mudanças no
ambiente externo
Atores devem se comunicar apenas com
classes de fronteira
Exemplos de classes fronteira



<<boundary>>
GUI
Interface com outros sistemas
Interface com dispositivos
CIn-UFPE
12
O Papel de uma Classe de Fronteira
Modela interação
entre o sistema e seu
ambiente
<<boundary>>
<<control>>
<<boundary>>
Usuário
<<boundary>>
<<entity>>
<<entity>>
Fonte: Rational
CIn-UFPE
13
Regra geral para encontrar
Classes de Fronteira


Uma classe por cada par ator/caso de uso
Exemplo: Caso de uso Sacar Dinheiro
Cliente
FormularioSaque
CIn-UFPE
Sacar dinheiro
Sistema do banco
SistemaBanco
14
Classes de Entidade (entity classes)

Abstrações e conceitos chave dos casos de uso
<<entity>>
<<entity>>
Descrição do
Caso de uso
CIn-UFPE
<<entity>>
15
Fonte: Rational
O Papel de uma Classe de Entidade
Armazenam e
gerenciam
informação no
sistema
<<boundary>>
<<control>>
<<boundary>>
Customer
<<boundary>>
<<entity>>
<<entity>>
Fonte: Rational
CIn-UFPE
16
Orientações para encontrar
Classes 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)
CIn-UFPE
17
Exemplo: Classe de entidade do caso de uso Sacar
Dinheiro
Conta
CIn-UFPE
18
Classes de Controle (control classes)


Coordenam o comportamento (lógica de controle) do caso
de uso
Interface entre fronteira e entidade
<<control>>
CIn-UFPE
19
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 às classes de fachada (Arquitetura de Camadas)
<<boundary>>
<<control>>
<<boundary>>
Customer
<<boundary>>
<<entity>>
<<entity>>
Fonte: Rational
CIn-UFPE
20
Orientações para encontrar
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)
CIn-UFPE
21
Exemplo de Classe de Controle
Caso de uso Sacar Dinheiro
Cliente
Sacar dinheiro
Sistema do banco
ControladorSaque
CIn-UFPE
22
Exemplo: Classes de Análise resultantes do caso de uso Sacar
Dinheiro
<<boundary>>
FormularioSaque
<<control>>
ControladorSaque
<<boundary>>
SistemaBanco
<<entity>
Conta
CIn-UFPE
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)
Exibir mensagem (saque ok)
CIn-UFPE
saque ok
24
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
diagrama de
interação
:Client
:Supplier
// PerformResponsibility
diagrama de
classe
Supplier
// PerformResponsibility
CIn-UFPE
25
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
CIn-UFPE
26
Diagramas de colaboração: exemplo
1: codificarDados(dadosForm)
submeter(dadosForm)
3: processarDados()
2: enviarDadosCodificados(dados)
Browser
Servidor Web
9: enviarPagina(pagina)
8: enviarPagina(pag)
Estudante
5: enviarDadosProc(dados)
Interface com
o banco
4: executar()
Processador de
pedidos
6: cadastrapedido(consSQL)
7: gerarPagResposta()
CIn-UFPE
27
Modelando o fluxo de controle através de Diagramas de
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.
CIn-UFPE
28
Modelando o fluxo de controle através de Diagramas de
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.
CIn-UFPE
29
Download

a5-UMLInteracao