Questão nº 76
Questão de Tecnologia da Informação · FGV TCE-PA 2024 (nº 76)
FGV2024Auditor de Controle Externo - Informática - Analista de SistemasTecnologia da Informação
Gabarito: Ever comentário ↓
Em relação às métricas de projeto para software orientado a objetos é correto afirmar que
- Aconforme o número de métodos cresce para uma dada classe, seu potencial de reutilização também aumenta.
- Bconforme a extensão da árvore de herança (DIT, do inglês depth of the inheritance tree) cresce, a previsibilidade do comportamento de uma classe aumenta.
- Cconforme o número de filhas (NOC, do inglês number of children) de uma classe aumenta, a quantidade de teste (necessário para exercitar cada classe filha) será reduzido.
- Dconforme o acoplamento entre objetos de uma dada classe (CBO, do inglês coupling between object classes) aumenta, a complexidade de testes por modificações dessa classe diminui.
- Econforme a resposta para uma classe (RFC, do inglês response for a class) aumenta, a complexidade geral de projeto da classe aumenta. (alternativa correta)
Resposta comentada
Gabarito Alternativa E
Métricas de software orientado a objetos são medidas que nos ajudam a entender características do design do nosso código, como complexidade, coesão e acoplamento, para avaliar sua qualidade e prever esforços de manutenção.
- (A) Incorreta: Um número excessivo de métodos em uma classe (alta WMC/NOM) geralmente indica que ela está fazendo muitas coisas (baixa coesão), o que pode dificultar sua compreensão e, consequentemente, reduzir seu potencial de reutilização focada, não aumentá-lo.
- (B) Incorreta: Uma árvore de herança profunda (alta DIT) significa que uma classe herda muitos comportamentos e atributos de seus ancestrais. Isso torna o comportamento da classe menos previsível, pois é preciso analisar toda a cadeia de herança para entender seu funcionamento completo e possíveis sobrescritas.
- (C) Incorreta: O aumento do número de filhas (NOC) de uma classe implica que há mais classes especializadas que herdam dela. Cada classe filha pode ter comportamentos específicos ou sobrescritos que precisam ser testados individualmente, o que aumenta a quantidade de teste necessária, não a reduz.
- (D) Incorreta: O acoplamento entre classes (CBO) mede o número de outras classes com as quais uma classe interage. Um CBO alto significa que a classe é fortemente dependente de muitas outras. Modificações em uma classe com alto CBO têm maior probabilidade de afetar outras classes, aumentando a complexidade de testes e manutenção, e não diminuindo. Armadilha da banca: A armadilha aqui é que a intuição pode levar a pensar que "mais conexões = mais coisas para testar", o que é verdade, mas a alternativa afirma que a complexidade diminui, o que é o oposto do efeito real de alto acoplamento.
- (E) Correta: A resposta para uma classe (RFC) mede o número de métodos que podem ser executados em resposta a uma mensagem enviada a um objeto da classe (incluindo métodos internos e métodos chamados). Um RFC alto indica que a classe tem muitas responsabilidades ou que suas ações podem desencadear uma longa cadeia de chamadas, tornando-a mais difícil de entender, testar e manter, ou seja, aumentando sua complexidade geral de projeto.
Fonte: FGV TCE-PA 2024 Auditor de Controle Externo - Informática - Analista de Sistemas (Caderno Tipo 1). Reproduzida para fins de estudo.