Adaptation non-anticipée de comportement : application au déverminage de programmes en cours d'exécution

par Steven Costiou

Thèse de doctorat en Informatique

Sous la direction de Alain Plantec.

Le président du jury était Isabelle Borne.

Le jury était composé de Alain Plantec, Isabelle Borne, Christophe Dony, Luc Fabresse, Mickaël Kerboeuf, Stéphane Ducasse.

Les rapporteurs étaient Christophe Dony, Luc Fabresse.


  • Résumé

    Certains programmes doivent fonctionner en continu et ne peuvent pas être interrompus en cas de dysfonctionnement. C'est par exemple le cas de drones en mission, de satellites et de certains objets connectés. Pour de telles applications, le défi est d’identifier les problèmes et de les corriger pendant l'exécution du programme. De plus, dans le contexte des systèmes à objets, il peut être nécessaire d’observer et d’instrumenter individuellement le comportement de certains objets particuliers. Dans cette thèse, nous proposons une solution d’adaptation dynamique de comportement permettant de déverminer individuellement les objets d'un programme en cours d'exécution. Cette solution est présentée sous la forme d’un patron applicable aux langages objets à typage dynamique. Ce patron permet d'implanter de façon minimale et générique des capacités additionnelles d’adaptation dynamique à granularité objet. Une mise en oeuvre de ce patron pour un langage de programmation particulier permet d'instrumenter dynamiquement un programme pour collecter des objets spécifiques et d'adapter leur comportement pendant l’exécution. Nous expérimentons notre patron par des mises en oeuvre en Pharo et en Python. Des dévermineurs dédiés à la mise au point de programmes en cours d’exécution sont mis en oeuvre pour ces deux langages objet. Ces outils sont évalués pour des cas de déverminage concrets : pour une simulation de drones, pour des applications connectées déployées sur des systèmes cyber-physiques distants, pour un serveur de discussion en ligne ainsi que sur un défaut en production d’un logiciel de génération de documents.

  • Titre traduit

    Unanticipated behavior adaptation : application to the debugging of running programs


  • Résumé

    Some programs must run continuously and cannot be interrupted in the event of a malfunction.This is, for example, the case of drones, satellites and some internet-of-things applications. For such applications, the challenge is to identify and fix problems while the program is still running. Moreover, in the context of object-oriented Systems, it may be necessary to observe and instrument the behavior of very specifie objects.In this thesis, we propose a method to adapt object behavior in a running program. This solution is presented as a pattern applicable to dynamically typed object-oriented languages. This pattern makes it possible to implement, in a minimal and generic way, additional debugging capabilities at the level of objects. An implementation of this pattern for a particular programming language makes it possible to dynamically instrument a program, by collecting specifie objects and adapting their behavior during run-time. We experiment this pattern in Pharo and Python implementations with dedicated debuggers for each language.These tools are evaluated on typical debugging case studies: a simulation of drones, connected applications deployed on remote cyber-physical Systems, an online discussion server and a debugging session to fix a defect in a production software.


Il est disponible au sein de la bibliothèque de l'établissement de soutenance.

Consulter en bibliothèque

La version de soutenance existe

Où se trouve cette thèse\u00a0?

  • Bibliothèque : Université de Bretagne occidentale (Brest). Service commun de documentation Bibliothèque électronique.
Voir dans le Sudoc, catalogue collectif des bibliothèques de l'enseignement supérieur et de la recherche.