Questão de Engenharia de Software — Métricas de Software — CESPE / CEBRASPE 2024
Engenharia de Software›Mé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.
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”.
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:
V(G) = E - N + 2, onde E é o número de arestas e N é o número de nós do grafo.
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).
V(G) = R, onde R é o número de regiões fechadas (áreas delimitadas por arestas) no grafo.
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.
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.