Pular para o conteúdo principal

Questão de Arquitetura de Software — MVC (Model-view-controller) — FUNDATEC 2023

Arquitetura de SoftwareMVC (Model-view-controller)
Código
qq896852
Banca
FUNDATEC
Órgão
PROCERGS
Ano
2023
Nível
Superior
Cargo
ANC - Analista em Computação - Ênfase em Programação de Sistemas na Tecnologia Microsoft
Qual é o princípio de separação de responsabilidades defendido pelo padrão MVC e como ele beneficia a manutenibilidade do software?
  1. AO princípio de separação de responsabilidades defendido pelo padrão MVC diz que cada camada do modelo deve ser independente e não deve depender de outras camadas, o que facilita a identificação e correção de bugs no software.
  2. BO princípio de separação de responsabilidades defendido pelo padrão MVC diz que cada camada deve ser responsável por uma única tarefa, o que reduz a complexidade do software e aumenta a facilidade de manutenção.
  3. CO princípio de separação de responsabilidades defendido pelo padrão MVC diz que a camada Model deve ser responsável por toda a lógica de negócios, a camada View deve ser responsável pela apresentação dos dados e a camada Controller deve ser responsável pela interação do usuário com o sistema, o que simplifica a arquitetura do software e facilita a manutenção.
  4. DO princípio de separação de responsabilidades defendido pelo padrão MVC diz que cada camada deve ser responsável pela segurança do software em sua respectiva área, o que aumenta a proteção do sistema contra ameaças externas e internas.
  5. EO princípio de separação de responsabilidades defendido pelo padrão MVC diz que a camada View deve ser responsável pela apresentação dos dados, a camada Model deve ser responsável por interagir com o banco de dados e a camada Controller deve ser responsável por transformar os dados para serem apresentados na View, o que aumenta a flexibilidade do software para mudanças na interface e nos dados.
Revelar gabarito e comentário

GabaritoB — O princípio de separação de responsabilidades defendido pelo padrão MVC diz que cada camada deve ser responsável por uma única tarefa, o que reduz a complexidade do software e aumenta a facilidade de manutenção.

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”.

MVC (Model-View-Controller) – Separação de Responsabilidades

Gabarito: letra B. O padrão MVC defende que cada camada (Model, View, Controller) deve ser responsável por uma única tarefa, reduzindo a complexidade e aumentando a facilidade de manutenção. Essa é a essência do princípio de separação de responsabilidades (Separation of Concerns) no MVC: cada componente tem um papel bem definido e não mistura lógicas de apresentação, negócio e controle.

A banca testa o conhecimento sobre o real significado da separação de responsabilidades no MVC. A alternativa correta (B) descreve de forma genérica e acurada o princípio: cada camada tem uma única responsabilidade, o que reduz complexidade e facilita manutenção. As demais alternativas ou descrevem incorretamente as responsabilidades, ou atribuem benefícios inexistentes, ou confundem o princípio.

1Model
Dados
Regras de negócio
2View
Apresentação
3Controller
Intermediação (entrada do usuário)
4Benefícios
Reduz complexidade
Facilita manutenção
Baixo acoplamento
MVC (Separation of Concerns)
LEVELsoulevel.com.br
MVC (Separation of Concerns): Model (Dados, Regras de negócio); View (Apresentação); Controller (Intermediação (entrada do usuário)); Benefícios (Reduz complexidade, Facilita manutenção, Baixo acoplamento)

Alternativa A — ❌ Incorreta

Afirma que “cada camada do modelo deve ser independente e não deve depender de outras camadas”. Isso é um equívoco: as camadas no MVC são interconectadas e dependem umas das outras – o Controller depende do Model e da View, o View depende do Model, etc. O princípio é de separação de responsabilidades, não de independência total. Além disso, a frase “cada camada do modelo” é imprecisa: o MVC tem três camadas (Model, View, Controller).

Alternativa B — ✅ Correta ⟵ GABARITO

Afirma: “cada camada deve ser responsável por uma única tarefa, o que reduz a complexidade do software e aumenta a facilidade de manutenção.” Isso reflete exatamente o princípio de Separação de Preocupações (Separation of Concerns) aplicado pelo MVC. Cada componente tem uma responsabilidade única: Model (dados e regras de negócio), View (apresentação) e Controller (intermediação). Essa divisão reduz o acoplamento e facilita a manutenção, pois alterações em uma camada impactam menos as outras.

Alternativa C — ❌ Incorreta

Apesar de descrever corretamente as responsabilidades das camadas (Model → lógica de negócios, View → apresentação, Controller → interação), ela afirma que isso “simplifica a arquitetura do software e facilita a manutenção”. O enunciado da alternativa está correto em sua definição, mas não responde exatamente à pergunta sobre o princípio de separação de responsabilidades. Ela descreve as funções, mas a pergunta pede o princípio e como ele beneficia a manutenibilidade. A redação é menos direta ao princípio (cada camada uma única tarefa) e mais uma descrição de papéis. No entanto, o gabarito oficial considera B como a mais adequada, pois C, embora factual, não expressa o princípio de forma clara e objetiva. Provavelmente a banca entendeu que C é uma descrição, não o princípio. A alternativa B é mais precisa ao definir o princípio como “cada camada deve ser responsável por uma única tarefa”.

Alternativa D — ❌ Incorreta

Afirma que “cada camada deve ser responsável pela segurança do software em sua respectiva área”. Segurança não é a responsabilidade principal das camadas no MVC. A separação proposta pelo MVC não está focada em segurança, mas em dividir a lógica de apresentação, negócio e controle. Segurança é uma preocupação transversal, não uma responsabilidade de camada.

Alternativa E — ❌ Incorreta

Atribui funções incorretas: diz que a View é responsável pela apresentação (ok), mas que o Model deve “interagir com o banco de dados” e o Controller “transformar os dados para serem apresentados na View”. Embora o Model frequentemente interaja com o banco, sua responsabilidade principal é a lógica de negócio, não apenas a interação com o banco. E o Controller não transforma dados para a View – ele coordena fluxo, mas a transformação pode ocorrer tanto no Model quanto na View. A descrição é imprecisa e não reflete o princípio de separação claro.

SE LIGUE NESSA!

Note que a alternativa C descreve corretamente as funções de cada camada, mas a banca considerou que ela não responde ao comando da questão sobre o princípio de separação de responsabilidades. A alternativa B é mais genérica e captura a essência do padrão: cada camada com uma única responsabilidade. Para a prova, fique atento ao que a pergunta realmente solicita.

Gabarito: letra B

Link permanente: /questoes/qq896852