Tabela para auxiliar:
Assim, vamos analisar os itens:
a) a complexidade ciclomática de um módulo. Métrica de predição. A complexidade do módulo está relacionada diretamente ao módulo, que é um produto de software.
b) o comprimento médio de identificadores em um programa. Métrica de predição. Mais uma vez, relacionada ao programa, que é um produto de software.
c) o número de atributos e operações associadas com objetos em um projeto. Métrica de predição. É relacionado aos objetos de um projeto, que são produtos de software.
d) o tempo médio requerido para reparar defeitos relatados. Métrica de controle. Note que a ação de "reparar defeitos" é algo inerente ao processo de software, algo que é realizado pelos seres humanos. Portanto, só pode ser métrica de controle!
e) o número de mensagens de erro. Métrica de predição. Erros de um software estão relacionados ao software propriamente dito, que é um produto.
Lembrem-se:
Métrica de controle → processo
Métrica de predição → produtos
Complexidade ciclomática (ou complexidade condicional) é uma métrica de software usada para indicar a complexidade de umprograma de computador. Desenvolvida por Thomas J. McCabe em 1976, ela mede a quantidade de caminhos de execução independentes a partir de um código fonte.
Essa complexidade é computada através do grafo de fluxo de controle do programa: os nós do grafo correspondem a grupos indivisíveis de comandos, e uma aresta direcionada conecta dois nós se o segundo comando pode ser executado imediatamente após o primeiro. A complexidade ciclomática também pode ser aplicada a funções, módulos, métodos ou classes individuais dum programa.
Uma estratégia de teste de software formulada por McCabe é testar cada caminho independente dum programa, de forma que a quantidade de casos de teste será a complexidade ciclomática do programa.[1]