jContractor - Design By Contract

Design By Contract

Présentation

Qu'est ce que le Design By Contract ? Il s'agit d'un concept de programmation, dont le principe est que tout traitement informatique est régi par des règles. Ces règles sont des expressions booléennes qu'on appelle contrats, elles permettent de préciser la responsabilité entre le client et le fournisseur d'un morceau de programmes.

Au premier abord, ce principe s'apparente à un système de tests unitaires. C'est une fausse idée, le principe est de tester si à un instant donné l'exécution du programme est correcte en vérifiant les contrats. Il ne s'agit pas de vérifier tous les contrats mis en place, mais seulement de s'assurer que pour une exécution donnée, l'utilisation d'un morceau de code ainsi que son traitement, régi par un contrat, s'est bien déroulé.

A l'inverse, les tests unitaires permettent d'exécuter une batterie de tests, pour vérifier que tous les cas d'erreurs et différentes exécutions possibles sont bien conformes aux spécifications.
De plus les tests unitaires sont généralement couplés avec un système d'intégration continue et s'exécutent en parallèle, ou à la fin du développement.
Pour la programmation par contrat, la vérification des contrats s'effectue pendant l'exécution du code, en même temps que le programmeur teste son code.

On distingue 3 types de contrats :

Aujourd'hui, Design By Contract a été reconnu comme méthode de développement. Cette technique a prouvé qu'elle améliorait la qualité logicielle, et réduisait le temps de débogage d'un programme.

Historique

Le concept de Design By Contract a été inventé par Bertrand Meyer en 1985. Son objectif : créer un langage informatique qui soit suffisamment verbeux pour être compréhensible par des non informaticiens. Bertrand Meyer invente donc le langage Eiffel, auquel il introduit nativement, le concept de Design By Contract.

En 1999, Murat Karaorman, Urs Hölzle, et John Brunon, proposent jContractor, une implémentation du Design By Contract pour Java. Après que le projet ait dormit pendant quelques années, il est repris par un étudiant de l'université Santa Barbara de Californie, Parker abercrombie.

Grâce à l'efficacité du concept, on trouve aujourd'hui dans la plupart des langages des librairies externes, offrant la possibilité de développer avec Design By Contract.