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:
M=E-NÃO+2P{\ displaystyle M = E-N + 2P}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:
- um esforço de compreensão mais sustentado deve ser realizado durante a leitura de um código complexo, a fim de reter e levar em conta cada ramo;
- os testes de unidade devem testar todos os ramos possíveis na função, de modo a seguir cada uma das "estradas"; no entanto, os testes de unidade foram projetados principalmente para testar funções isoladamente por um caso simples;
- da mesma forma, a correção de um bug ou a melhoria de uma função simples será facilitada pela ausência da obrigação de levar em consideração esses ramos e possibilidades.
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
|
- Software comercial
- Para C e C ++
- Para java
- Multi Idiomas
- Para C # (plug-ins do Visual Studio)
|
Notas e referências
Notas
-
Aqui, estruturado significa em particular "com um ponto de entrada e um ponto de saída".
Referências
-
McCabe (1976), p. 314.
-
" Complexidade ciclomática e NPath explicada " , em Coding Swag ,Maio de 2013(acessado em 10 de setembro de 2013 ) .
-
(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 ).
-
(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 ).
-
https://github.com/bbatsov/rubocop
-
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;">