Questão de Arquitetura de Software — MVC (Model-view-controller) — FUNDATEC 2023
Arquitetura de Software›MVC (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?
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.
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.
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.
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.
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.
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.