CIn-UFPE1 Interações entre objetos. CIn-UFPE2 Modelagem Comportamental Modelagem Comportamental n...
-
Upload
ana-livia-tome-amarante -
Category
Documents
-
view
218 -
download
1
Transcript of CIn-UFPE1 Interações entre objetos. CIn-UFPE2 Modelagem Comportamental Modelagem Comportamental n...
CIn-UFPECIn-UFPE 11
Interações entre objetosInterações entre objetos
CIn-UFPECIn-UFPE 22
Modelagem ComportamentalModelagem Comportamental
Diagramas de Use Case Diagramas de Seqüência
Diagramas de Colaboração
Statecharts
Diagramas de Atividades
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
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
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)
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
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
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
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
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
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.
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>>
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
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
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
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
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)
CIn-UFPECIn-UFPE 1818
Exemplo: Classe de entidade do caso de uso Sacar Exemplo: Classe de entidade do caso de uso Sacar DinheiroDinheiro
Conta
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>>
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
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)
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
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
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
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
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
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
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.
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.