Pular para o conteúdo principal

Questão de Arquitetura de Software — Padrões de projeto (Design Patterns) — INSTITUTO AOCP 2024

Arquitetura de SoftwarePadrões de projeto (Design Patterns)
Código
qg263142
Banca
INSTITUTO AOCP
Órgão
UFS
Ano
2024
Nível
Superior
Cargo
Analista de Tecnologia da Informação - Classe E
Qual dos seguintes padrões arquiteturais é mais apropriado para o desenvolvimento de uma aplicação web que requer uma separação clara entre a lógica de negócio, a interface do usuário e o controle de fluxo de dados?
  1. APadrão descentralizado.
  2. BPadrão pipeline.
  3. CModelo cliente-servidor.
  4. DMVC (Model-View-Controller).
  5. EPadrão Peer-to-Peer.
Revelar gabarito e comentário

GabaritoD — MVC (Model-View-Controller).

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Padrões Arquiteturais para Aplicações Web

Gabarito: letra D. O padrão MVC (Model-View-Controller) é o mais apropriado porque separa explicitamente a lógica de negócio (Model), a interface do usuário (View) e o controle de fluxo de dados (Controller), atendendo exatamente ao requisito de separação clara entre esses componentes. Nenhum dos outros padrões oferece essa separação tríplice de forma estruturada.

A banca testa o conhecimento dos padrões arquiteturais clássicos e sua aplicação no contexto de aplicações web. O MVC é um padrão consolidado para esse fim, enquanto as demais alternativas se referem a estilos de arquitetura com outros propósitos.

Padrão Arquitetural

Separação Lógica de Negócio

Separação Interface do Usuário

Separação Controle de Fluxo

Adequação ao Requisito

MVC (Model-View-Controller)

Sim (Model)

Sim (View)

Sim (Controller)

✅ Total

Descentralizado

Não define

Não define

Não define

❌ Nenhuma

Pipeline

Não

Não

Parcial (sequencial)

❌ Baixa

Cliente-Servidor

Não especifica

Não especifica

Não especifica

❌ Parcial

Peer-to-Peer

Não

Não

Não

❌ Nenhuma

Alternativa A — ❌ Incorreta

O padrão descentralizado não é um padrão arquitetural específico; refere-se a sistemas onde não há um ponto central de controle. Ele não define uma separação entre lógica de negócio, interface e fluxo — é mais um conceito de distribuição de responsabilidades, não uma estrutura com camadas diferenciadas.

Alternativa B — ❌ Incorreta

O padrão pipeline (ou duto e filtro) organiza o processamento em etapas sequenciais (filtros) conectadas por dutos. Embora possa ser usado em certos contextos, não foi projetado para separar interface do usuário, lógica de negócio e controle de fluxo em uma aplicação web típica. É mais adequado para sistemas de transformação de dados, como compiladores ou processamento de streams.

Alternativa C — ❌ Incorreta

O modelo cliente-servidor é uma arquitetura de comunicação entre um cliente (que solicita serviços) e um servidor (que os fornece). Embora seja a base de aplicações web, ele não especifica como organizar a lógica interna da aplicação. Por si só, não garante a separação entre lógica de negócio, interface e fluxo — o servidor poderia misturar tudo em um único bloco.

Alternativa D — ✅ Correta ⟵ GABARITO

O padrão MVC (Model-View-Controller) é explicitamente projetado para separar três responsabilidades:

  • Model: gerencia os dados e a lógica de negócio.

  • View: exibe a interface do usuário.

  • Controller: processa as entradas do usuário, controla o fluxo e atualiza o Model e a View.

Essa separação facilita a manutenção, a testabilidade e o desenvolvimento em equipe, sendo o padrão mais indicado para aplicações web que exigem essa estruturação.

Alternativa E — ❌ Incorreta

O padrão Peer-to-Peer (P2P) arquitetura onde cada par (peer) atua como cliente e servidor simultaneamente, compartilhando recursos sem um coordenador central. É usado em redes de compartilhamento de arquivos, blockchain, etc. Não oferece nenhuma separação interna entre lógica de negócio, interface e fluxo — o foco é a comunicação descentralizada entre nós.

Conclusão: A única alternativa que atende ao requisito de separar lógica de negócio (Model), interface do usuário (View) e controle de fluxo (Controller) é o MVC, portanto gabarito letra D.

Link permanente: /questoes/qg263142