Projetar Arquitetura parte 2 - Cápsulas Copyright © 2002 Qualiti. Todos os direitos reservados....
-
Upload
stella-diegues-minho -
Category
Documents
-
view
221 -
download
3
Transcript of Projetar Arquitetura parte 2 - Cápsulas Copyright © 2002 Qualiti. Todos os direitos reservados....
Projetar Arquiteturaparte 2 - Cápsulas
Projetar arquitetura | 2
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Passos para Projetar Arquitetura
1. Mapear classes de análise em elementos (classes, cápsulas e subsistemas) de projeto
2. Identificar oportunidades de reuso3. Definir a estrutura da aplicação
Projetar arquitetura | 3
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Passo 1: Mapear classes de análise em elementos (classes, cápsulas e
subsistemas) de projeto
Identificar classes de projetoIdentificar cápsulasIdentificar protocolos das cápsulasIdentificar subsistemasEspecificar a interface dos subsistemasFazer o mapeamento1 classe de análise pode dar origem a 0 ou mais classes de projeto
Mapeamento m : n
Projetar arquitetura | 4
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Classes AtivasMotivação Facilitar a introdução de conceitos de
concorrência no projeto• Abordagens já existentes: ROOM, UML-RT, EDOC
Abstrair a implementação da comunicação• Troca de mensagens X chamada de
procedimentos Fluxo de execução independente do
restante do sistemaNotação utilizada no Curso Cápsulas, Protocolos, Portas, Conexões
Projetar arquitetura | 5
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Identificando CápsulasCápsula Representa uma thread lógica do sistema Fluxo de controle independente no sistema
Podem ser identificadas a partir de eventos externos (interação usuários com casos de uso) Candidatas: classes presentes na realização
de um caso de uso, afetadas por um evento externo
Projetar arquitetura | 6
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Cápsulas podem representar ...
Objetos concorrentes externos Exemplo: dispositivos físicos Monitoramento e controle de atividades
concorrentesUnidades de concorrência Objetos conceitualmente concorrentes Ex.: Classe que representa conexão com o
banco• Realiza a conexão com o banco paralelamente à
execução de outras tarefas do sistema
Projetar arquitetura | 7
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Cápsulas podem representar ...
Controladores de objetos concorrentes Gerência continua: interface de erros
externos, sincronização de ações, etc.Gerenciadores de recursos compartilhados Proteção contra conflitos de concorrência
Projetar arquitetura | 8
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Cápsulas são estereótipos de classes
Atributos e operações de cápsulas são privados. Exceto o método que modela o comportamento.
Projetar arquitetura | 9
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Árvore de decisãoClasses de Fronteira e de Controle
Representa um componente
externo?
Reage a eventos externos?
Controla apenas acesso a dados?
Possui concorrência interna? Controla outras
cápsulas?
Transformar em
cápsula
Transformar
em várias cápsulas
Continuar como classe
S
S
S
S
S
N
N
N
N
N
Projetar arquitetura | 10
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Cápsulas e Concorrência
Concorrência interna
Concorrência externa
Diagrama de Atividades
Projetar arquitetura | 11
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Caso de uso – Atualizar Cotações
Relógio(from atores)
Cliente(from atores)
Consultar Cotações(from consultas)
Comprar Ações(from transacoes)
Vender Ações(from transacoes)
Atualizar Cotações(from transacoes)
Operadora Mercado de Ações(from atores)
Projetar arquitetura | 12
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Fluxo de eventos – Atualizar cotações
Fluxo de eventos Este caso de uso inicia quando o relógio dispara uma
interrupção, a cada 5 minutos, indicando que as cotações devem ser atualizadas.
O sistema consulta as cotações das ações através da operadora do Mercado de Ações.
Em seguida o sistema atualiza o valor das ações, mantendo todo o histórico dos valores das ações.
Fluxo secundário No passo 2, se a operadora demorar mais que 5
segundos para responder à solicitação de consulta, ocorrerá um timeout e o caso de uso será encerrado.
Em qualquer momento o usuário pode cancelar a operação.
Projetar arquitetura | 13
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Exemplo - QIB Mercado de AçõesClasses de Análise
InterfaceRelogio<<boundary>>
ControladorAtualizacaoCotacoes<<control>>
ComunicacaoOperadoraMercadoAcoes<<boundary>>
Acao<<entity>>
Cotacao<<entity>>
OperadoraMercadoAcoes<<entity>>
CadastroAcoes<<entity collection>>
CadastroCotacoes<<entity collection>>
CadastroOperadorasMercadoAcoes<<entity collection>>
Projetar arquitetura | 14
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Exemplo - QIB Mercado de Ações
Classes de projeto
InterfaceRelogio<<capsule>>
ControladorAtualizacaoCotacoes<<capsule>>
ComunicacaoOperadoraMercadoAcoes<<subsystem>>
ComunicacaoNasdaq<<capsule>>
ComunicacaoBovespa<<capsule>>
Acao<<entity>>
Cotacao<<entity>>
OperadoraMercadoAcoes<<entity>>
CadastroAcoes<<entity collection>>
CadastroCotacoes<<entity collection>>
CadastroOperadorasMercadoAcoes<<entity collection>>
IRepositorioAcoes<<interface>>
RepositorioAcoesBDR
IRepositorioCotacoes<<interface>>
RepositorioCotacoesBDR
IRepositorioMercadoAcoes<<interface>>
RepositorioMercadoAcoes
Projetar arquitetura | 15
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Identificando Protocolos das Cápsulas
Protocolos Identificam o ‘contrato’ entre cápsulas, definindo um
conjunto de sinais usados para comunicação entre diferentes threads, bem como a seqüência válida de troca de sinais entre as cápsulas
Passos Para cada cápsula, listar o conjunto de sinais de entrada e
de saída (in e out) Desenhar gráfico de interação entre cápsulas Para cada interação entre um par de cápsulas, criar um
protocolo Identificar similaridades entre protocolos e promover reuso Associar protocolos a cápsulas
Projetar arquitetura | 16
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Identificando ProtocolosIdentificar conjunto de sinais das
cápsulasInterfaceRelogio Entradas: Saídas: interrupcao
ControladorAtualizacaoCotacoes Entradas: interrupcao, dadosCotacoes Saídas: consultarCotacoes
ComunicacaoOperadoraMercadoAcoes Entradas: consultarCotacoes, dadosCotacoesNasdaq,
dadosCotacoesBovespa, Saídas: dadosCotacoes, consultarCotacoesNasdaq,
dadosCotacoesBovespa, ComunicacaoNasdaq Entradas: consultarCotacoesNasdaq Saídas: dadosCotacoesNasdaq
ComunicacaoBovespa Entradas: consultarCotacoesBovespa Saídas: dadosCotacoesBovespa
Projetar arquitetura | 17
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Identificando Protocolos Gráfico de interações entre cápsulas
InterfaceRelogio<<Capsule>>
ControladorAtualizacaoCotacoes<<Capsule>>
ComunicacaoOperadoraMercadoAcoes<<Capsule>>
interrupcao
consultarCotacoes
dadosCotacoes
ComunicacaoNasdaq<<Capsule>>
ComunicacaoBovespa<<Capsule>>
consultarCotacoesNasdaqconsultarCotacoesBovespa
dadosNasdaq dadosBovespa
Projetar arquitetura | 18
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Identificando ProtocolosCriar os protocolos
Toda interação entre cápsulas deve ser feita através de protocolosPasso-a-passo: Para cada par de cápsulas que interagem
entre si, crie um protocolo Escolha uma das duas cápsulas como
referência para definir os sinais de entrada e os de saída
Insira os sinais de entrada e de saída da cápsula no protocolo criado
Projetar arquitetura | 19
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Identificando ProtocolosCriar os protocolos
InterfaceRelogio<<Capsule>>
ControladorAtualizacaoCotacoes<<Capsule>>
ComunicacaoOperadoraMercadoAcoes<<Capsule>>
interrupcao
consultarCotacoes
dadosCotacoes
AtivacaoPeriodica
interrupcao ()
<<Protocol>>
ComunicacaoNasdaq<<Capsule>>
ComunicacaoBovespa<<Capsule>>
consultarCotacoesNasdaqconsultarCotacoesBovespa
dadosNasdaq dadosBovespa
Projetar arquitetura | 20
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Identificando ProtocolosCriar os protocolos
InterfaceRelogio<<Capsule>>
ControladorAtualizacaoCotacoes<<Capsule>>interrupcao
consultarCotacoes
dadosCotacoes
ConsultaCotacoes
dadosCotacoes ()
consultarCotacoes ()
<<Protocol>>
AtivacaoPeriodica
interrupcao ()
<<Protocol>>
ComunicacaoOperadoraMercadoAcoes<<Capsule>>
ComunicacaoNasdaq<<Capsule>>
ComunicacaoBovespa<<Capsule>>
consultarCotacoesNasdaqconsultarCotacoesBovespa
dadosNasdaq dadosBovespa
Projetar arquitetura | 21
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Identificando ProtocolosCriar os protocolos
InterfaceRelogio<<Capsule>>
ControladorAtualizacaoCotacoes<<Capsule>>interrupcao
consultarCotacoes
dadosCotacoes
AtivacaoPeriodica
interrupcao ()
<<Protocol>>
ComunicacaoOperadoraMercadoAcoes<<Capsule>>
ComunicacaoNasdaq<<Capsule>>
ComunicacaoBovespa<<Capsule>>
consultarCotacoesNasdaqconsultarCotacoesBovespa
dadosNasdaq
ConsultaCotacoes
dadosCotacoes ()
consultarCotacoes ()
<<Protocol>>
InteracaoBovespa<<Protocol>>
consultarCotacoesBovespa (void)
dadosCotacoesBovespa (void)
Projetar arquitetura | 22
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Identificando ProtocolosCriar os protocolos
InterfaceRelogio<<Capsule>>
ControladorAtualizacaoCotacoes<<Capsule>>interrupcao
consultarCotacoes
dadosCotacoes
AtivacaoPeriodica
interrupcao ()
<<Protocol>>
ComunicacaoOperadoraMercadoAcoes<<Capsule>>
ComunicacaoNasdaq<<Capsule>>
ComunicacaoBovespa<<Capsule>>
consultarCotacoesNasdaqconsultarCotacoesBovespa
ConsultaCotacoes
dadosCotacoes ()
consultarCotacoes ()
<<Protocol>>
InteracaoBovespa<<Protocol>>
consultarCotacoesBovespa (void)
dadosCotacoesBovespa (void)dadosNasdaq
ack
InteracaoNasdaq<<Protocol>>
consultarConexaoNasdaq (void)
dadosCotacoesNasdaq (void)
Projetar arquitetura | 23
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Identificando Protocolos Identificar similaridades entre
protocolos
AtivacaoPeriodica
interrupcao ()
<<Protocol>>
ConsultaCotacoes
dadosCotacoes ()
consultarCotacoes ()
<<Protocol>>
InteracaoBovespa<<Protocol>>
consultarCotacoesBovespa (void)
dadosCotacoesBovespa (void)
InteracaoNasdaq<<Protocol>>
consultarConexaoNasdaq (void)
dadosCotacoesNasdaq (void)
Projetar arquitetura | 24
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Identificando Protocolos Protocolos identificados
Finalmente...
AtivacaoPeriodica
interrupcao ()
<<Protocol>> ConsultaCotacoes
dadosCotacoes ()
consultarCotacoes ()
<<Protocol>>
Projetar arquitetura | 25
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Identificando Protocolos Associar protocolos a cápsulas
Dependências entre protocolos e cápsulas
ControladorAtualizacaoCotacoes<<Capsule>>
AtivacaoPeriodica
interrupcao ()
<<Protocol>>
InterfaceRelogio<<Capsule>>
ConsultaCotacoes
consultarCotacoes ()
dadosCotacoes ()
<<Protocol>>
ComunicacaoOperadoraMercadoAcoes<<Capsule>>
ComuicacaoBOVESPA<<Capsule>>
ComuncacaoNASDAQ<<Capsule>>
Projetar arquitetura | 26
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Criando portas eassociando portas a
protocolosCriar o conjunto inicial de portas, considerando as responsabilidades da cápsulaPasso-a-passo: Criar uma porta para cada interação cápsula-
protocolo-cápsula Nomear a porta com o nome do protocolo ou com o
papel da cápsula na realização do protocolo Se as direções dos sinais no protocolo estiverem
invertidos (entrada está como saída e vice-versa), a porta deve ser definida como conjugada (conjugated)
O mesmo protocolo pode ser utilizado em diferentes portas
Projetar arquitetura | 27
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Exemplo- Relacionamento entre cápsula e
subcápsulas
ConsultaCotacoes
consultarCotacoes ()
dadosCotacoes ()
<<Protocol>>ComunicacaoOperadoraCotacao
<<Capsule>>
+ / consultarCotacoes~ + / consultarMercados
ComuicacaoBOVESPA<<Capsule>>
+/ ConsultarCotacoes ~
ComuicacaoNASDAQ<<Capsule>>
+/ ConsultarCotacoes ~
Projetar arquitetura | 28
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Exemplo – Diagrama de classes de Atualizar
Cotação
InterfaceRelogio
+ / interrupcao
<<Capsule>>
ControladorAtualizacaoCotacoes
+ / interrupcao~+ / cosultaCotacoes
<<Capsule>>
AtivacaoPeriodica
interrupcao (void)
<<Protocol>>
ConsultaCotacoesack (void)
dadosCotacoes (void)iniciaConexao (void)
consultaCotacoes (void)
<<Protocol>>
ComunicacaoNasdaq
+ / consultaNasdaq~
<<Capsule>>ComunicacaoBovespa
+ / consultaBovespa~
<<Capsule>>
ISubsistemaComunicacaoOperadoraMercadoAcoes
ComunicacaoOperadoraCotacao
+ / consultaMercados
<<Capsule>>
FachadaComunicacaoOperadoraMercadoAcoes
+ / interrupcao<<Port>>
+ / interrupcao<<Port>>
+ / interrupcao~<<Port>>
+ / interrupcao~<<Port>>
+ / cosultaCotacoes<<Port>>
+ / cosultaCotacoes<<Port>>
1111
1
+ / consultaCotacoes~<<Port>>
+ / consultaCotacoes~<<Port>>
/ consultaBovespa / consultaNasdaq
+ / consultaCotacoes~
Projetar arquitetura | 29
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Passo 3. Definir a estrutura da aplicação
Definir as camadas da aplicaçãoDeterminar o meio de armazenamento que será utilizadoAgrupar as classes, cápsulas e protocolos em pacotes e especificar a fachada da aplicação E outros padrões de projeto necessários
Projetar arquitetura | 30
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Juntando tudo - Visão geral da arquitetura
GUI / Comunicação
NEGÓCIO
Interfaces negócio-
dados
DADOS
Fachada
TelaLogin
TelaPagamentoQualitiCard
ControladorLogin
ControladorPagamentoQualitiCard
CadastroPagamentosCartao
...ContaInternet PagamentoCart
ao
IRepositorioContasInternet IRepositorioPagamentosCartao
RepositorioPagamentosCartaoBDR
RepositorioPagamentosCartaoBDOO
RepositorioContasInternetBDR
RepositorioContasInternetArqui
vo
CadastroContasInternet
Projetar arquitetura | 31
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Incorporando cápsulasClasse de análise -> cápsula GUI
• Classe fronteira -> cápsula Camada de negócio
• Fachada -> cápsula• Controlador -> cápsula
Necessidade de protocolo de comunicação entre cápsulas Criação da camada de comunicação para
incorporar protocolos para realizar a comunicação da GUI com a camada de negócio.
Projetar arquitetura | 32
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Arquitetura – incorporando cápsulas
GUI
Negócio
Interfaces negócio-dados
Dados
TelaConsultarCotacoes - Capsula
ControladorAtualizacaoCotacoes - Capsula
IRepositorioCotacoes
RepositorioCotacoesBDR
RepositorioCotacoesArquivo
CadastroCotacoes
Comunicação ConsultaCotacoes – Protocolo
ComunicacaoOperadora - Capsula
ISubsistemaComunicacaoOperadaoraMercadoAcoes
CadastroOperadoraMercadoAcoes
IRepositorioOperadoraMercadoAcoes
RepositorioMercadoAcoesBDR
RepositorioMercadoAcoesArquivo
InterfaceRelogio – Capsula
AtivacaoPeriodica - Protocolo
GUI
Projetar arquitetura | 33
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Incorporando cápsulasConsiderando a arquitetura definida para o QIB Classes da GUI, fachada e controladores
serão mapeados em cápsulas Criação de protocolos de comunicação para
que a GUI se comunique com a camada de negócio
Projetar arquitetura | 34
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Arquitetura completa
Dados
GUI
Negócio
Interfaces negócio-dados
Fachada - Capsula
TelaConsultarCotacoes - Capsula
ControladorAtualizadorCotacoes - Capsula
IRepositorioCotacoes
RepositorioCotacoesBDR
RepositorioCotacoes Arquivo
CadastroCotacoes
Comunicação ConsultaCotacoes – Protocolo
CadastroOperadoraMercadoAcoes
IRepositorioOperadoraMercadoAcoes
RepositorioMercadoAcoes
BDR
RepositorioMercadoAcoes
Arquivo
TelaLogin - Capsula TelaPagamentoQualitiCard - Capsula
PagamentoQualitiCard – Protocolo
PagamentoLogin – Protocolo
ControladorPagamentoQualitiCard
CadastroPagamentoCartao
PagamentoCartao
IRepositorioPagamentoCartao
ControladorLogin
CadastroContasInternet
ContaInternet
IRepositorioContasInternet
RepositorioContasInternet
BDR
RepositorioContasInternet
Arquivo
RepositorioPagamentosCartaoBDR
RepositorioPagamentosC
artaoBDOO
InterfaceRelogio -
Capsula
AtivacaoPeriodica – Protocolo
ComunicacaoControlador – Protocolo
Projetar arquitetura | 35
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Classes de análise - a origem de tudo
Classes de entidade -> classes básicas + coleções de negócio e coleções de dados
Classes de fronteira com usuários -> classes de GUI -> cápsulas com legados ->subsistemas
Classes de controle -> fachada do sistema ou subsistema -> cápsula
Projetar arquitetura | 36
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
QIB – Efetuar Login, Consultar Cotações e Efetuar Pagamento do Qualiti Card
Mapeamento entre análise e projetoClasses de Análise Elementos de Projeto
<<Capsule>> Fachada<<Capsule>> TelaMenuDataHora
Conta ContaInternetContaCorrente
CadastroContas
CadastroPagamentosCartao CadastroTransacoesIRepositorioTransacoesRepositorioTransacoesBDR
ComunicacaoOperadoraCartao SubsistemaComunicacaoOperadoraCartaoISubsistemaComunicacaoOperadoraCartaoFachadaComunicacaoOperadoraCartao
CadastroContasInternetIRepositorioContasInternetRepositorioContasInternetBDRCadastroContasCorrenteIRepositorioContasCorrenteRepositorioContasCorrenteBDR
ControladorLogin
Projetar arquitetura | 37
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
QIB – Efetuar Login, Consultar Cotações e Efetuar Pagamento do
Qualiti CardClasses de Análise Elementos de Projeto
<<Capsule>> InterfaceRelogio<<Protocol>> AtivacaoPeriodica
ControladorAtualizacaoCotacoes <<Capsule>> ControladorAtualizacaoCotacoes<<Protocol>> ConsultaCotacoes
As demais classes são mapeadas diretamente em elementos de projeto
InterfaceRelogio
CadastroAcoes CadastroAcoesIRepositorioAcoesRepositorioAcoesBDR
CadastroCotacoes
CadastroOperadorasMercadoAcoesIRepositorioOperadoraMercadoAcoesRepositorioOperadoraMercadoAcoesBDR
CadastroOperadorasMercadoAcoes
CadastroCotacoesIRepositorioCotacoesRepositorioCotacoesBDR
ComunicacaoOperadorasMercadoAcoes
SubsistemaComunicacaoOperadoraMercadoAcoesISubsistemaComunicacaoOperadoraMercadoAcoesFachadaComunicacaoOperadoraMercadoAcoes<<Capsule>> ComunicacaoBovespa<<Capsule>> ComunicacaoNasdaq
Projetar arquitetura | 38
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
QIB – Efetuar Login e Efetuar Pagamento do Qualiti Card
Projeto da arquitetura
Comprovante
FachadaComunicacaoOperadoraCartao
Hora
Data
PagamentoCartaonumeroFaturacontaBancariavalor
RepositorioContasCorrenteBDR
RepositorioContasInternetBDR
RepositorioPagamentosCartaoBDR
ContaCorrente
ContaInternet
1
1
1
1
IRepositorioContasCorrente
TelaLogin TelaMenu TelaPagamentoQualitiCard
IRepositorioPagamentosCartaoIRepositorio
ContasInternet
ControladorLogin
CadastroContasCorrente
1
1
1
1
Fachada - Capsula1
0..n
1
0..n
1
0..n
1
0..n
1
0..n
1
0..n
1
1
1
1
ISubsistemaComunicacaoOperadoraCartao
CadastroPagamentosCartao
1
1
1
1
CadastroContasInternet
1
1
1
1
1
1
1
1
ControladorPagamentoQualitiCard
1
1
1
1
1
1
1
11
1
1
1
1
1
1
1
1
1
1
1
ControladorAtualizacaoCotacoes<<Capsule>>
(from controladores)
.
.
.
Projetar arquitetura | 39
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
QIB – Consultar cotações
Acao<<entity>>
Cotacao<<entity>> 1* 1*
OperadoraMercadoAcoes<<entity>>
InterfaceRelogio<<Capsule>>
RepositorioAcoesBDR
RepositorioCotacoesBDR
RepositorioOperadorasMercadoAcoes
CadastroAcoes
consultaAcoesOperadora()
<<entity collection>>
1
1
1
1
IRepositorioAcoes1
1
1
1
CadastroOperadoraMercadoAcoes
consultaOperadoras()
<<entity collection>>
IRepositorioOperadorasMercadoAcoes11 11
CadastroCotacoes
atualizarCotacoes()
<<entity collection>>
IRepositorioCotacoes1 11 1
FachadaComunicacaoOperadoraMercadoAcoes
ControladorAtualizacaoCotacoes<<Capsule>> 1
1
1
1
1
1
1
1
ComunicacaoOperadora<<Capsule>>
/ comunicacaoOperadoraR1 / comunicacaoOperadoraR1
ISubsistemaComunicacaoOperadoraMercadoAcoes
1
11
1
Projetar arquitetura | 40
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Padrões de ProjetosVários padrões da ‘Gangue dos Quatro’ (GoF) contém parcialmente paradigmas existentes em cápsulas: Fachada (estrutural), State
(comportamental)Outros exemplos de aplicações: Mediador Cadeia de responsabilidade Observadores
Projetar arquitetura | 41
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Padrões de ProjetosMediador Media ou controla a interação de duas ou
mais cápsulas
Colega 2Colega 1 Colega 3 Colega N
Mediador
ProtocoloM
ProtocoloM
Vantagem: Sincronizãção
Projetar arquitetura | 42
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Padrões de ProjetosCadeia de responsabilidade Permite que o destinatário de uma
requisição possa utilizar mais de um objeto para processar o seu resultado. (utilizando uma cadeia de objetos)
Capsula X Capsula Y Capsula QCapsula Zrequisição
Vantagem: Criação de uma Pipeline
Projetar arquitetura | 43
Copy
right
© 2
002
Qual
iti. T
odos
os d
ireito
s res
erva
dos.
Qualiti Software Processes
Padrões de ProjetosObservadores Quando algum dado for alterado no objeto,
todos os observadores são avisados.
Observador 2
Observador 1
Observador 3
Sujeito
ProtocoloM
ProtocoloM
Sujeito
+/ sc: ProtocoloSO
Sujeito
+/ so: ProtocoloSO ~
ProtocoloSO
NotificacaoMudanca()Modificacao()
Vantagem: Broadcast
Projetar Arquitetura