Design a site like this with WordPress.com
Get started

Mejora tu código, código, código (II)

Imagen de la configuración de static checker

Hace dos días vimos una pequeña introducción sobre las herramientas de análisis estático de código.

Hoy vamos a ver un poco lo que ofrece Visual Studio 2010 y .NET 4 junto a la herramienta Static Checker  creada por el equipo de Contratos de código.

Esta herramienta va analizando nuestro código a medida lo escribimos y nos va mostrando aquellos contratos que no se cumplen. Si tenéis Visual Studio 2010 Premium o Últimate  o Team System 2008. Podéis descargarla desde http://bit.ly/fF3wzl.

Tendremos que activarla en cada proyecto en el que queramos usarlo explícitamente:

Imagen de la configuración de static checker
Imagen de la configuración de static checker

Un ejemplo de código en el que esta herramienta nos avisará en tiempo de compilación sera por ejemplo:

var numbers= new int[2];

numbers[3]=0;

Sin embargo,  donde más útil pude ser es con los contratos de código éxplícitos, con sus precondiciones y postcondiciones.

Veamos un pequeño ejemplo, supongamos que tenemos este código en alguno de nuestros métodos:

var idFactura= ObtenerUltimoId();

ProcesaFactura(idFactura);

Así, a simple vista, ninguna herramienta de análisis estático podría hacer nada con este código, a no ser que tuviese algún tipo de información extra. Y aquí es donde entran los contratos. Si usamos contratos y el código de la función ObtenerUltimoId() es así:

public int ObtenerUltimoId()

{

Contract.Ensures(Contract.Result<int>()>0);

….

return n;

}

De esta forma se indica que el método tiene que devolver un valor mayor que cero. Y es una información que el Checker usará para comprobar el código. Y ahora si el método ProcesaFactura() es tal que así:

public void ProcesaFactura(int idFactura)

{

Contract.Requires<ArgumentException>(idFactura>0);

…..

}

Hasta aquí todo bien, sin embargo la herramienta comprueba que un método tiene una condición de Requires y recibe datos de otro método que no dice nada sobre lo que va a devolver:

Ventana  de errores de Static Checker
Ventana de errores de Static Checker

Queda claro que esta tool es más útil cuantos más contratos usemos.

Espero que os sirva.

Juan María Laó Ramos.

Author: Juanma

Bueno, como reza el título de este blog y de las cosas que iré escribiendo ya os hareis una idea de cómo soy.

2 thoughts on “Mejora tu código, código, código (II)”

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 )

Facebook photo

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

Connecting to %s

%d bloggers like this: