210 likes | 371 Views
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.
E N D
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: 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.
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
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.
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
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.
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
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.
1. Palavra-chave em contexto: canais e filtros Input medium Input Circular Shift Alphabetizer Output Output medium Canal (Pipe) I/O
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.
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.
2. Software para instrumentação (osciloscópio):modelo orientado a objetos Osciloscópio Formato da onda Sinais Medidas ...
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?
2. Software para instrumentação (osciloscópio): modelo em camadas hardware digitalização manipulação visualização Interface com usuário
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.
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
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.
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
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.