diumenge, 6 de febrer del 2011

#java #oop #softwareengineering Contracts for Java

Quan treballava a G&D utilitzàvem el disseny per contracte per dissenyar la jerarquia de classes de les aplicacions. És una forma de definir què fa cada component del programari i de què es responsabilitza. Això, complementat amb una bona recollida i especificació de requeriments i una bona anàlisi ajuda a desenvolupar amb èxit els projectes, sobretot en sectors on els errors poden comporatar conseqüències importants.

Aleshores en Java es podia especificar, fins cert punt el contracte de les classes i dels mètodes però, tot i això, no existia o coneixia cap eina lliure que permetés definir i verificar que el contracte es complia, de forma que allò que especificaves al codi només servia de forma parcial per detectar errors però, calia canviar les responsabilitats de lloc si es volien detectar trencaments de contracte amb seguretat.

El disseny per contracte és una tècnica definida per Bertrand Meyer, creador del llenguatge de programació Eiffel. La podeu trobar explicada al seu llibre Object-Oriented  Software Construction, un llibre que és interessant en general quant a llibre de referència de la programació orientada a objecte i l'enginyeria del programari.

Doncs bé, fent referència al títol de l'apunt, Google ha publicat avui l'alliberament d'una eina, d'un marc de desenvolupament -framework- per a Java, el qual permet especificar el contracte (precondicions, postcondicions, invariants) del programari i comprovar el seu compliment en temps d'execució. L'eina es diu Contracts for Java i és un projecte dins de Google Code.

Creative Commons License + GNU FDL