6. vanilson.com
ArquiteturadeSoftware
Oqueé?
“A arquitetura de software de um programa ou sistema
computacional é a estrutura (ou estruturas), a qual envolve os
elementos de software, as propriedades desses elementos
visíveisexternamenteeseusrespectivosinter-relacionamentos”
SoftwareArchitectureinPractice.
LenBass,PaulClements,RickKazman
19. vanilson.com
Constraint
– Projetar o sistema como um conjunto de filters que transformam stream de dados de entrada em um stream de
dadosdesaídaeospipesconduzemosstreamsdedados.
– Filtrossãoindependentes(nãoarmazenamestado)enãotêmconhecimentodosfiltrosconectados aele.
– Exemplos: Unix: ps–a|grepjava|sort. Estiloadotado pelasaplicaçõesgeradascomoifttt.com, Yahoopipes,etc
AtributosdeQualidade
– Execuçãoconcorrente;
– flexibilidade de composição: filtros podem ser adicionados, substituídos, e reusados, sendo possível combinar 2
filtrosquaisquer);
– composição comportamental: o comportamento do sistema é a sucessão dos comportamentos dos seus
componentes (filters).
EstiloArquiteturalPipes&Filters
20. vanilson.com
Constraint
– Decompor a aplicação em componentes
(funcionais ou lógicos) reutilizáveis que expõem
interfacesbemdefinidasdecomunicação
AtributosdeQualidade
– reusabilidade;
– facilidade de deployment: substituição de uma
versão do componente por outra não gera
impactos no sistema, pois a interface de
comunicaçãodocomponenteémantida;
– redução de custo: uso de componentes de
terceiros permite a diluição do custo de
desenvolvimento emanutenção
EstiloArquiteturalbaseadoemcomponentes
21. vanilson.com
Constraint
– “Segregrar”osistemaem2tiposdeaplicações,onde
a aplicação do tipo cliente faz requisições ao
servidor.
– Na maioria dos casos, o servidor implementa toda a
lógicadaaplicaçãoeacesso aosdados
AtributosdeQualidade
– Maior segurança: todos os dados ficam armazenados
no servidor, que geralmente oferece maior controle
desegurançaqueasaplicações clientes;
– acessoadados centralizado;
– fácil manutenção: atualizações e reparados da
aplicaçãofeitosemumúnicoponto:servidor.
EstiloArquiteturalclient-server