FindBugs

Las herramientas de análisis estático de código permiten encontrar fallos potenciales mediante búsquedas de patrones en el código.

La pionera en esto del análisis estático fue Lint, una herramienta que apareció en 1979 y estaba incluía en el propio compilador. Desde entonces Lint es usado como nombre genérico de este tipo de herramientas.

Puedes ver una lista de herramientas de análisis estático para distintas plataformas en la Wikipedia.

Había utilizado FxCop en el trabajo, y le eché un vistazo a JSLint con OpenLayers. Pero nunca me había parado a buscar una herramienta similar para aplicaciones Java.

Pues bien, recientemente encontré FindBugs. Y por supuesto, la he probado con ArgoUML.
FindBugs Logo

FindBugs es una herramienta opensource desarrollada por la Universidad de Maryland. Desarrollada en Java, tiene una interfaz simple pero efectiva.

Seleccionamos donde están nuestros jar y el código asociado y se pone a analizar el código (puede tardar un ratillo).

Create project

Nos muestra un árbol con los errores clasificados por categorías, mostrando para cada uno el código donde aparece y cómo debería mejorarse.

Analisis de Código

Gracias a esta herramienta se puede incrementar el rendimiento de una aplicación además de eliminar bugs potenciales. En las próximas semanas trabajaré en eliminar estos fallos en ArgoUML.

PD: Esto es posible porque desde ayer tengo permisos de escritura en todo el repositorio🙂

7 Responses

  1. […] es leer código de otros. Se aprende mucho, y es divertido intentar buscar optimizaciones, o bugs. En ArgoUML he estado haciendo esto alguna vez con FindBugs, y leo con calma todos los diffs enviados a la lista de […]

  2. Vengo del post de los bugs y los ojos. xD
    Así que aprovecho para comentarte que el error que aparece en tu captura sobre el uso de “+” para concatenar strings en un bucle, parece que no es tal si hacermos caso a lo que se dice aquí, al menos para java 1.5.😉

  3. @bastian:
    Tendré que comprobarlo por mí mismo, no me creo todo lo que leo.
    Lo que descubra lo escribiré en una entrada nueva.

  4. De todas soy más partidario de usar yo mismo el StringBuilder que confiar en la inteligencia del compilador, pero justo acababa de leerlo, me ha resultado curioso y luego me he encontrado esto.😉

    Aunque pensándolo bien, dependiendo si realmente el compilador hace bien su trabajo, podría él mismo decidir la forma que considerase más rápida/adecuada, sin tener que preocuparnos nosotros y usando el “+”, que es más legible.

    Si haces la prueba, prueba también con unas cuantas concatenaciones seguidas fuera del bucle, please.🙂

  5. […] November 23rd, 2007 by Christian López Espínola Debatíamos Bastian y yo en los comentarios de la entrada sobre FindBugs acerca de la necesidad o no de realizar las concatenaciones de cadenas en Java utilizando las […]

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: