A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Projetar Arquitetura parte 2 - Cápsulas Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar arquitetura | 2 Passos.

Apresentações semelhantes


Apresentação em tema: "Projetar Arquitetura parte 2 - Cápsulas Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar arquitetura | 2 Passos."— Transcrição da apresentação:

1

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


Carregar ppt "Projetar Arquitetura parte 2 - Cápsulas Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar arquitetura | 2 Passos."

Apresentações semelhantes


Anúncios Google