Estilos Arquiteturais
Por: Loreane Candia • 22/10/2015 • Resenha • 702 Palavras (3 Páginas) • 233 Visualizações
Estilos Arquiteturais
Acadêmicos: Iury Veloso, Loreane Candia, Victor de Freitas
Turma: 4º Período – Sistemas e Informação
Disciplina: Engenharia de Software II Professora: Christine Martins
Pipes e Filtros
Vantagens: Manutenabilidade, reorganização, útil para aplicações de processamento de informações que interagem pouco com o usuário, vários filtros em paralelo, e eficiência no processamento.
Desvantagens: Mudanças frequentes em componentes podem impactar outros componentes; suporte a manutenibilidade limitado;
Camadas
Vantagens: Suporte, padronização, desenvolvimento independente, facilidade de compreensão, facilidade de manutenção, reuso das camadas e suporte à evolução dos sistemas, oferecendo flexibilidade e boa manutenabilidade; dependências tentem a ser locais (dentro da camada) - restrição da comunicação entre camadas adjacentes, mudanças afetam no máximo duas camadas. Se interface bem definida, permite o uso de diferentes implementações da mesma camada.
Desvantagens: Às vezes é difícil estruturar sistemas em camadas, comum instrução ser violada, camadas relaxadas são necessárias, mudanças de serviço de camada inferior pode precisar de duplicação de funcionalidade. Overhead (problemas) de implementação, comunicação e desempenho; complexidade na implementação e teste do sistema.
Objetos
Vantagens: Objetos são fracamente acoplados devido ao uso de interfaces, linguagem de implementação orientada à objeto são amplamente usadas.
Desvantagens: Mudança de interface tem alto impacto, não envolve restrições topológicas, o que pode dificultar a manutenção; Dependências entre objetos não são limitados.
Invocação Implícita
Vantagens: Fornece forte suporte para reuso; qualquer componente pode ser introduzido no sistema simplesmente por registrá-lo a eventos daquele sistema; facilita evolução do sistema; componentes podem ser substituídos por outros componentes sem afetar as interfaces de outros componentes no sistema.
Desvantagens: Os componentes abrem mão do controle sobre a computação desempenhada pelo sistema; quando um componente anuncia um evento, ele não pode assumir que outros componentes responderão a esse evento; mesmo que ele conheça quais outros componentes estão interessados nos eventos que ele anunciou, ele não pode interferir na ordem em que eles são invocados; os componentes não podem fazer qualquer suposição sobre o tipo de computação a ser realizada ou ordem de processamento.
Quadro Negro
Vantagens: Ajuda a resolver problemas de experimentação; suporte a mudanças e manutenção. Escalabilidade em aplicações independentes; reuso de conhecimentos. Para o suporte, possui tolerância a falhas e robustez.
Desvantagens: Dificuldade para testar por não usar algoritmos determinísticos; nenhuma solução é garantida; não suporta paralelismo; baixa eficiência e alto esforço de desenvolvimento; dificuldade de estabelecer boa estratégia de controle.
Repositórios
Vantagens: É uma maneira eficiente de compartilhar grandes quantidades de dados porque estão interligados/centralizados; dados aderem uma representação comum; simplifica o projeto de aplicações fortemente baseados em dados.
Desvantagens: Subsistemas devem estar de acordo com um modelo de dados padronizado; a evolução de dados é difícil e dispendiosa; dificuldade para distribuir de forma eficiente.
...