Pular para o conteúdo principal

Questão de Arquitetura de Software — Arquitetura de Software — FUNDATEC 2023

Arquitetura de SoftwareArquitetura de Software
Código
qq890166
Banca
FUNDATEC
Órgão
BRDE
Ano
2023
Nível
Superior
Cargo
Analista de Sistemas - Desenvolvimento de Sistemas
É uma prática de arquitetura de software utilizada para reduzir o nível de acoplamento de código dentro de uma aplicação. Estamos falando da:
  1. AHerança múltipla.
  2. BInjeção de dependência.
  3. CProgramação por asserções.
  4. DInterface modelo.
  5. EPrototipação.
Revelar gabarito e comentário

GabaritoB — Injeção de dependência.

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ência – Redução de Acoplamento

Gabarito: letra B. A injeção de dependência é uma prática de arquitetura de software que reduz o acoplamento entre classes ao delegar a responsabilidade de fornecer as dependências a um container ou framework externo, em vez de a própria classe criá-las. Esse padrão promove maior coesão e facilita testes e manutenção. As demais alternativas não têm esse objetivo: herança múltipla aumenta o acoplamento; programação por asserções foca em validação; interface modelo é um termo genérico; prototipação é um processo de desenvolvimento.

A questão cobra o conhecimento de padrões de projeto que visam o baixo acoplamento, um dos princípios fundamentais da engenharia de software.

Alternativa A — ❌ Incorreta

Herança múltipla permite que uma classe herde comportamento de mais de uma superclasse, o que pode aumentar o acoplamento entre classes e gerar complexidade (como o problema do diamante). Não reduz o acoplamento; ao contrário, cria dependências rígidas.

Alternativa B — ✅ Correta ⟵ GABARITO

A injeção de dependência (Dependency Injection) é um padrão de projeto que remove a responsabilidade de criar objetos de dentro da classe, passando essa tarefa para um injetor. Isso reduz o acoplamento, pois a classe depende apenas de abstrações (interfaces) e não de implementações concretas. É amplamente utilizada em frameworks como Spring e Guice.

Alternativa C — ❌ Incorreta

Programação por asserções (programming by assertions) é uma técnica de verificação de invariantes e condições em tempo de execução (ex.: assert em Java). Não está relacionada com redução de acoplamento, mas sim com correção e robustez do código.

Alternativa D — ❌ Incorreta

“Interface modelo” não é um termo técnico consolidado. Pode se referir a uma interface padrão, mas não é uma prática reconhecida para redução de acoplamento. O uso de interfaces, por si só, ajuda no desacoplamento, mas o termo não nomeia nenhuma prática específica como a injeção de dependência.

Alternativa E — ❌ Incorreta

Prototipação (prototyping) é uma abordagem de desenvolvimento iterativa que cria protótipos para elicitar requisitos. Não é uma prática de arquitetura de software focada em acoplamento.

PEGA ESSA DICA!

Em questões sobre redução de acoplamento, lembre-se dos padrões de projeto que promovem baixo acoplamento, como Injeção de Dependência, Fábrica (Factory) e Estratégia (Strategy). A injeção de dependência é a mais citada em provas.

Gabarito: letra B.

Link permanente: /questoes/qq890166