Monografías Plus      Agregar a favoritos      Ayuda      Português      Ingles     

Determinación de errores con FindBugs




Arrancamos el producto

Identificación del error

Corrección

Conclusiones

A la hora de desarrollar aplicaciones Java es interesante disponer de un conjunto de herramientas para ayudarnos a no cometer equivocaciones básicas.

He probado la herramienta FindBugs y me he quedado impresionado por su sencillez y aparente potencia.

Vamos a ver, sobre uno de los códigos de uno de nuestros recientes tutoriales, cómo nos puede ayudar a anticipar errores.

Descarga

Podemos ir al Web del producto y conseguir el zip con los binarios http://findbugs.sourceforge.net/

Arrancamos el producto

Una vez descomprimido, solo tenemos que arrancar el fichero por lotes (en entorno Windows)

Configuramos el proyecto

Pulsado el botón, encontramos el resumen y lo dice todo:

Vemos la porción de código que se ve afectada

Identificación del error

La descripción del error es bastante buena, incluida la proposición del arreglo. Básicamente nos esta comentando que tenemos un bloque de código que, en caso de producirse una excepción dejaría un Stream abierto y nos propone que incluyamos un bloque finally, para evitarlo.

Vemos el detalle del código afectado:

// esta función recupera el texto de la página

String recuperaContenido(HttpURLConnection enlace)

{

try

{

String respuesta = "";

BufferedReader in = new BufferedReader (new InputStreamReader(enlace.getInputStream()));

String cadena = "";

while (cadena != null)

{

cadena = in.readLine();

if (cadena != null)

{

respuesta+=("\n" + cadena);

}

}

return respuesta;

}

catch(Exception e)

{

return "Error " + e.getMessage() + "\n";

}

}

Corrección

Podemos codificar el cambio propuesto y comprobar que se soluciona el problema...

// esta función recupera el texto de la página

String recuperaContenido(HttpURLConnection enlace)

{

BufferedReader in = null;

try

{

String respuesta = "";

in = new BufferedReader (new InputStreamReader(enlace.getInputStream()));

String cadena = "";

while (cadena != null)

{

cadena = in.readLine();

if (cadena != null)

{

respuesta+=("\n" + cadena);

}

}

return respuesta;

}

catch(Exception e)

{

return "Error " + e.getMessage() + "\n";

}

finally

{

if(in != null)

{

try { in.close(); } catch (Exception ignorada) {}

}

}

}

Conclusiones

Los jefes de proyecto tenemos habitualmente un problema crítico y consiste en que las posibles variables que nos pueden dar juego, las tenemos ya definidas:

  • Duración: Ya se ha negociado la fecha limite
  • Alcance: Se han negociado los requisitos
  • Coste: El presupuesto esta acotado
  • Calidad: La calidad la define la metodología (en el mejor de los casos)

Entonces, bajo esta coyuntura, solo podemos jugar con la productividad:

  • Sistematización: Disponer de plantillas y procedimientos que nos guíen en los procesos (valoración rápida, análisis, diseño, construcción, etc.)
  • Reutilización: No reinventar la rueda y reaprovechar lo ya construido.
  • Automatización: Capacidad de evitar labores mecánicas (pruebas, documentación, compilación, empaquetamiento, etc.)
  • Anticipación de errores: Utilización de herramientas que nos ayuden a analizar nuestro código sin ejecutar las pruebas

Esta herramienta, FindBugs, puede ayudarnos parcialmente a mejorar nuestro trabajo aunque debemos combinarla con otras y buenas prácticas y plantillas.

El día a día probablemente nos impida elevarnos al problema y optimizar nuestra productividad. Es posible que necesitemos gente no contaminada de nuestra realidad para ayudarnos a mejorar..... Para eso es posible que me podáis contratar ....

Roberto Canales Mora

www.adictosaltrabajo.com


Comentarios


Trabajos relacionados

Ver mas trabajos de Programacion

 
 

Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.


Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.