miércoles, 1 de abril de 2009

FindBugs

Hace poco más de año y medio que empecé a trabajar por cuenta ajena y tuve mi primer contacto con J2EE. Rodeado de personas muy buenas en todo esto, a menudo me surgía la misma duda: ¿se podría hacer mejor?. Desde entonces he aprendido bastantes cosas, y lo cierto es que ya no me hago esa pregunta, pues estoy convencido de que la respuesta es . Así que mi pregunta ha cambiado a ¿qué podría mejorar? o ¿cómo podría mejorarlo?

Hoy he estado probando FindBugs, que creo que me puede ayudar bastante a contestar las preguntas anteriores. Si bien es cierto que no me dirá si uso la arquitectura adecuada, sí que podré revisar lo básico, y ya se sabe que a veces los detalles marcan la diferencia.

Para usarlo, basta con descargarlo desde su web. Una vez lo hayamos descomprimido, podremos ejecutar el fichero findbugs.bat que se encuentra en la carpeta bin. Cuando se haya cargado la aplicación, vamos a Fichero -> Nuevo Proyecto. En la venta que se abre, le damos un nombre al proyecto, y se selecciona la aplicación que se quiere comprobar.


Tras darle a Finish, realizará en análisis y nos mostrará las posibles causas de ineficiencia y problemas de seguridad.


Pinchando en un bug concreto en la parte superior, se mostrará en la inferior una descripción del problema, la clase en la que se encuentra y la línea concreta que lo provoca.

6 comentarios:

  1. Hola Gregorio. parece interesante el programita, te hago un par de preguntas:
    1) se ejecuta contra el ejecutable o contra el proyecto Java. Si es contra el ejecutable, ¿es con un jar o vale con una aplicación web desplegada?

    2) Da información sobre bugs que el tien definidos en una base de datos o olgo así, o también es capaz de encotrar memory leaks y cosas por ese estilo.

    Saludos

    ResponderEliminar
  2. Hola Jesús,

    La versión que he comentado (también hay un plugin para Eclipse) trabaja con el ejecutable. Aunque al cargar los archivos el filtro indica jar, war, zip, sar y ear, lo cierto es que puedes indicarle directamente el directorio de la aplicación si la tienes desplegada.

    Es un analizador estático, por lo que "sólo" buscará ciertos patrones.

    Saludos.

    ResponderEliminar
  3. Hola: podrías ayudarme con lo sgte...muy básico, pero no me funciona....ejecuto el.bat, pero no levanta el programa...debo configurar alguna variable en el archivo Host?. Debo instalarlo en alguna ruta en particular?.

    ResponderEliminar
  4. Hola. En principio no he tenido que hacer nada en los equipos que lo he instalado... Teniendo la JVM instalada, no debe hacer falta nada más. Has probado a ejecutarlo desde la línea de comandos para ver si muestra algún mensaje ¿?

    ResponderEliminar
  5. Gregorio: Si, probé desde la línea de comando y se despliega mismo error...sé que el tema es por una variables de ambiente JAVA_HOME a la cual le doy el valor de la ruta en la que tengo instaado el j2ee, pero nada!!!....
    Agaredezco orientación.
    Saludos.

    ResponderEliminar
  6. Hola, soy nuevo trabajando con findbugs y quiero integrarlo a un sistema multiple de analisis estatico, por lo que necesito saber como puedo desde la linea de comandos, mandarle los parametros de analisis necesarios para realizar el mismo. Por ejemplo: parametros Ejecucion FindBugs(-d "direccion del proyecto a analizar", -t tipo de analisis a relaizar).
    Espero haberme hecho entender, saludos.

    ResponderEliminar