Número ciclomático

O número ciclomático , a complexidade ou extensão ciclomática McCabe é uma ferramenta de software de metrologia desenvolvida por Thomas McCabe em 1976 para medir a complexidade de um programa de computador . Essa medida reflete o número de decisões de um algoritmo contando o número de "caminhos" linearmente independentes por meio de um programa representado na forma de um gráfico .

Definição

A complexidade ciclomática de um programa estruturado é definida por:

ou :

M = complexidade ciclomática; E = o número de arestas do gráfico; N = o número de nós do grafo; P = o número de componentes conectados do gráfico.

Interesse

Um código simples, com um número ciclomático baixo, é teoricamente mais fácil de ler, testar e manter:

Crítico

No entanto, o número ciclomático não é unânime. Então, deMarço de 1988, um estudo mostra que o número ciclomático não tem base teórica sólida e não é adequado para o desenvolvimento de software e destaca que nenhuma observação empírica justifica a utilidade desta medida.

Existem outras possibilidades para completar o número ciclomático, como a complexidade NPATH (em inglês, complexidade NPATH ), medindo o número total de oportunidades de tomar emprestado o conjunto de caminhos onde o número ciclomático se contenta em adicionar esses caminhos.

Ferramentas de medição de complexidade

Notas e referências

Notas
  1. Aqui, estruturado significa em particular "com um ponto de entrada e um ponto de saída".
Referências
  1. McCabe (1976), p. 314.
  2. "  Complexidade ciclomática e NPath explicada  " , em Coding Swag ,Maio de 2013(acessado em 10 de setembro de 2013 ) .
  3. (em) Sr. Shepperd , "  Review A cyclomatic complex of software-as-a metric  " , Software Engineering Journal , EIT flight.  3, n o  21 ° de janeiro de 88, p.  30-36 ( ISSN  0268-6961 , resumo , ler online ).
  4. (em) Brian A. Nejmeh , "  NPATH uma medida da complexidade do caminho de execução e seus aplicativos  " , Communications of the ACM , the Association for Computing Machinery, vol.  31, n o  21 r fevereiro 1988, p.  188-200 ( ISSN  0001-0782 , DOI  10.1145 / 42372.42379 , resumo , ler online ).
  5. https://github.com/bbatsov/rubocop
  6. https://github.com/fzipp/gocyclo

Ferramentas que calculam a complexidade ciclomática

links externos

<img src="https://fr.wikipedia.org/wiki/Special:CentralAutoLogin/start?type=1x1" alt="" title="" width="1" height="1" style="border: none; position: absolute;">