Questão de Engenharia de Software — Desenvolvimento de Software — FGV 2024
Engenharia de Software›Desenvolvimento de Software
Código
fg084707
Banca
FGV
Órgão
EPE
Ano
2024
Nível
Superior
Cargo
Analista de Gestão Corporativa - Tecnologia da Informação (Soluções)
No contexto de desenvolvimento de software, code smells são sinais de possíveis problemas típicos no código.Sobre esse conceito, analise as afirmativas a seguir.I. Dividir métodos longos em partes menores pode ser uma solução para o caso de bloaters.II. Usar grupos idênticos de variáveis que se repetem ao longo do código pode melhorar a legibilidade e a consistência do código, sendo considerada uma boa prática.III. Recomenda-se refatorar o código quando um método acessa excessivamente os dados de outra classe, o que indica a presença do code smell conhecido como Feature Envy.Está correto o que se afirma em
AI, apenas.
BI e II, apenas.
CI e III, apenas.
DII e III, apenas.
EI, II e III.
Revelar gabarito e comentário▾
GabaritoC — I e III, apenas.
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”.
Code Smells: Bloaters, Duplicação e Feature Envy
Gabarito: letra C (afirmativas I e III). A questão aborda code smells e boas práticas de refatoração. A afirmativa I descreve corretamente a solução para bloaters (métodos longos); a afirmativa III identifica corretamente o smell Feature Envy. Já a afirmativa II confunde repetição de código com boas práticas – na verdade, duplicação de variáveis é um anti-padrão.
Afirmativa
Conteúdo
Classificação
Justificativa
I
Dividir métodos longos em partes menores pode ser solução para bloaters
✅ Correta
Métodos longos são bloaters; a refatoração Extract Method é a solução padrão.
II
Usar grupos idênticos de variáveis repetidos melhora legibilidade
❌ Incorreta
Isso é duplicação de código (anti-padrão), não boa prática; prejudica manutenção.
III
Refatorar quando um método acessa excessivamente dados de outra classe (Feature Envy)
✅ Correta
Feature Envy é o smell descrito; a refatoração move o método para a classe dona dos dados.
Code smells: Bloaters (Método longo, Solução: Extract Method); Feature Envy (Método acessa dados de outra classe, Solução: mover método); Duplicated Code (Grupos de variáveis repetidos, Prejudica manutenção)
Afirmativa I — ✅ Correta
Métodos longos (long methods) são um tipo de bloater, uma categoria de code smells onde o código cresce excessivamente. A refatoração mais comum é extrair trechos em métodos menores (Extract Method), melhorando legibilidade e manutenção. Portanto, a afirmativa está correta.
Afirmativa II — ❌ Incorreta
Repetir os mesmos grupos de variáveis em vários lugares do código constitui duplicação de código, um code smell conhecido como Duplicated Code. Isso prejudica a manutenção: qualquer alteração precisa ser replicada em todos os pontos. Não é uma boa prática; a boa prática é abstrair esses grupos em uma estrutura única (ex.: classe ou tupla) e reutilizá-la.
NÃO CAIA NESSA!
A banca inverte o sinal – afirma que repetir variáveis melhora legibilidade, quando na verdade piora. Cuidado: duplicação nunca é recomendada.
Afirmativa III — ✅ Correta
Feature Envy é um code smell que ocorre quando um método de uma classe está mais interessado nos dados de outra classe do que nos seus próprios. O sintoma é o excesso de chamadas a getters e setters de outra classe. A refatoração recomendada é mover o método (ou parte dele) para a classe que possui os dados, aumentando a coesão. A afirmativa está perfeitamente alinhada com a definição clássica de Martin Fowler.
Portanto, estão corretas apenas as afirmativas I e III, o que corresponde à letra C.