Thomas Degueule, traquer l'évolution des bibliothèques logicielles

Distinctions Informatique

Thomas Degueule, chargé de recherche CNRS au Laboratoire bordelais de recherche en informatique (LaBRI - CNRS/Bordeaux INP/Université de Bordeaux), étudie l'évolution des bibliothèques logicielles et les défis qu'elle pose aux développeurs qui en dépendent ou les créent. Il est récompensé par la médaille de bronze du CNRS.

Quand un développeur construit un logiciel, il ne part pas de zéro. Il s'appuie sur des bibliothèques – des briques de code déjà écrites, testées, partagées – qui lui fournissent des fonctionnalités prêtes à l'emploi pour gérer des fichiers, accéder au réseau, manipuler des données. Thomas Degueule connaît ces écosystèmes de l'intérieur : il les utilise lui-même tous les jours, et c'est précisément ce qu'il étudie. « Le problème, c'est la coévolution entre les bibliothèques et leurs utilisateurs : comment rester à jour tout en limitant l'impact de ces changements ? ».

À travers cette médaille, je vois surtout la reconnaissance de toute la communauté des sciences du logiciel avec qui je travaille

Car ces bibliothèques changent en permanence — corrections de bugs, failles de sécurité, nouvelles fonctionnalités. Et parfois, ces mises à jour introduisent des changements cassants, des modifications qui forcent tous ceux qui utilisent la bibliothèque à adapter leur propre code. Pour cartographier ces phénomènes, le chercheur et ses collaborateurs ont observé des centaines de milliers de versions de bibliothèques sur quinze ans d'évolution.

De ce travail, ils ont développé Roseau, un logiciel open source qui compare deux versions d'une bibliothèque et identifie les changements cassants introduits. Son atout ? Détecter les changements syntaxiques, ceux qui affectent l'interface visible d'une bibliothèque, comme une fonction renommée ou un paramètre supprimé. Roseau s'adresse aussi bien aux utilisateurs de bibliothèques qu'à ceux qui les maintiennent. Et JUnit, la bibliothèque la plus utilisée de l'écosystème Java à travers le monde, l'a déjà intégré dans son propre processus de développement.

Développer des outils open source permet de les mettre entre les mains des développeurs et d’observer s’ils améliorent vraiment leurs pratiques.

Désormais, Thomas Degueule a les yeux fixés sur un problème plus difficile. D'autres changements cassants, dits comportementaux, qui sont autrement plus insidieux. Rien ne les signale à la compilation et c'est à l'exécution que le logiciel produit des résultats aberrants ou plante. « Il y a des limites théoriques d'indécidabilité :il est impossible de détecter parfaitement ces changements », reconnaît-il. Malgré cela, le défi qu’il s’est fixé est de débusquer un maximum de ces changements comportementaux.

Ses recherches pourraient ainsi répondre à un problème inhérent au monde du développement logiciel. Celui-ci repose sur des chaînes d'approvisionnement complexes, où une anomalie dans une bibliothèque peut se propager à grande échelle. « Détecter les changements comportementaux, c’est aussi se donner les moyens d’identifier plus tôt des bugs ou des vulnérabilités susceptibles de se diffuser rapidement au sein de ces chaînes logicielles », conclut le chercheur.

Contact

Thomas Degueule
Chargé de recherche CNRS au LaBRI