2009-11-21 20 views
9

Me interesan las herramientas de estadísticas de código. Específicamente, necesito obtener estadísticas sobre el código Java EE, pero cualquier analizador de código lo haría. ¿Debo comenzar a crear uno propio o hay algún proyecto que hayas usado?Obtener estadísticas de código de grandes proyectos

ex. LOC, número de clases, libs ...

¿Cuál es su experiencia?

Respuesta

12

Según lo explicado por la fluctuación, Sonar es definitivamente la herramienta que está buscando. Tenga en cuenta que esta herramienta utiliza JavaNCSS, pero desde la versión 1.9, tienen su propia herramienta interna (llamada SonarSquid) que es totalmente compatible con los proyectos Java 1.5 o 1.6.

alt text http://sonar.codehaus.org/wp-content/uploads/2009/05/sonar-squid.jpg

Además, puede supervisar un conjunto completo de proyectos.

¡Puede acceder al Nemo demo instance para tener una visión completa de la herramienta!

+1

Esta herramienta es excesiva para resolver el problema de OP. Si desea instalar una aplicación web de 3 niveles en su máquina de desarrollo, que se basa en una segunda herramienta para realizar el análisis real, y jugar con al menos dos archivos de configuración, continúe. Si simplemente desea que una herramienta le proporcione los tres criterios OP enumerados (¡y más!) En 60 segundos, consulte la respuesta de Marcelo. – Nilzor

+0

@Nilzor No estoy de acuerdo. Sonar es realmente simple de usar. Solo descarga el zip, inícialo y ejecuta un análisis. Por supuesto, proporciona mucha información, muchas más que las que OP solicitó. En cuanto a las herramientas sugeridas por Marcelo, me temo que son demasiado viejas y es posible que no puedan analizar correctamente el código Java 1.5+ (que ocurre con la herramienta JavaNCSS, que no fue compatible con Java 1.5 durante mucho tiempo) – romaintaz

5

Ya he usado Metrics Eclipse Plugin. Está desactualizado hoy en día, pero tiene una cantidad de métricas interesantes.

También está StateOfFlow. Admite menos métricas, pero parece que no está tan desactualizado.

+0

accidentes StateOfFlow cuando la exportación mi proyecto a un informe métricas. "No hay paquete disponible typeinfo = (mi paquete)". Los problemas que se han informado se ignoran. El proyecto está muerto. –

4

Puede usar JavaNCSS - A Source Measurement Suite for Java que admita algunas métricas básicas (NCSS, # classes/packages/functions, CCN).

Luego está Sonar que soporta unos 20 + métricas de código y Clover (donde incluso se puede definir sus propias métricas con un lenguaje especial)

Si eso no es suficiente para que usted puede google para "java" y "métricas"

+0

+1 para Sonar. Tenga en cuenta que JavaNCSS tiene algunos problemas con los proyectos de Java 1.5+, y es por eso que el equipo de Sonar desarrolló su propia herramienta en reemplazo de JavaNCSS (esta herramienta se llama SonarSquid y se incrusta en Sonar desde la versión 1.9 si estoy en lo cierto). – romaintaz

3

Una herramienta, que reúne estadísticas bastante específicas es Testability Explorer. Opera en código de bytes Java, proporcionando estadísticas de complejidad ciclomática, estado global variable y algunas otras cosas. Es gratis y de código abierto bajo la licencia de Apache 2.0.

Como dije, es un nicho muy específico, y probablemente no proporcione parámetros que sean tan fáciles de relacionar como LOC. Sin embargo, lo interesante es que podría comparar los proyectos en los que lo ejecuta contra several well known open-source projects. Esto quizás haga que los resultados sean más útiles.


Otra herramienta que utilicé recientemente es SLOCCount. Es una herramienta de línea de comandos diseñada para proporcionar estadísticas para muchos idiomas diferentes, incluido Java. Después de no poder ejecutar JavaNCSS en una gran base de código (se quejó de demasiados archivos) obtuve esta herramienta sin problemas, para una base de código muy grande (IntelliJ IDEA). Una buena característica es que requiere muy poca configurabilidad, ni siquiera tuve que pedirle que buscara archivos *.java, reconoció diferentes idiomas automáticamente e informó sobre ellos.

La desventaja de SLOCCount es que si está ejecutando Windows, deberá usar Cygwin para ejecutarlo.

2

para Eclipse podría intentar Emma (cobertura de código) y JDepend (métricas de calidad de diseño)

3

El SD Java Metrics Tool proporciona SLOC, Recuento de comentarios, números de complejidad Halstead y ciclomática, hasta el nivel de método y de todos los paquetes de continuación más grandes que eso (Método, clase, archivos, directorios, ...)

Los análisis SD Java Clone Doctor sistemas de software para la duplicación de código, y proporciona una lista completa de clones detectados, típicamente 10-20% en sistemas de software grandes. Puede ver un informe de detección de clones en el enlace.

El SD Source Code Search Engine indexa su base de código fuente para proporcionar búsquedas rápidas en millones de líneas de código. Como subproducto de la indexación de la base de origen, produce estadísticas a nivel de archivo para SLOC, recuento de comentarios, números de Halstead y Cyclomatic. Opera en Java, C# y muchos otros idiomas.

2

Puede probar también JavaDepend, proporciona más de 82 métricas, y CQL (como SQL) para consultar la base de códigos lo hacen flexible.

Y la vista métrica le da visualmente una buena idea de SLOC, Complejidad y otras métricas ineresting.

Metric View

Cuestiones relacionadas