Questão de Arquitetura de Software — Arquitetura de Software — FUNDATEC 2023
Arquitetura de Software›Arquitetura 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:
AHerança múltipla.
BInjeção de dependência.
CProgramação por asserções.
DInterface modelo.
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.