Pular para o conteúdo principal

Questão de Engenharia de Software — Refatoração — FGV 2025

Engenharia de SoftwareRefatoração
Código
fg105414
Banca
FGV
Órgão
AL-AM
Ano
2025
Nível
Superior
Cargo
Analista Legislativo - Programador
Ao realizar uma revisão de código no sistema de protocolo, o Analista de Programação identificou vários trechos de código que repetem a lógica de validação de CPF/CNPJ em diferentes classes. Ele sugere a refatoração para colocar essa lógica em uma classe utilitária única.Assinale qual princípio de desenvolvimento e reuso que a refatoração proposta visa satisfazer.
  1. AKISS.
  2. BDRY
  3. CYAGNI.
  4. DOCP.
  5. EDIP.
Revelar gabarito e comentário

GabaritoB — DRY

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

Princípios de desenvolvimento e reuso

Gabarito: letra B. O princípio DRY (Don't Repeat Yourself) afirma que cada regra, conhecimento ou lógica deve ter uma representação única, não redundante no sistema. A refatoração que centraliza a validação de CPF/CNPJ em uma única classe utilitária elimina a duplicação de código, satisfazendo exatamente o DRY.

A banca testa o conhecimento dos princípios clássicos de desenvolvimento de software. Identificar qual deles está diretamente associado à eliminação de duplicação é a chave.

1DRY (Don't Repeat Yourself)
Cada conhecimento: representação única
Elimina duplicação de código
Gabarito
2KISS (Keep It Simple, Stupid)
Simplicidade do código
Evitar complexidade desnecessária
3YAGNI (You Ain't Gonna Need It)
Não implementar o que não é necessário
4OCP (Open/Closed Principle)
Aberto para extensão
Fechado para modificação
5DIP (Dependency Inversion Principle)
Alto nível não depende de baixo nível
Ambos dependem de abstrações
Princípios de desenvolvimento
LEVELsoulevel.com.br
Princípios de desenvolvimento: DRY (Don't Repeat Yourself) (Cada conhecimento: representação única, Elimina duplicação de código, Gabarito); KISS (Keep It Simple, Stupid) (Simplicidade do código, Evitar complexidade desnecessária); YAGNI (You Ain't Gonna Need It) (Não implementar o que não é necessário); OCP (Open/Closed Principle) (Aberto para extensão, Fechado para modificação); DIP (Dependency Inversion Principle) (Alto nível não depende de baixo nível, Ambos dependem de abstrações)

Alternativa A — ❌ Incorreta

O princípio KISS (Keep It Simple, Stupid) preza pela simplicidade do código, evitando complexidade desnecessária. Embora a refatoração possa tornar o código mais simples indiretamente, o foco principal não é simplicidade, e sim eliminar repetição.

Alternativa B — ✅ Correta ⟵ GABARITO

O princípio DRY (Don't Repeat Yourself) estabelece que cada parte do conhecimento deve ter uma única representação em um sistema. Ao colocar a validação de CPF/CNPJ em uma classe utilitária única, evita-se a repetição da mesma lógica em várias classes, atendendo diretamente ao DRY.

Alternativa C — ❌ Incorreta

O princípio YAGNI (You Ain't Gonna Need It) alerta para não implementar funcionalidades que não são necessárias no momento. A refatoração não adiciona nova funcionalidade, mas reorganiza o código existente, portanto não se aplica.

Alternativa D — ❌ Incorreta

O princípio OCP (Open/Closed Principle) diz que as classes devem estar abertas para extensão, mas fechadas para modificação. Centralizar a validação em uma classe utilitária não está diretamente relacionado à extensão ou modificação de classes.

Alternativa E — ❌ Incorreta

O princípio DIP (Dependency Inversion Principle) prega que módulos de alto nível não devem depender de módulos de baixo nível; ambos devem depender de abstrações. A refatoração proposta não envolve inversão de dependências, apenas extração de lógica repetida.

PEGA ESSA DICA!

Para identificar o princípio correto, lembre-se da palavra-chave "duplicação". DRY = Don't Repeat Yourself. Quando a refatoração visa eliminar código duplicado, o princípio alvo é sempre o DRY.

Link permanente: /questoes/fg105414