Pular para o conteúdo principal

Questão de Engenharia de Software — Diagrama de Objetos — FUNDATEC 2023

Engenharia de SoftwareDiagrama de Objetos
Código
qq896848
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
Quais são as principais vantagens da utilização de injeção de dependências em um projeto de software?
  1. AAumento da coesão e diminuição do acoplamento.
  2. BFacilidade para testes unitários e maior flexibilidade do código fonte.
  3. CPossibilidade de reutilização completa de código e maior segurança de sua execução.
  4. DDiminuição da complexidade e ganho visível de performance.
  5. ENenhuma das anteriores.
Revelar gabarito e comentário

GabaritoB — Facilidade para testes unitários e maior flexibilidade do código fonte.

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

Injeção de Dependências

Gabarito: letra B. A injeção de dependências é uma técnica que promove o baixo acoplamento e a alta coesão, resultando em duas vantagens principais: facilidade para testes unitários (pois permite substituir dependências reais por mocks ou stubs) e maior flexibilidade do código fonte (é possível trocar implementações sem alterar as classes que as utilizam). Esses benefícios são amplamente reconhecidos na engenharia de software moderna.

A injeção de dependências consiste em fornecer os objetos que uma classe necessita (suas dependências) de fora, em vez de a própria classe instanciá-los. Isso reduz o acoplamento entre módulos e aumenta a testabilidade e a manutenibilidade do sistema.

1Conceito
Dependências fornecidas externamente
Cliente não instancia
2Benefícios
Baixo acoplamento
Alta testabilidade (mocks/stubs)
Flexibilidade (troca de implementações)
3Não garante
Reutilização completa
Segurança de execução
Ganho de performance
Injeção de dependências
LEVELsoulevel.com.br
Injeção de dependências: Conceito (Dependências fornecidas externamente, Cliente não instancia); Benefícios (Baixo acoplamento, Alta testabilidade (mocks/stubs), Flexibilidade (troca de implementações)); Não garante (Reutilização completa, Segurança de execução, Ganho de performance)

Alternativa A — ❌ Incorreta

Afirma que a injeção de dependências aumenta a coesão e diminui o acoplamento. Embora a técnica realmente contribua para o baixo acoplamento, ela não é a principal responsável pelo aumento de coesão; a coesão está mais relacionada à responsabilidade interna de um módulo. Além disso, a questão pede as principais vantagens da utilização da técnica, e a alternativa não captura os aspectos mais enfatizados na prática: testabilidade e flexibilidade. Por isso, não é a melhor resposta.

Alternativa B — ✅ Correta ⟵ GABARITO

A injeção de dependências facilita os testes unitários ao permitir que dependências sejam facilmente substituídas por objetos simulados (mocks), isolando a unidade sob teste. Também confere maior flexibilidade, pois é possível alterar implementações (ex.: trocar um banco de dados por outro) sem modificar o código cliente. Essas são as vantagens mais frequentemente citadas pela literatura e pela prática.

Alternativa C — ❌ Incorreta

A injeção de dependências não garante a reutilização completa de código, nem aumenta a segurança de execução. Ela pode até introduzir complexidade adicional (configuração, containers). A segurança é um atributo que depende de outros fatores, como validação e criptografia, não sendo um benefício direto da técnica.

Alternativa D — ❌ Incorreta

A injeção de dependências pode, em alguns casos, até aumentar a complexidade (devido à configuração de contêineres e arquivos de injeção), e não oferece ganho visível de performance — pelo contrário, pode adicionar uma pequena sobrecarga durante a injeção. O foco da técnica não é desempenho, sim manutenibilidade e testabilidade.

Alternativa E — ❌ Incorreta

Como a alternativa B está correta, a opção "Nenhuma das anteriores" é falsa.

PEGA ESSA DICA!

Em questões sobre injeção de dependências, lembre-se sempre de associá-la a testabilidade e flexibilidade. Ela não é uma técnica de otimização de performance ou segurança. Na prova, ao ver uma questão similar, desconfie de alternativas que mencionem ganho de velocidade ou segurança como vantagem principal.

Link permanente: /questoes/qq896848