1 / 21

Arquitetura de Software: Estudos de Caso

Arquitetura de Software: Estudos de Caso. Objetivo: Ilustrar como princípios de arquitetura podem aumentar o entendimento de sistemas de software. Avaliar diferentes soluções para um mesmo problema. 1. Palavra-chave em contexto: enunciado. 1. Palavra-chave em contexto: exemplo.

filia
Download Presentation

Arquitetura de Software: Estudos de Caso

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Arquitetura de Software:Estudos de Caso • Objetivo: • Ilustrar como princípios de arquitetura podem aumentar o entendimento de sistemas de software. • Avaliar diferentes soluções para um mesmo problema.

  2. 1. Palavra-chave em contexto: enunciado

  3. 1. Palavra-chave em contexto: exemplo

  4. 1. Palavra-chave em contexto: objetivo • Analisar diferentes arquiteturas com respeito às seguintes considerações de projeto: • Mudança no algoritmo de processamento (ex: shifts nas linhas podem ser feitos em cada linha lida, em todas as linhas após terem sido lidas, ou por demanda); • Mudança na representação dos dados; • Mudança na funcionalidade (extensibilidade); • Performance (espaço e tempo); • Grau de reuso.

  5. 1. Palavra-chave em contexto: programa principal/subrotinas com dados compartilhados Master Input Circular Shift Alphabetizer Output Lines Index Alphabetized index Input medium Output medium Acesso direto na memória Chamada de subrotina I/O

  6. 1. Palavra-chave em contexto: programa principal/subrotinas com dados compartilhados • Pontos fortes: • Dados podem ser representados de forma eficiente (boa performance), pois são compartilhados. • A extensibilidade é permitida por meio da adição de um novo componente, acessando os dados compartilhados. • Pontos fracos: • Uma mudança na estrutura dos dados irá afetar todos os módulos. • Mudanças no algoritmo de processamento não são fáceis. • Devido à forte dependência dos dados, os módulos não são facilmente reusáveis.

  7. 1. Palavra-chave em contexto: tipos abstratos de dados Master Input Output Alphabetizer Circular Shift Lines Input medium Output medium Chamada de subrotina I/O

  8. 1. Palavra-chave em contexto: tipos abstratos de dados • Pontos fortes: • Em cada módulo, tanto o algoritmo como o formato interno dos dados podem ser modificados sem afetar os outros módulos. • Reuso é melhor suportado, pois cada módulo não precisa conhecer detalhes internos dos outros módulos. • A performance não é tão boa quanto a anterior, pois o fluxo de dados é provavelmente maior. • Ponto fraco: • A extensibilidade implica modificação dos módulos ou adição de um novo módulo.

  9. 1. Palavra-chave em contexto: invocação implícita Master Input Circular Shift Alphabetizer Output I n s s e r t I n s s e r t Lines Output medium Input medium Lines Invocação implícita Chamada de subrotina I/O

  10. 1. Palavra-chave em contexto: invocação implícita • Características: • Tão logo os dados são modificados, outras computações são invocadas implicitamente. Existe um “line storage” para “input” e outro para “shifts”. • Ponto forte: • A representação dos dados pode ser modificada sem afetar os módulos. • Ponto fraco: • É difícil controlar a ordem de processamento dos módulos invocados implicitamente.

  11. 1. Palavra-chave em contexto: canais e filtros Input medium Input Circular Shift Alphabetizer Output Output medium Canal (Pipe) I/O

  12. 1. Palavra-chave em contexto: canais e filtros • Pontos fortes: • Suporta reuso já que cada filtro pode funcionar isoladamente desde que receba o “stream” que está esperando. • Novas funções podem ser adicionadas inserindo novos filtros no lugar apropriado. • O algoritmo de processamento de cada filtro pode ser modificado. • Pontos fracos: • É impossível modificar o sistema para funcionar interativamente. • Os dados têm que ser completamente copiados de um filtro para outro.

  13. 2. Software para instrumentação (osciloscópio) • Sistema de instrumentação que recebe sinais elétricos e mostra figuras numa tela; • Osciloscópio também executa medidas sobre estes sinais e mostra-as numa tela.

  14. 2. Software para instrumentação (osciloscópio):modelo orientado a objetos Osciloscópio Formato da onda Sinais Medidas ...

  15. 2. Software para instrumentação (osciloscópio):modelo orientado a objetos • Problema: • Confusão sobre o particionamento. Ex: as medidas devem ser associadas com os tipos de dados sendo medidos, ou representadas externamente? Quais são os objetos que a interface com o usuário interage?

  16. 2. Software para instrumentação (osciloscópio): modelo em camadas hardware digitalização manipulação visualização Interface com usuário

  17. 2. Software para instrumentação (osciloscópio): modelo em camadas • Problema: • Em osciloscópios reais, os usuários precisam afetar diretamente funções em todos os níveis. Ou seja, a interação não se dá apenas com o último nível.

  18. 2. Software para instrumentação (osciloscópio): modelo de canais e filtros Acoplar Adquirir To-X-Y Clip sinal tempo Forma da onda Subsistema de Gatilhos Medir medida

  19. 2. Software para instrumentação (osciloscópio): modelo de canais e filtros • Problema: • Não fica claro como o usuário interage com o sistema.

  20. 2. Software para instrumentação (osciloscópio): modelo de canais e filtros modificado acoplamento Tipo, taxa trans tamanho Acoplar Adquirir To-X-Y Mostrar sinal tempo Forma da onda Subsistema de Gatilhos Medir medida

  21. 2. Software para instrumentação (osciloscópio): modelo de canais e filtros modificado • Problemas: • Performance, devido à grande transferência de dados; • Filtros lentos podem atrasar o processamento do sistema.

More Related