Post on 21-Jan-2016
description
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
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
OutputAlphabetizerCircular ShiftInput
Alphabetizedindex
IndexLines
Output medium
Input medium
Acesso direto na memória
Chamada de subrotinaI/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
Output
Circular Shift
Input
AlphabetizerLines
Output medium
Input 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
Output
Lines
Input
LinesOutput mediumInput medium
Chamada de subrotina
Inssert
Circular Shift Alphabetizer
I/O
Invocação implícita
Inssert
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 InputCircular
Shift
Output medium
OutputAlphabetizer
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
MedidasSinaisFormato da onda ...
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çãovisualizaçã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
MedirSubsistemade Gatilhos
sinal
Forma da onda
medida
tempo
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
Acoplar Adquirir To-X-Y Mostrar
MedirSubsistemade Gatilhos
sinal
Forma da onda
medida
tempo
acoplamento Tipo, taxa trans tamanho
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.