Arquitetura de Software: Estudos de Caso

21
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.

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. - PowerPoint PPT Presentation

Transcript of Arquitetura de Software: Estudos de Caso

Page 1: 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.

Page 2: Arquitetura de Software: Estudos de Caso

1. Palavra-chave em contexto: enunciado

Page 3: Arquitetura de Software: Estudos de Caso

1. Palavra-chave em contexto: exemplo

Page 4: Arquitetura de Software: Estudos de Caso

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.

Page 5: Arquitetura de Software: Estudos de Caso

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

Page 6: Arquitetura de Software: Estudos de Caso

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.

Page 7: Arquitetura de Software: Estudos de Caso

1. Palavra-chave em contexto: tipos abstratos de dados

Master

Output

Circular Shift

Input

AlphabetizerLines

Output medium

Input medium Chamada de subrotina

I/O

Page 8: Arquitetura de Software: Estudos de Caso

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.

Page 9: Arquitetura de Software: Estudos de Caso

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

Page 10: Arquitetura de Software: Estudos de Caso

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.

Page 11: Arquitetura de Software: Estudos de Caso

1. Palavra-chave em contexto: canais e filtros

Input medium InputCircular

Shift

Output medium

OutputAlphabetizer

Canal (Pipe)

I/O

Page 12: Arquitetura de Software: Estudos de Caso

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.

Page 13: Arquitetura de Software: Estudos de Caso

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.

Page 14: Arquitetura de Software: Estudos de Caso

2. Software para instrumentação (osciloscópio):modelo orientado a objetos

Osciloscópio

MedidasSinaisFormato da onda ...

Page 15: Arquitetura de Software: Estudos de Caso

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?

Page 16: Arquitetura de Software: Estudos de Caso

2. Software para instrumentação (osciloscópio): modelo em camadas

hardware

digitalização

manipulaçãovisualização

Interface com usuário

Page 17: Arquitetura de Software: Estudos de Caso

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.

Page 18: Arquitetura de Software: Estudos de Caso

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

Page 19: Arquitetura de Software: Estudos de Caso

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.

Page 20: Arquitetura de Software: Estudos de Caso

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

Page 21: Arquitetura de Software: Estudos de Caso

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.