Questão de Engenharia de Software — Orientação a Objetos — FCC 2018
Engenharia de Software›Orientação a Objetos
Código
fc044579
Banca
FCC
Órgão
DPE-AM
Ano
2018
Cargo
Assistente Técnico de Defensoria - Programador
O paradigma de programação Orientada a Objetos − OO utiliza, como um de seus componentes essenciais, a classe. Uma classe, em conformidade com os melhores padrões da OO,
Adeve ter alta coesão, que implica em ter um conjunto limitado de responsabilidades, e baixo acoplamento, que implica em ter baixa dependência de outros componentes.
Bdeve ser completa, portanto, quanto mais atributos os métodos da classe tiver em comum com outros métodos, mais completa ela se torna.
Cdeve manter o número de colaborações com outras classes, por meio de seus objetos, o mais alto possível para facilitar os testes.
Dque possui muitos métodos contribui para diminuir a complexidade da árvore de herança, aumentando seu potencial de reutilização.
Eque possui métodos é chamada de superclasse e uma classe que não possui métodos é chamada de subclasse.
Revelar gabarito e comentário▾
GabaritoA — deve ter alta coesão, que implica em ter um conjunto limitado de responsabilidades, e baixo acoplamento, que implica em ter baixa dependência de outros componentes.
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”.
Orientação a Objetos: Coesão e Acoplamento
Gabarito: letra A. Em projeto orientado a objetos, uma classe ideal deve ter alta coesão (responsabilidades bem definidas e limitadas) e baixo acoplamento (mínima dependência de outros componentes). Esses são princípios fundamentais de qualidade de projeto, amplamente aceitos na engenharia de software.
A banca testa o conhecimento sobre boas práticas de projeto OO, especialmente os conceitos de coesão e acoplamento. Vamos analisar cada alternativa.
Qualidade de projeto OO
1Alta coesão
Responsabilidades limitadas
Princípio da responsabilidade única
2Baixo acoplamento
Mínima dependência de outros componentes
Facilita manutenção, reuso e testes
LEVEL · soulevel.com.br
Alternativa A — ✅ Correta ⟵ GABARITO
A afirmativa descreve corretamente os conceitos: alta coesão significa que a classe tem um conjunto limitado de responsabilidades (princípio da responsabilidade única), e baixo acoplamento significa que ela depende pouco de outras classes. Isso facilita manutenção, reuso e testes.
Alternativa B — ❌ Incorreta
"Completa" não é um atributo padrão de qualidade em OO. A afirmação de que quanto mais atributos os métodos tiverem em comum com outros métodos, mais completa a classe se torna, é equivocada. Na verdade, isso indicaria baixa coesão (muitas responsabilidades misturadas), o que é indesejável.
Alternativa C — ❌ Incorreta
Defende o maior número possível de colaborações com outras classes para facilitar testes. Na prática, o oposto é verdadeiro: alto acoplamento dificulta testes, pois a classe fica fortemente dependente de outras; o ideal é baixo acoplamento, que permite testar a classe de forma mais isolada.
Alternativa D — ❌ Incorreta
Ter muitos métodos não contribui para diminuir a complexidade da árvore de herança nem aumenta o potencial de reutilização. Pelo contrário, uma classe com muitos métodos tende a ter baixa coesão e pode ser menos reutilizável. A reutilização é favorecida por classes coesas e com responsabilidades bem definidas.
Alternativa E — ❌ Incorreta
Inverte os conceitos de superclasse e subclasse. Superclasse é a classe mais geral na hierarquia, e subclasse é a que herda dela. Ambas podem ter métodos; a subclasse herda métodos da superclasse e pode adicionar ou sobrescrever. Não é correto afirmar que classe com métodos é superclasse e sem métodos é subclasse.
NÃO CAIA NESSA!
A alternativa E explora a confusão entre superclasse e subclasse. Lembre-se: a hierarquia é definida por herança, não pela presença ou ausência de métodos. Toda subclasse herda métodos da superclasse, portanto ambas podem ter métodos.