Le estoy echando un vistazo a los
Analizadores estáticos de código que existen para java, La definición de un AEC podría ser la siguiente: Es una herramienta software que realiza Análisis estático de Código, es decir examina el código fuente de una aplicación, en contraposición al análisis dinámico que lo que hace es examinar el resultado de este código en ejecución, la intención de este tipo de herramientas es encontrar posibles errores o incorrecciones, antipatrones o malas practicas de programación de una forma automática, suelen ofrecer informes con métricas del tipo complejidad ciclomática, longitud de línea, el número de líneas sin comentarios, el tamaño de métodos, clases, etc.
Para tener una idea del estado de madurez y del empleo de estas herramientas en el mundo real y antes de decidirme a probar una en profundidad he decidido realizar el típico estudio utilizando las herramientas de google
para comparar el impacto que tiene cada una de las distintas alternativas en la red, en este caso he usado la nueva herramienta de google
, google insights compañera de
google trends, utilizando la lista de que propone la
wikipedia para java y oponsource:
- Bandera
- Checkstyle
- Classycle
- FindBugs
- Jlint
- PMD
- SCL
- Soot
- Hammurapi
- UCDetector
Y añadiendo a cada término de búsqueda
“java” para delimitar el contexto he realizado las siguientes comparaciones:
1 -
cinco primerosEs necesario dividir las búsquedas en grupos de cinco ya que google
insights no permite introducir más términos de una sola vez.
2 -
cinco siguientesSi nos quedamos con los que más movimiento tienen ( menos en el caso de jlint
y bandera que he decidido quedarme con jlint
ya que bandera
es un término muy común y seguro que se cuelan más resultados indeseados):
3 -
cinco más exitososComo podéis ver históricamente
Checkstyle se sitúa en cabeza pero a día de hoy está por delante
PMD (aunque es un poco sospechoso ya que si buscamos en google sólo por
PMD obtenemos casi 6 millones de ocurrencias, eso si el proyecto en
sourceforge es la primera) y seguido muy de cerca por
FindBugs.
También se puede apreciar que estas herramientas están tenido mucho más éxito en países como la India o Japón que en los países hispanohablantes de los cuales no aparece ninguno en las 10 primeras posiciones, aunque me imagino que esto será debido al volumen de software desarrollado en cada zona.
Cuando saque un rato me gustaría echarle un vistazo a estas tres, ver si se pueden integrar en alguna de las IDEs más populares, evaluar usabilidad, rapidez, calidad de los informes, etc.
¿Tenéis experiencia en el uso de alguna de estas herramientas?, ¿Cuál de ellas o que combinación de ellas usáis?
Otros artículos relacionados:
javaHispano Persiguiendo la calidad del código javaHispano PMD v4 publicadojavaHispano Checkstyle 4.2 publicadoTambién existen
voces críticas en lo que a este tipo de herramientas se refiere.
|
|
|
|