Em geral, o índice de manutenção depende de muitos fatores. Por exemplo, no Visual Studio, ele conta com complexidade ciclomática, profundidade de herança, acoplamento de classe e linhas de código; esses quatro valores devem ser o mais baixo possível.
Ao mesmo tempo, nunca vi, nem nas ferramentas de métricas de código nem nos livros, a comparação entre apenas a complexidade ciclomática (CC) e as linhas de código (LC).
Faz sentido calcular essa proporção? Que informações são fornecidas sobre o código? Em outras palavras, é melhor diminuir mais o CC do que o LC para ter uma proporção mais baixa?
O que noto é que, para pequenos projetos, a relação CC / LC é baixa (⅓ e menor). Em outras palavras, LC é alto e CC é baixo. Em grandes projetos, o CC / LC é na maioria dos casos maior que ½. Por quê?
fonte
Respostas:
De http://en.wikipedia.org/wiki/Cyclomatic_complexity
A proporção tem aproximadamente a mesma capacidade de previsão usada separadamente.
fonte
Há uma métrica de complexidade ciclomática por declaração de origem - é chamada densidade de complexidade ciclomática . Essa métrica pode ser usada para estimar o tempo e o esforço de manutenção necessários para projetos de software.
fonte
Conforme observado em uma resposta anterior, esta declaração na resposta aceita está claramente incorreta.
Verificou-se que a densidade de CC faz sentido por vários pesquisadores, embora não pareça ter ganho popularidade significativa entre os praticantes. Existem evidências de dois estudiosos conhecidos na área de métricas de software de que a razão (densidade da complexidade ciclomática = CC / KLOC) é um preditor muito melhor da produtividade de manutenção do que apenas o CC ou o KLOC.
GK Gill e CF Kemerer, "Densidade da complexidade ciclomática e produtividade de manutenção de software", em IEEE Transactions on Software Engineering, vol. 17, n. 12, pp. 1284-1288, dez 1991. doi: 10.1109 / 32.106988
Existem muitos outros que foram criados neste trabalho para refinar as métricas baseadas na densidade de CC. Dois exemplos:
T. Andersson, K. Enholm e A. Törn. Medida independente da extensão da complexidade do software. Em M. Ross, CA Brebbia, C. Staples e J. Stapleton (eds.) Segunda Conferência Internacional sobre Software Quality Management, Vol. 1, Managing Quality Systems, 1994.
JP Mittal, Pradeep Bhatia e Harish Mittal. 2009. Avaliação da produtividade de manutenção de software usando lógica difusa. SIGSOFT Softw. Eng. Notas 34, 5 (outubro de 2009), 1-4. DOI = http://dx.doi.org/10.1145/1598732.1598739
fonte
Desculpe, mas não concordo com esta afirmação:
Uma proporção claramente não é a mesma que uma métrica individual. Com base em dados empíricos, Hatton afirma que o CC é proporcional ao XLOC com uma taxa constante de cerca de 0,25 (veja o slide 17) para seu conjunto de dados específico. Portanto, se seu XLOC é 60 ou 400, sua proporção CC: XLOC será de cerca de 0,25 (ignorando desvios estatísticos em números mais altos). Portanto, a proporção não é preditiva.
fonte