Medición de la complejidad ciclomática por unidad

Me han pedido que mida un proyecto Java de más de 50 000 líneas por su CC, Complejidad ciclomática , por unidad. En Java, una unidad sería un método.

Todas las herramientas que he encontrado miden el CC general del proyecto. ¿Hay alguna herramienta disponible con el fin de medir el CC por unidad y reportar el CC con las líneas de código utilizadas en ese método?

No es un requisito estricto, pero prefiero usarlo sin un IDE. La plataforma puede ser OSX o NIX.

Puede considerar no medirlo en absoluto. Utilicé ConQAT en mi última empresa que está basada en Java, por lo que potencialmente se ejecuta en Linux, pero creen firmemente que no es una buena métrica y, por lo tanto, no es compatible .

Respuestas (3)

También puede echar un vistazo a OovAide , anteriormente oovcde, que es un IDE de análisis de Java o C++ independiente, gratuito y de código abierto para Windows o Linux.

Ofrece las siguientes características:

  • Mediciones de complejidad, McCabe y las suyas propias , del código fuente para cada método de una clase MÁS
  • Diagramas de clases, secuencias y componentes generados automáticamente
  • Los diagramas muestran más relaciones que UML
  • Análisis de dependencia automatizado del código fuente de C++ (basado en CLang)
  • Navegación rápida entre dibujos y código.
  • Sistema de construcción multitarea
  • Resaltado de sintaxis (basado en CLang)
  • Depuración de GDB
  • Los dibujos se pueden guardar como SVG
  • Cobertura de prueba de código
  • Detección de código duplicado
  • Detección de código muerto
  • Análisis estático del uso de métodos y atributos

ingrese la descripción de la imagen aquí

MetricsReloaded hace exactamente lo que necesito. Es un complemento para IntelliJ IDEA .

Después de reiniciar IntelliJ, puede medir la Complejidad por Unidad en Analyze-> Calculate Metrics. Debajo Metrics profilepuede seleccionar sus propios criterios haciendo clic en los puntos triples además de la selección desplegable.

Complejidad por Unidad en MetricsReloaded

La herramienta independiente de métricas de Java de mi empresa, Semantic Designs, puede hacer esto.

Proporciona una variedad de métricas a nivel de método, incluida la complejidad ciclomática, así como resúmenes acumulativos para cada "contenedor" por encima del método (clase, archivo, paquete, subdirectorio).

Aquí se muestra un informe de texto . Por lo general, produce un informe XML que se puede usar con XSLT para proporcionar cualquier formato que desee; HTML es bastante fácil.

Es nativo de Windows, pero funciona bien con Wine en Linux, incluso como un comando programable.

Dado que esta es mi empresa, no tome esto como una recomendación. Sólo estoy documentando su existencia.