Questão de Engenharia de Software — Conceitos Gerais de Engenharia de Software — CESPE / CEBRASPE 2025
Engenharia de Software›Conceitos Gerais de Engenharia de Software
Código
ce417742
Banca
CESPE / CEBRASPE
Órgão
PC DF
Ano
2025
Cargo
GAAPC ( )
No que diz respeito a design de software, julgue o item a seguir.
Uma aplicação é excessivamente complexa quando há nela muitas ocorrências do mesmo trecho de código.
CCerto
EErrado
Revelar gabarito e comentário▾
GabaritoC — Certo
Esta resolução diverge do gabarito oficial. A banca deu Certo; a resolução abaixo sustenta o contrário e explica por quê — ela não foi reescrita para concordar. Acontece nos dois sentidos: há gabarito que cai em recurso e há resolução que erra. Confira na fonte antes de fixar o entendimento.
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”.
Design de software: complexidade e duplicação de código
Gabarito: Errado (E). A afirmativa está incorreta porque confunde o conceito de complexidade excessiva com a duplicação de código. Uma aplicação é excessivamente complexa quando há nela muitas ocorrências do mesmo trecho de código — isso é um problema de manutenibilidade e qualidade de código, não de complexidade. A complexidade excessiva está relacionada a fatores como acoplamento elevado, baixa coesão, dependências desnecessárias e dificuldade de compreensão do sistema como um todo.
A duplicação de código é um problema real em engenharia de software, mas não é o que define complexidade excessiva. A complexidade de um sistema está ligada à sua estrutura interna — como os componentes interagem, o nível de acoplamento entre módulos, a coesão das responsabilidades e a dificuldade de entender e modificar o sistema. A duplicação de código, por sua vez, é um problema de manutenção: quando um trecho de código é repetido em vários lugares, uma alteração precisa ser feita em todos os pontos, aumentando o risco de erros e o esforço de manutenção. Mas isso não torna o sistema intrinsecamente complexo — um sistema pode ter código duplicado e ainda assim ser simples de entender, ou pode ser extremamente complexo sem nenhuma duplicação.
Para entender a diferença, considere um exemplo: um sistema com dois módulos que se comunicam de forma acoplada, com dependências circulares e lógica de negócio espalhada por várias camadas é complexo, mesmo que cada trecho de código apareça apenas uma vez. Por outro lado, um sistema com funções repetidas em vários pontos pode ser simples de entender, embora trabalhoso de manter. A complexidade excessiva é uma característica estrutural, enquanto a duplicação é uma característica de implementação.
A banca explora a confusão entre esses dois conceitos. O candidato que associa "muitas ocorrências do mesmo trecho de código" a complexidade está pensando em termos de manutenção, mas a complexidade excessiva é definida por métricas como acoplamento, coesão e dependências. A duplicação é um problema de qualidade, mas não é o que torna um sistema complexo.
NÃO CAIA NESSA!
A banca troca o conceito de complexidade excessiva pelo de duplicação de código. A duplicação é um problema de manutenibilidade, não de complexidade estrutural. Lembre-se: complexidade está ligada a acoplamento, coesão e dependências, não à repetição de trechos de código.
Alternativa C — ❌ Incorreta
A afirmativa está incorreta porque define complexidade excessiva como a presença de muitas ocorrências do mesmo trecho de código. Isso é duplicação de código, um problema de manutenibilidade. A complexidade excessiva é caracterizada por alto acoplamento, baixa coesão e dependências complexas entre módulos, não pela repetição de código.
Alternativa E — ✅ Correta ⟵ GABARITO
A afirmativa está correta ao negar a definição apresentada. A duplicação de código não é o que define complexidade excessiva. A complexidade está relacionada à estrutura interna do sistema, como acoplamento e coesão, enquanto a duplicação é um problema de manutenção. Portanto, a afirmativa está errada, e a alternativa E é o gabarito.