En general, el índice de mantenibilidad se basa en muchos factores. Por ejemplo, en Visual Studio, se basa en la complejidad ciclomática, la profundidad de la herencia, el acoplamiento de clases y las líneas de código; esos cuatro valores deben ser lo más bajos posible.
Al mismo tiempo, nunca he visto, ni en las herramientas de métricas de código ni en los libros, la comparación entre solo la complejidad ciclomática (CC) y las líneas de código (LC).
¿Tiene sentido calcular tal proporción? ¿Qué información da sobre el código? En otras palabras, ¿es mejor disminuir más el CC que el LC para tener una relación más baja?
Lo que noto es que para proyectos pequeños, la relación CC / LC es baja (⅓ y menor). En otras palabras, LC es alto y CC es bajo. En proyectos grandes, CC / LC es en la mayoría de los casos mayor de ½. ¿Por qué?
fuente
Respuestas:
De http://en.wikipedia.org/wiki/Cyclomatic_complexity
La relación tiene aproximadamente la misma capacidad de predicción que cualquiera de las dos utilizadas por separado.
fuente
Hay una métrica de complejidad ciclomática por enunciados fuente: se llama densidad de complejidad ciclomática . Esta métrica se puede utilizar para estimar el tiempo de mantenimiento y el esfuerzo necesarios para proyectos de software.
fuente
Como se señaló en una respuesta anterior, esta afirmación en la respuesta aceptada es claramente incorrecta.
Varios investigadores han encontrado que la densidad CC tiene sentido, aunque no parece haber ganado una popularidad significativa entre los profesionales. Hay evidencia de dos académicos conocidos en el área de métricas de software de que la relación (densidad de complejidad ciclomática = CC / KLOC) es un predictor mucho mejor de productividad de mantenimiento que el CC o KLOC solo.
GK Gill y CF Kemerer, "Densidad de complejidad ciclomática y productividad de mantenimiento de software", en IEEE Transactions on Software Engineering, vol. 17, no. 12, págs. 1284-1288, diciembre de 1991. doi: 10.1109 / 32.106988
Hay muchos otros que se han basado en este trabajo para refinar las métricas basadas en la densidad CC. Dos ejemplos:
T. Andersson, K. Enholm y A. Törn. Medida independiente de la longitud de la complejidad del software. En M. Ross, CA Brebbia, C. Staples y J. Stapleton (eds.) Segunda Conferencia Internacional sobre Gestión de Calidad de Software, Vol. 1, Gestión de Sistemas de Calidad, 1994.
JP Mittal, Pradeep Bhatia y Harish Mittal. 2009. Evaluación de la productividad del mantenimiento del software utilizando lógica difusa. SIGSOFT Softw. Ing. Notas 34, 5 (octubre de 2009), 1-4. DOI = http://dx.doi.org/10.1145/1598732.1598739
fuente
Lo siento pero no estoy de acuerdo con esta declaración:
Una relación claramente no es lo mismo que una métrica individual. Basado en datos empíricos, Hatton afirma que CC es proporcional a XLOC con una relación constante de aproximadamente 0.25 (ver diapositiva 17) para su conjunto de datos específico. Por lo tanto, ya sea que su XLOC sea 60 o 400, su relación CC: XLOC será de aproximadamente 0.25 (ignorando las desviaciones estadísticas en números más altos). Por lo tanto, la relación no es predictiva en absoluto.
fuente