Pular para o conteúdo principal

Questão de Engenharia de Software — Métricas de Software — CESPE / CEBRASPE 2024

Engenharia de SoftwareMétricas de Software
Código
ce174361
Banca
CESPE / CEBRASPE
Órgão
INPI
Ano
2024
Nível
Superior
Cargo
Analista De Planejamento, Gestão E Infraestrutura Em Propriedade Industrial – Área: A9 – Gestão Da Tecnologia Da Informação Com Ênfase Em Desenvolvimento E Manutenção De Sistemas
Julgue o item que se segue, a respeito de qualidade de software.O código correspondente ao grafo a seguir tem complexidade ciclomática igual a 2.Imagem associada para resolução da questão
  1. CCerto
  2. 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”.

Complexidade Ciclomática

Gabarito: Errado (E). A complexidade ciclomática do grafo apresentado é 3, e não 2, pois o grafo possui 3 regiões fechadas (ou, equivalentemente, 3 decisões binárias). A métrica, proposta por Thomas McCabe, mede o número de caminhos linearmente independentes em um grafo de fluxo de controle, sendo um indicador da complexidade de um módulo e da quantidade mínima de testes necessária para percorrer todos os caminhos.

A complexidade ciclomática é uma métrica de software que quantifica a complexidade lógica de um programa. Ela é calculada a partir do grafo de fluxo de controle (GFC), que representa os caminhos possíveis de execução do código. Cada nó do grafo representa uma instrução ou bloco de instruções, e cada aresta representa o fluxo de controle entre eles. A métrica de McCabe é fundamental para a engenharia de software porque fornece uma medida objetiva da testabilidade e manutenibilidade do código: quanto maior a complexidade, maior o número de caminhos a serem testados e, geralmente, maior a dificuldade de manutenção.

Existem três fórmulas principais para calcular a complexidade ciclomática, todas equivalentes:

  1. V(G) = E - N + 2, onde E é o número de arestas e N é o número de nós do grafo.

  2. V(G) = P + 1, onde P é o número de nós de decisão (nós com mais de uma aresta de saída).

  3. V(G) = R, onde R é o número de regiões fechadas (áreas delimitadas por arestas) no grafo.

No grafo da questão, contamos:

  • Nós (N): 6 (A, B, C, D, E, F)

  • Arestas (E): 7 (A→B, B→C, B→D, C→E, D→E, E→F, E→B)

  • Nós de decisão (P): 2 (B e E, cada um com duas arestas de saída)

  • Regiões fechadas (R): 3 (a região interna formada pelo ciclo B→C→E→B, a região interna formada pelo ciclo B→D→E→B, e a região externa)

Aplicando as fórmulas:

  • V(G) = 7 - 6 + 2 = 3

  • V(G) = 2 + 1 = 3

  • V(G) = 3

Portanto, a complexidade ciclomática é 3, e não 2. A afirmação do enunciado está incorreta.

NÃO CAIA NESSA!

A banca explora a confusão entre o número de nós de decisão e o número de regiões fechadas. O candidato pode contar apenas 2 decisões (B e E) e esquecer de somar 1, obtendo 2 em vez de 3. Lembre-se: a fórmula V(G) = P + 1 sempre adiciona 1 ao número de decisões, pois o grafo base (sem decisões) já tem complexidade 1.

PEGA ESSA DICA!

Para calcular a complexidade ciclomática rapidamente, use a fórmula V(G) = R (número de regiões fechadas). No grafo, cada ciclo fechado forma uma região, e a região externa também conta. Conte os ciclos e some 1 (para a região externa). Neste caso, há 2 ciclos internos (B→C→E→B e B→D→E→B) + 1 região externa = 3.

1Fórmulas equivalentes
V(G) = E - N + 2
V(G) = P + 1
V(G) = R (regiões fechadas)
2No grafo da questão
Nós (N) = 6
Arestas (E) = 7
Decisões (P) = 2
Regiões (R) = 3
3Resultado
V(G) = 3
Não é 2
Complexidade ciclomática (McCabe)
LEVELsoulevel.com.br
Complexidade ciclomática (McCabe): Fórmulas equivalentes (V(G) = E - N + 2, V(G) = P + 1, V(G) = R (regiões fechadas)); No grafo da questão (Nós (N) = 6, Arestas (E) = 7, Decisões (P) = 2, Regiões (R) = 3); Resultado (V(G) = 3, Não é 2)

Alternativa C — ❌ Incorreta (gabarito)

A afirmação de que a complexidade ciclomática é igual a 2 está errada. O grafo possui 3 regiões fechadas, o que resulta em V(G) = 3. O erro típico é contar apenas os nós de decisão (B e E) e não adicionar 1, ou contar apenas os ciclos internos sem incluir a região externa. A complexidade ciclomática correta é 3, indicando que são necessários pelo menos 3 casos de teste para percorrer todos os caminhos independentes do código.

Gabarito: Errado (E)

Link permanente: /questoes/ce174361