A equipe de Engenharia de Computação precisa avaliar a comp...

Próximas questões
Com base no mesmo assunto
Q3882832 Engenharia de Software
A equipe de Engenharia de Computação precisa avaliar a complexidade de um módulo de A equipe de Engenharia de Computação precisa avaliar a complexidade de um módulo de software antes de alocar recursos para sua manutenção. Uma métrica deve ser usada para quantificar o número de caminhos logicamente independentes através do código. Assinale a métrica de software que mede a complexidade da lógica de controle de um programa.  antes de alocar recursos para sua manutenção. Uma métrica deve ser usada para quantificar o número de caminhos logicamente independentes através do código.

Assinale a métrica de software que mede a complexidade da lógica de controle de um programa. 
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Gabarito: D

Fundamento decisivo: O ponto decisivo do enunciado é a exigência de uma métrica que quantifique caminhos logicamente independentes no código. Esse critério identifica a Complexidade Ciclomática, e por isso a alternativa correta é a D.

Tema central: Complexidade ciclomática
Análise das alternativas
A
Errada
Pontos de Função medem tamanho funcional. Não quantificam caminhos independentes nem a estrutura de controle.
B
Errada
Cobertura de Testes indica quanto do software foi exercitado. Não é métrica de complexidade da lógica de controle.
C
Errada
Defeitos por KLOC relaciona defeitos ao volume de código. Não mede caminhos independentes.
D
Certa
A Complexidade Ciclomática é a métrica clássica de complexidade do fluxo de controle. Ela expressa o número de caminhos independentes no grafo de fluxo de controle do programa, coincidindo exatamente com os dois critérios pedidos: medir a complexidade da lógica de controle e quantificar caminhos logicamente independentes.
E
Errada
Cobertura de Caminho é critério de teste voltado à execução de caminhos. Não é a métrica que mede a complexidade lógica do código.
Pegadinha da questão
A confusão entre métrica de complexidade do código e critério de cobertura de testes, especialmente pela palavra “caminhos”, que pode induzir à alternativa de cobertura de caminho.
Dica para questões semelhantes
  • Se o enunciado falar em número de caminhos independentes e lógica de controle, procure a métrica de complexidade estrutural do código.
  • Separe métricas de produto de critérios de teste: cobertura indica suficiência de testes, não complexidade interna do programa.
  • Diferencie tamanho funcional de complexidade estrutural: pontos de função medem funcionalidade entregue, não fluxo de controle.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

Essa é uma métrica fundamental na Engenharia de Software, desenvolvida por Thomas J. McCabe em 1976. O objetivo principal dela é justamente o que o enunciado descreve: fornecer uma medida quantitativa da complexidade lógica de um programa, contando o número de caminhos linearmente independentes através do código-fonte.

  • A) Pontos de Função: Mede o tamanho funcional do software (baseado em entradas, saídas, arquivos lógicos, etc.) do ponto de vista do usuário, não a complexidade interna do código.

  • B) Cobertura de Testes: É uma medida de qualidade do processo de teste, indicando quanto do código foi executado pelos testes, não a complexidade do código em si.

  • C) Métrica de defeitos por KLOC: Mede a densidade de defeitos (erros por mil linhas de código), sendo uma métrica de qualidade/confiabilidade.

  • E) Cobertura de Caminho: É um critério de teste que busca garantir que todos os caminhos possíveis foram testados. Embora use a complexidade ciclomática como base para saber quantos caminhos existem, a métrica que define esse número é a Ciclomática.

Fonte: Gemini.

A Complexidade Ciclomática, proposta por Thomas J. McCabe, mede a complexidade da lógica de controle de um programa, quantificando o número de caminhos logicamente independentes que podem ser percorridos durante a execução do código.

Ela é amplamente utilizada para:

  • Avaliar a complexidade de manutenção do software;
  • Estimar o esforço de testes;
  • Identificar módulos com alta probabilidade de defeitos.

A fórmula mais conhecida é:

  • V(G)= E − N + 2P

Onde:

  • E = número de arestas do grafo de fluxo;
  • N = número de nós;
  • P = número de componentes conexos (normalmente 1).

Outra forma prática:

  • Complexidade Ciclomática = número de decisões + 1

Cada estrutura de decisão (if, while, for, case, etc.) aumenta a complexidade.

Gabarito: D

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo