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
Input
Circular Shift
Lines
Alphabetizer
Index
Output
Alphabetized
index
Output
medium
Input 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
Lines
Input medium
Circular Shift
Chamada de subrotina
I/O
Alphabetizer
Output
medium
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
Input medium
Circular Shift
I
n
s
s
e
r
t
Lines
Alphabetizer
I
n
s
s
e
r
t
Lines
Invocação implícita
Chamada de subrotina
I/O
Output
Output
medium
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
Circular
Shift
Input
Alphabetizer
Output
Canal (Pipe)
I/O
Output
medium
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
Subsistema
de Gatilhos
Forma da onda
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
Acoplar
Adquirir
trans
To-X-Y
tamanho
Mostrar
sinal
tempo
Subsistema
de Gatilhos
Forma da onda
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.
Download

Arquitetura de Software: Estudos de Caso