He estado buscando un rato una herramienta que analizara el código C++ y Java de Osmius. Haberlas haylas pero son privativas y me ha extrañado lo poco que hay en software abierto.
Así es como he llegado a CCCC con el poco afortunado nombre de “C and C++ Code Counter”.

CCCC hace bastante más que contar las líneas de código y los comentarios. Se basa en la tesis de Tim Littlefair que pretende establecer relaciones entre:

  • líneas de código
  • líneas de comentarios
  • cantidad de sentencias de control (if, while, for,..)
  • flujos de llamadas y de información entre los módulos y ficheros
  • y la cantidad de relaciones de herencia entre las clases

y

  • la complejidad del proyecto y su impacto el rendimiento y en la facilidad de desarrollo y mantenimiento.

En su tesis no consigue llegar a conclusiones principalmemente por la falta de datos reales (como suele ocurrir en muchos trabajos académicos), pero maneja conceptos interesantes - un poco por lo menos - como “McCabe’s Cyclomatic Complexity“.

Es verdad que con un solo proyecto sacas algunas pocas conclusiones, pero si cada proyecto publicara el resultado de estos análisis podríamos compararalos entre sí y ver si realmente correlacionan con su uso, el lenguaje utilizado, o la utilización o no de frameworks. Otra utilidad sería comparar un mismo proyecto a lo largo del tiempo.

La salida de CCCC contra los ficheros C++ del proyecto Osmius.

En Java todavía no lo he probado.