Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouStella Diegues Minho Alterado mais de 8 anos atrás
2
Projetar Arquitetura parte 2 - Cápsulas
3
Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar arquitetura | 2 Passos para Projetar Arquitetura 1. Mapear classes de análise em elementos (classes, cápsulas e subsistemas) de projeto 2. Identificar oportunidades de reuso 3. Definir a estrutura da aplicação
4
Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar arquitetura | 3 Passo 1: Mapear classes de análise em elementos (classes, cápsulas e subsistemas) de projeto Identificar classes de projeto Identificar cápsulas Identificar protocolos das cápsulas Identificar subsistemas Especificar a interface dos subsistemas Fazer o mapeamento 1 classe de análise pode dar origem a 0 ou mais classes de projeto Mapeamento m : n
5
Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar arquitetura | 4 Classes Ativas Motivaçã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 sistema Notação utilizada no Curso Cápsulas, Protocolos, Portas, Conexões
6
Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar arquitetura | 5 Identificando Cápsulas Cá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
7
Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar arquitetura | 6 Cápsulas podem representar... Objetos concorrentes externos Exemplo: dispositivos físicos Monitoramento e controle de atividades concorrentes Unidades 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
8
Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar arquitetura | 7 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
9
Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar arquitetura | 8 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.
10
Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar arquitetura | 9 Árvore de decisão Classes 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
11
Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar arquitetura | 10 Cápsulas e Concorrência Concorrência interna Concorrência externa Diagrama de Atividades
12
Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar arquitetura | 11 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)
13
Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar arquitetura | 12 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.
14
Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar arquitetura | 13 Exemplo - QIB Mercado de Ações Classes de Análise InterfaceRelogio > ControladorAtualizacaoCotacoes > ComunicacaoOperadoraMercadoAcoes > Acao > Cotacao > OperadoraMercadoAcoes > CadastroAcoes > CadastroCotacoes > CadastroOperadorasMercadoAcoes >
15
Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar arquitetura | 14 Exemplo - QIB Mercado de Ações Classes de projeto InterfaceRelogio > ControladorAtualizacaoCotacoes > ComunicacaoOperadoraMercadoAcoes > ComunicacaoNasdaq > ComunicacaoBovespa > Acao > Cotacao > OperadoraMercadoAcoes > CadastroAcoes > CadastroCotacoes > CadastroOperadorasMercadoAcoes > IRepositorioAcoes > RepositorioAcoesBDRIRepositorioCotacoes > RepositorioCotacoesBDRIRepositorioMercadoAcoes > RepositorioMercadoAcoes
16
Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar arquitetura | 15 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
17
Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar arquitetura | 16 Identificando Protocolos Identificar conjunto de sinais das cápsulas InterfaceRelogio 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
18
Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar arquitetura | 17 Identificando Protocolos Gráfico de interações entre cápsulas InterfaceRelogio > ControladorAtualizacaoCotacoes > ComunicacaoOperadoraMercadoAcoes > interrupcao consultarCotacoes dadosCotacoes ComunicacaoNasdaq > ComunicacaoBovespa > consultarCotacoesNasdaqconsultarCotacoesBovespa dadosNasdaqdadosBovespa
19
Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar arquitetura | 18 Identificando Protocolos Criar os protocolos Toda interação entre cápsulas deve ser feita através de protocolos Passo-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
20
Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar arquitetura | 19 Identificando Protocolos Criar os protocolos InterfaceRelogio > ControladorAtualizacaoCotacoes > ComunicacaoOperadoraMercadoAcoes > interrupcao consultarCotacoes dadosCotacoes AtivacaoPeriodica interrupcao () > ComunicacaoNasdaq > ComunicacaoBovespa > consultarCotacoesNasdaqconsultarCotacoesBovespa dadosNasdaqdadosBovespa
21
Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar arquitetura | 20 Identificando Protocolos Criar os protocolos InterfaceRelogio > ControladorAtualizacaoCotacoes > interrupcao consultarCotacoes dadosCotacoes ConsultaCotacoes dadosCotacoes () consultarCotacoes () > AtivacaoPeriodica interrupcao () > ComunicacaoOperadoraMercadoAcoes > ComunicacaoNasdaq > ComunicacaoBovespa > consultarCotacoesNasdaqconsultarCotacoesBovespa dadosNasdaqdadosBovespa
22
Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar arquitetura | 21 Identificando Protocolos Criar os protocolos InterfaceRelogio > ControladorAtualizacaoCotacoes > interrupcao consultarCotacoes dadosCotacoes AtivacaoPeriodica interrupcao () > ComunicacaoOperadoraMercadoAcoes > ComunicacaoNasdaq > ComunicacaoBovespa > consultarCotacoesNasdaqconsultarCotacoesBovespa dadosNasdaq ConsultaCotacoes dadosCotacoes () consultarCotacoes () > InteracaoBovespa > consultarCotacoesBovespa (void) dadosCotacoesBovespa (void)
23
Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar arquitetura | 22 Identificando Protocolos Criar os protocolos InterfaceRelogio > ControladorAtualizacaoCotacoes > interrupcao consultarCotacoes dadosCotacoes AtivacaoPeriodica interrupcao () > ComunicacaoOperadoraMercadoAcoes > ComunicacaoNasdaq > ComunicacaoBovespa > consultarCotacoesNasdaqconsultarCotacoesBovespa ConsultaCotacoes dadosCotacoes () consultarCotacoes () > InteracaoBovespa > consultarCotacoesBovespa (void) dadosCotacoesBovespa (void) dadosNasdaq ack InteracaoNasdaq > consultarConexaoNasdaq (void) dadosCotacoesNasdaq (void)
24
Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar arquitetura | 23 Identificando Protocolos Identificar similaridades entre protocolos AtivacaoPeriodica interrupcao () > ConsultaCotacoes dadosCotacoes () consultarCotacoes () > InteracaoBovespa > consultarCotacoesBovespa (void) dadosCotacoesBovespa (void) InteracaoNasdaq > consultarConexaoNasdaq (void) dadosCotacoesNasdaq (void)
25
Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar arquitetura | 24 Identificando Protocolos Protocolos identificados Finalmente... AtivacaoPeriodica interrupcao () > ConsultaCotacoes dadosCotacoes () consultarCotacoes () >
26
Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar arquitetura | 25 Identificando Protocolos Associar protocolos a cápsulas Dependências entre protocolos e cápsulas ControladorAtualizacaoCotacoes > AtivacaoPeriodica interrupcao () > InterfaceRelogio > ConsultaCotacoes consultarCotacoes () dadosCotacoes () > ComunicacaoOperadoraMercadoAcoes > ComuicacaoBOVESPA > ComuncacaoNASDAQ >
27
Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar arquitetura | 26 Criando portas e associando portas a protocolos Criar o conjunto inicial de portas, considerando as responsabilidades da cápsula Passo-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
28
Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar arquitetura | 27 Exemplo- Relacionamento entre cápsula e subcápsulas ConsultaCotacoes consultarCotacoes () dadosCotacoes () > ComunicacaoOperadoraCotacao > + / consultarCotacoes~ + / consultarMercados ComuicacaoBOVESPA > +/ ConsultarCotacoes ~ ComuicacaoNASDAQ > +/ ConsultarCotacoes ~
29
Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar arquitetura | 28 Exemplo – Diagrama de classes de Atualizar Cotação InterfaceRelogio + / interrupcao > ControladorAtualizacaoCotacoes + / interrupcao~ + / cosultaCotacoes > AtivacaoPeriodica interrupcao (void) > ConsultaCotacoes ack (void) dadosCotacoes (void) iniciaConexao (void) consultaCotacoes (void) > ComunicacaoNasdaq + / consultaNasdaq~ > ComunicacaoBovespa + / consultaBovespa~ > ISubsistemaComunicacaoOperadoraMercadoAcoes ComunicacaoOperadoraCotacao + / consultaMercados > FachadaComunicacaoOperadoraMercadoAcoes + / interrupcao > + / interrupcao > + / interrupcao~ > + / interrupcao~ > + / cosultaCotacoes > + / cosultaCotacoes > 1 1 1 1 1 + / consultaCotacoes~ > + / consultaCotacoes~ > / consultaBovespa / consultaNasdaq + / consultaCotacoes~
30
Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar arquitetura | 29 Passo 3. Definir a estrutura da aplicação Definir as camadas da aplicação Determinar o meio de armazenamento que será utilizado Agrupar as classes, cápsulas e protocolos em pacotes e especificar a fachada da aplicação E outros padrões de projeto necessários
31
Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar arquitetura | 30 Juntando tudo - Visão geral da arquitetura GUI / Comunicação NEGÓCIO Interfaces negócio- dados DADOS Fachada TelaLogin TelaPagamentoQualitiCard ControladorLogin ControladorPagamentoQualitiCard CadastroPagamentosCartao... ContaInternet PagamentoCartao IRepositorioContasInternet IRepositorioPagamentosCartao RepositorioPagamentos CartaoBDR RepositorioPagamentos CartaoBDOO RepositorioContasI nternetBDR RepositorioContasI nternetArquivo CadastroContas Internet
32
Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar arquitetura | 31 Incorporando cápsulas Classe 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.
33
Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar arquitetura | 32 Arquitetura – incorporando cápsulas GUI Negócio Interfaces negócio-dados Dados TelaConsultarCotacoes - Capsula ControladorAtualizacaoCotacoes - Capsula IRepositorioCotacoes RepositorioCotacoes BDR RepositorioCotacoes Arquivo CadastroCotacoes Comunicação ConsultaCotacoes – Protocolo ComunicacaoOperadora - Capsula ISubsistemaComunicacao OperadaoraMercadoAcoes CadastroOperadoraMercado Acoes IRepositorioOperadoraMercadoAcoes RepositorioMercado AcoesBDR RepositorioMercado AcoesArquivo InterfaceRelogio – Capsula AtivacaoPeriodica - Protocolo GUI
34
Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar arquitetura | 33 Incorporando cápsulas Considerando 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
35
Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar arquitetura | 34 Arquitetura completa Dados GUI Negócio Interfaces negócio-dados Fachada - Capsula TelaConsultarCotacoes - Capsula ControladorAtualizador Cotacoes - Capsula IRepositorioCotacoes Repositorio CotacoesBDR Repositorio CotacoesBDR Repositorio Cotacoes Arquivo Repositorio Cotacoes Arquivo CadastroCotacoes Comunicação ConsultaCotacoes – Protocolo CadastroOperadora MercadoAcoes CadastroOperadora MercadoAcoes IRepositorioOperadora MercadoAcoes Repositorio MercadoAcoes BDR Repositorio MercadoAcoes BDR Repositorio MercadoAcoes Arquivo Repositorio MercadoAcoes Arquivo TelaLogin - Capsula TelaPagamentoQualitiCard - Capsula PagamentoQualitiCard – Protocolo PagamentoLogin – Protocolo ControladorPagamentoQualitiCard CadastroPagamentoCartao Pagamento Cartao IRepositorioPagamento Cartao ControladorLogin CadastroContas Internet CadastroContas Internet ContaInternet IRepositorioContas Internet Repositorio ContasInternet BDR Repositorio ContasInternet BDR Repositorio ContasInternet Arquivo Repositorio ContasInternet Arquivo Repositorio Pagamentos CartaoBDR Repositorio Pagamentos CartaoBDR Repositorio PagamentosC artaoBDOO Repositorio PagamentosC artaoBDOO InterfaceRel ogio - Capsula AtivacaoPeriodica – Protocolo ComunicacaoControlador – Protocolo
36
Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar arquitetura | 35 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
37
Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar arquitetura | 36 QIB – Efetuar Login, Consultar Cotações e Efetuar Pagamento do Qualiti Card Mapeamento entre análise e projeto Classes de AnáliseElementos de Projeto > Fachada > TelaMenu Data Hora ContaContaInternet ContaCorrente CadastroContas CadastroPagamentosCartaoCadastroTransacoes IRepositorioTransacoes RepositorioTransacoesBDR ComunicacaoOperadoraCartao SubsistemaComunicacaoOperadoraCartao ISubsistemaComunicacaoOperadoraCartao FachadaComunicacaoOperadoraCartao CadastroContasInternet IRepositorioContasInternet RepositorioContasInternetBDR CadastroContasCorrente IRepositorioContasCorrente RepositorioContasCorrenteBDR ControladorLogin
38
Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar arquitetura | 37 QIB – Efetuar Login, Consultar Cotações e Efetuar Pagamento do Qualiti Card Classes de AnáliseElementos de Projeto > InterfaceRelogio > AtivacaoPeriodica ControladorAtualizacaoCotacoes > ControladorAtualizacaoCotacoes > ConsultaCotacoes As demais classes são mapeadas diretamente em elementos de projeto InterfaceRelogio CadastroAcoes IRepositorioAcoes RepositorioAcoesBDR CadastroCotacoes CadastroOperadorasMercadoAcoes IRepositorioOperadoraMercadoAcoes RepositorioOperadoraMercadoAcoesBDR CadastroOperadorasMercadoAcoes CadastroCotacoes IRepositorioCotacoes RepositorioCotacoesBDR ComunicacaoOperadorasMercadoAcoes SubsistemaComunicacaoOperadoraMercadoAcoes ISubsistemaComunicacaoOperadoraMercadoAcoes FachadaComunicacaoOperadoraMercadoAcoes > ComunicacaoBovespa > ComunicacaoNasdaq
39
Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar arquitetura | 38 QIB – Efetuar Login e Efetuar Pagamento do Qualiti Card Projeto da arquitetura
40
Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar arquitetura | 39 QIB – Consultar cotações
41
Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar arquitetura | 40 Padrões de Projetos Vá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
42
Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar arquitetura | 41 Padrões de Projetos Mediador Media ou controla a interação de duas ou mais cápsulas Colega 2Colega 1Colega 3Colega N Mediador ProtocoloM Vantagem: Sincronizãção
43
Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar arquitetura | 42 Padrões de Projetos Cadeia 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 XCapsula YCapsula QCapsula Z requisição Vantagem: Criação de uma Pipeline
44
Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar arquitetura | 43 Padrões de Projetos Observadores Quando algum dado for alterado no objeto, todos os observadores são avisados. Observador 2 Observador 1 Observador 3 Sujeito ProtocoloM Sujeito +/ sc: ProtocoloSO Sujeito +/ so: ProtocoloSO ~ ProtocoloSO NotificacaoMudanca() Modificacao() Vantagem: Broadcast
45
Projetar Arquitetura
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.