jContractor - Design By Contract

Pour finir

Conclusion

Pour terminer, les concepts illustrés sur ce site, avec la librairie jContractor ne sont pas exclusifs et sont similaires d'une librairie de Design By Contract à une autre.

Il existe donc plusieurs autres libraires pour effectuer une programmation par contrat, tels que JMSAssert, Jass, et bien d'autre encore.


jContractor a l'avantage d'être écrit exclusivement en Java, il n'est pas nécessaire d'avoir une JVM modifié ou un préprocesseur.

La souplesse de l'outil est également appréciable, avec une possibilité d'écrire les contrats à 4 endroits différents, les quantifieurs, ainsi que les différentes options possibles lors de l'exécution, offre un panel assez riche de fonctionnalités.

Un autre avantage est que l'on peut implémenter des contrats sur du code non accessible en héritant de la classe, cela permet d'effectuer une utilisation détournée de la librairie comme du monitoring ou du log.


En revanche, on ne peut gérer les exceptions des méthodes. Les performances sont également un problème, même si ce n'est pas critique puisqu'il s'agit d'une méthode de développement. Rappelons le, plus il y aura de contrats, plus le processus d'instrumentation sera long, et pareil pour l'exécution.

Il est donc fortement déconseillé d'activer les contrats sur un environnement de production, il s'agit bel et bien d'une méthode de développement.

Enfin la documentation est parfois un peu limitée, obligeant à aller jeter un coup d'oeil, dans les sources pour comprendre précisément ce qu'il se passe.

Annexes

Plusieurs PDF assez consistants m'ont aidé à réaliser ce site ainsi que sa présentation.
Vous trouverez sur le site de jContractor la totalité des ressources que j'ai utilisée, ainsi que Wikipedia pour la notion de Design By Contract.