Questão nº 79
Questão de TI - Soluções · FGV EPE 2024 (nº 79)
As métricas de qualidade de software são medidas quantitativas que auxiliam na análise e medição de diversos aspectos.
Nesse contexto, considere a seguinte função:
função processarDados(entrada) {
resultado = 0
i = 1
se entrada > 0 {
resultado = resultado + 1
} senão se entrada < 0 {
resultado = resultado - 1
} senão {
resultado = resultado
}
enquanto i < 4 {
se i == entrada {
resultado = resultado * 2
}
i = i + 1
}
retornar resultado
}
A complexidade ciclomática da função acima vale
- A3.
- B4.
- C5. (alternativa correta)
- D6.
- E7.
Resposta comentada
Gabarito Alternativa C
A complexidade ciclomática é uma métrica que mede a quantidade de caminhos independentes que o fluxo de execução de um programa pode seguir, indicando o quão complexo ele é. Quanto maior o valor, mais complexo e potencialmente mais difícil de testar e manter o código. A forma mais comum de calculá-la é somando 1 ao número de pontos de decisão (como if, else if, while, for, case, and, or).
Vamos analisar a função processarDados:
- Ponto de entrada da função: Contribui com 1 para a complexidade base.
se entrada > 0: Este é o primeiro ponto de decisão. (+1)senão se entrada < 0: Este é o segundo ponto de decisão. Embora faça parte da mesma estruturase-senão se-senão, cadaseousenão seintroduz uma nova condição que cria um caminho independente. (+1)enquanto i < 4: Este é o terceiro ponto de decisão (um laço de repetição). (+1)se i == entrada: Este é o quarto ponto de decisão (dentro do laço). (+1)
Somando todos os pontos: 1 (base) + 1 (se) + 1 (senão se) + 1 (enquanto) + 1 (se interno) = 5.
A) Incorreta: O valor 3 é muito baixo, não considerando todos os pontos de decisão ou a complexidade base da função.
B) Incorreta: O valor 4 é um distrator comum. Ele pode ser obtido se o aluno contar apenas os pontos de decisão (if, else if, while, if interno) e esquecer de adicionar a complexidade base de 1 (que representa o caminho único de entrada/saída da função). Armadilha da banca: Muitos esquecem de adicionar o '1' inicial que representa o fluxo sequencial da função sem desvios.
C) Correta: A complexidade ciclomática é 5, conforme a contagem de 1 (base) + 4 pontos de decisão explícitos na função.
D) Incorreta: O valor 6 é muito alto, possivelmente por contar o senão final como um ponto de decisão adicional, o que não é correto para a complexidade ciclomática.
E) Incorreta: O valor 7 é muito alto, indicando uma contagem incorreta de múltiplos pontos de decisão ou a inclusão de elementos que não aumentam a complexidade ciclomática.
Fonte: FGV EPE 2024 Analista de Gestão Corporativa - TI - Soluções (Caderno Tipo 1). Reproduzida para fins de estudo.