Escolar Documentos
Profissional Documentos
Cultura Documentos
Quando é usado
Vantagens
Desvantagens
Quando é usado Também quando são desconhecidos os futuros requisitos de interação e apresentação de
dados. Para facilitar a manutenção.
Vantagens Permite que os dados sejam alterados de forma independente de sua representação, e
vice-versa. Apoia a apresentação dos mesmos dados de maneiras diferentes.
Desvantagens Quando solicta-se inclusão de novas informações no modelo pode envolver código
adicional e complexidade de código.
Engenharia de Software 2
1. Padrões de Arquitetura
O modelo gráficos da arquitetura do padrão MVC é mostrado na Figuras 6.3 run-
time.
Engenharia de Software 2
1. Padrões de Arquitetura
A Tabela abaixo descreve o conhecido padrão de Arquitetura em Camadas, O
padrão de arquitetura em camadas é outra maneira de conseguir a separação e
independência dos dados com a interface. Esse padrão está na Tabela 2.
Aqui, a funcionalidade do sistema é organizada em camadas separadas, e
cada camada só depende dos recursos e serviços oferecidos pela camada
imediatamente abaixo dela.
Engenharia de Software 2
1. Padrões de Arquitetura
Nome Arquitetura em Camadas
Descrição Uma camada fornece serviços à camada acima dela.
Quando é usado É usado na construção de novos recursos em cima de sistemas existentes; quando o desenvolvimento
está espalhado por várias equipes, com a responsabilidade de cada equipe em uma camada de
funcionalidade; quando há um requisito de proteção multinível.
Vantagens Desde que a interface seja mantida, permite a substituição de camadas inteiras. Recursos
redundantes (por exemplo, autenticação) podem ser fornecidos em cada camada para aumentar a
confiança do sistema.
Desvantagens Na prática, costuma ser difícil proporcionar uma clara separação entre as camadas, e uma camada de
alto nível pode ter de interagir diretamente com camadas de baixo nível, em vez de através da
camada imediatamente abaixo dela. O desempenho pode ser um problema por causa dos múltiplos
níveis de interpretação de uma solicitação de serviço, uma vez que são processados em cada camada.
Engenharia de Software 2
1. Padrões de Arquitetura
A Figura 3 é um exemplo de como
esse padrão de arquitetura em
camadas pode ser aplicado a um
sistema de biblioteca chamado
LIBSYS, que permite controlar o
acesso eletrônico de um grupo de
bibliotecas universitárias.
Esse sistema tem arquitetura de
cinco camadas, na qual a camada
inferior são os bancos de dados
individuais de cada biblioteca.
Vantagens Os componentes podem ser independentes — eles não precisam saber da existência de outros
componentes. As alterações feitas a um componente podem propagar-se para todos os outros. Todos
os dados podem ser gerenciados de forma consistente (por exemplo, backups feitos ao mesmo
tempo), pois tudo está em um só lugar.
Desvantagens O repositório é um ponto único de falha, assim, problemas no repositório podem afetar todo o
sistema. Pode haver ineficiências na organização de toda a comunicação através do repositório.
Distribuir o repositório através de vários computadores pode ser difícil.
Engenharia de Software 2
1. Padrões de Arquitetura
A Tabela abaixo descreve o conhecido padrão de Cliente-Servidor. Um sistema que segue
o padrão cliente-servidor é organizado como um conjunto de serviços e servidores associados
e clientes que acessam e usam os serviços. Os principais componentes desse modelo são:
1. Um conjunto de servidores que oferecem serviços a outros componentes. Exemplos de
servidores incluem: servidores de impressão que oferecem serviços de impressão; servidores
de arquivos que oferecem serviços de gerenciamento de arquivos; e um servidor de
compilação, que oferece serviços de compilação de linguagens de programação.
2. Um conjunto de clientes que podem chamar os serviços oferecidos pelos servidores. Em
geral, haverá várias instâncias de um programa cliente executando simultaneamente em
computadores diferentes.
3. Uma rede que permite aos clientes acessar esses serviços. A maioria dos sistemas cliente-
servidor é implementada como sistemas distribuídos, conectados através de protocolos de
Internet.
Engenharia de Software 2
1. Padrões de Arquitetura
Novamente, um benefício importante é a separação e a independência.
Serviços e servidores podem ser modificados sem afetar outras partes do sistema.
Os clientes podem ter de saber os nomes dos servidores disponíveis e os
serviços que eles fornecem. No entanto, os servidores não precisam conhecer a
identidade dos clientes ou quantos clientes estão acessando seus serviços.
É fácil adicionar um novo servidor e integrá-lo com o resto do sistema ou
atualizar os servidores de forma transparente, sem afetar outras partes do
sistema.
Engenharia de Software 2
1. Padrões de Arquitetura
Nome Arquitetura Cliente-Servidor
Descrição Em uma arquitetura cliente-servidor, a funcionalidade do sistema está organizada em serviços — cada
serviço é prestado por um servidor. Os clientes são os usuários desses serviços e acessam os
servidores para fazer uso deles.
Quando é usado É usado quando os dados em um banco de dados compartilhado precisam ser acessados a partir de
uma série de locais. Como os servidores podem ser replicados, também pode ser usado quando a
carga em um sistema é variável.
Vantagens A principal vantagem desse modelo é que os servidores podem ser distribuídos através de uma rede.
A funcionalidade geral (por exemplo, um serviço de impressão) pode estar disponível para todos os
clientes e não precisa ser implementada por todos os serviços.
Desvantagens Cada serviço é um ponto único de falha suscetível a ataques de negação de serviço ou de falha do
servidor. O desempenho, bem como o sistema, pode ser imprevisível, pois depende da rede.
A Figura 6.7 é um exemplo de uma biblioteca de filmes e vídeos/DVDs, organizados como
um sistema cliente-servidor.
Engenharia de Software 2
1. Padrões de Arquitetura
Em resumo...
● Uma arquitetura de software é uma descrição de como um sistema de software é organizado.
● As propriedades de um sistema, como desempenho, proteção e disponibilidade, são influenciadas
pela arquitetura adotada.
● As decisões de projeto de arquitetura incluem decisões sobre o tipo de aplicação, a distribuição do
sistema, os estilos da arquitetura a serem utilizados e as formas como a arquitetura devem ser
documentadas e avaliadas.
● Os padrões da arquitetura são um meio de reusar o conhecimento sobre as arquiteturas genéricas de
sistemas.
● Entre os padrões de arquitetura comumente usados estão: Modelo-Visão-Controlador, Arquitetura em
camadas, Repositório, Cliente-servidor e Duto e filtro.
Engenharia de Software 2
1. Padrões de Arquitetura
Curiosidades...outros padrões de Arquitetura de Software.
– Pipes-and-filters (PF): O padrão Pipe-and-filter é baseada em uma arquitetura linear, usa os componentes computacionais como filtros, que recebem uma
entrada, transformam-na a partir de um ou mais algoritmos e geram uma saída para um canal de comunicação. Alguns exemplos deste tipo de arquitetura de
– Peer-to-Peer (P2P): No Peer-to-Peer, todos os pares são clientes e servidores, ou seja, cada computador é um provedor de serviços independente de um
servidor central. Se você já baixou algum arquivo via torrent, se deparou com este padrão arquitetural.
– Service-Oriented Architecture (SOA): O SOA facilita a operação das grandes empresas, pois auxilia na criação do processo de encontrar, definir e gerenciar
os serviços disponibilizados. O NuBank e a Amazon são exemplos de corporações que utilizam este modelo arquitetural.
– Publish-Subscribe (Pub/Sub): Principal padrão arquitetural de redes sociais como Instagram e do Spotify, o modelo Publish-Subscribe conecta publicadores
(publishers) e assinantes (subscribers). Os publishers enviam mensagens aos subscribers, que são notificados sempre que um novo conteúdo é disponibilizado.
Engenharia de Software 2
. TAREFA
https://create.kahoot.it/share/aula-7-teo-padroes-de-arquitetura/54d94b7f-186a-
43ea-8a82-122e0fbeb10d