Você está na página 1de 18

Arquitetura de Software

Tema 05 – Análise das Arquiteturas


Bloco 1
Sérgio Eduardo Nunes
Objetivos

• Compreender a importância da arquitetura de software ante os projetos de


desenvolvimento de sistemas.
• Compreender quais são as decisões necessárias para escolher o tipo de arquitetura
que atenderá às necessidades funcionais do projeto de desenvolvimento de
software.
• Conhecer os padrões de arquiteturas mais encontrados nos projetos de
desenvolvimento de sistemas.
Projeto de Arquitetura de Software

Segundo Sommerville (2011), o projeto de arquitetura de software discute como os


sistemas devem ser organizados, bem como de que forma deve ser a estrutura geral
do sistema. A arquitetura de software afeta diretamente o desempenho e robustez dos
sistemas. Dessa forma, as vantagens em se projetar e documentar seus componentes,
pode ser vista na:
• Comunicação com o cliente: a arquitetura de alto nível deve ser utilizada para
fomentar as discussões com o cliente, a fim de rever os requisitos.
• Análise do sistema: principalmente na fase inicial do projeto, a arquitetura, mesmo
que superficial, pode aumentar a compreensão do sistema, verificar o cumprimento
dos requisitos e identificar os pontos críticos.
• Reuso: ao se documentar a arquitetura, é possível compreender os componentes e
identificar as possibilidades de reuso em projetos com funcionalidades
semelhantes.
Projeto de Arquitetura de Software

Fonte: elaborado pelo autor.


Decisões

• Possui arquitetura de utilização geral, que atenda às necessidades desse projeto?


• Como será a interação com o hardware (requisitos)?
• Quais modelos podem ser utilizados?
• Existe uma abordagem estrutural que pode auxiliar a composição do sistema?
• O que serão considerados os subsistemas, os componentes e os subcomponentes?
• Como será o funcionamento dos componentes quando estiverem em
funcionamento?
• Qual são os requisitos funcionais e não funcionais?
• Como será feita a avaliação da arquitetura adotada?
• A arquitetura deve ser documentada?
Decisões

Desempenho

Segurança

Disponibilidade

Manutenção

Fonte: Imagens Online – Office 2016


Padrões de Arquitetura

Segundo Sommerville (2011), os padrões de arquitetura de software foram publicados


em uma série de cinco manuais entre os anos de 1996 e 2007. Dentre outras coisas,
para se representar as arquiteturas, foi proposto o Modelo Visão Controlador (MVC).

Nome MVC
Descrição Aqui são demonstrados três componentes:
 Sistema de dados, onde são gerenciadas as operações associadas à base de
dados.
 Componente de visão, que define como os dados serão apresentados ao
usuário.
 Componente controlador, onde ocorre o gerenciamento dos componentes
de interação com o usuário.

Fonte: elaborado pelo autor.


Arquitetura de Software
Tema 05 – Análise das Arquiteturas
Bloco 2
Sérgio Eduardo Nunes
Arquitetura em Camada

Segundo Lobo (2009), nessa arquitetura são necessárias três camadas,


separadamente: cliente, servidor e negócio.
• São planejados, desenvolvidos e executados, cada um em sua respectiva camada.
• As funcionalidades existentes no sistema ficam em camadas separadas e, cada
camada, possui dependência funcional dos recursos e serviços.

Fonte: disponível em: <https://cleversonsacramento.files.wordpress.com/2011/10/arquitetura-camadas.png>.


Acesso em: 07 dez. 2018.
Arquitetura em Camada (Exemplo GED)

Fonte: elaborado pelo autor.


Arquitetura em Camada

Fonte: Imagens Online – Office 2016

• Substituição da camada inteira. Poder ter recursos


redundantes quando necessário. Isolamento do
problema, não afetando o sistema por completo.

Fonte: Imagens Online – Office 2016

• No momento do desenvolvimento, separar as camadas


não é uma tarefa tão simples assim. Determinar a
hierarquia das funcionalidades, conforme as partes mais
sensíveis do sistema.
Arquitetura Cliente-Servidor

Segundo Sommerville (2011), a arquitetura cliente-servidor é estruturada como um


conjunto de serviços, e/ ou servidores associados, que permite que o cliente possa
interagir com o sistema.
• Servidores: são máquinas que possuem sistemas operacionais que agem como
gerenciadores de alguns serviços, como, servidor de impressão, servidor de
arquivos, servidor web, entre outros.
• Clientes: é um conjunto de componentes que fazem uma chamada em um ou mais
serviços oferecidos. Em termos práticos, existem várias instâncias que executam o
programa, de computadores diferentes, e, muitas vezes, geograficamente
distribuídos na rede.
• Rede: é a infraestrutura que permite, aos clientes, acessarem os serviços. O acesso
se dá por meio de protocolos de rede, específicos para cada serviço.
Arquitetura Cliente-Servidor (Exemplo GED)

Fonte: elaborado pelo autor.


Arquitetura Cliente-Servidor

Fonte: Imagens Online – Office 2016

• A grande vantagem sobre as demais arquiteturas é permitir


trabalhar em sistemas distribuídos, com a necessidade de serem
distribuídos geograficamente.

Fonte: Imagens Online – Office 2016

• O ponto de atenção está na disponibilidade, pois esse tipo de


arquitetura fica suscetível a ataques de rede, como, por exemplo,
a negação de serviço (DDoS).
Arquitetura de Aplicações

Segundo Sommerville (2011), tais semelhanças permitiram o desenvolvimento de uma


arquitetura que atendesse as necessidades encontradas no dia a dia das empresas, tais
como: RH, faturas, contabilidade, folha de pagamento e etc.

Fonte: Imagens Online – Office 2016


Arquitetura de Aplicações (Exemplo GED)

Fonte: elaborado pelo autor.


Referências

LOBO, Edson J. R. Guia Prático de Engenharia de Software. 1. ed. São Paulo:


Digerati Books, 2009.
SOMMERVILLE, Ian. Engenharia de Software. 9. ed. São Paulo: Pearson, 2011.

Você também pode gostar