Thèse soutenue

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

FR  |  
EN
Auteur / Autrice : Steven Costiou
Direction : Alain Plantec
Type : Thèse de doctorat
Discipline(s) : Informatique
Date : Soutenance le 28/11/2018
Etablissement(s) : Brest
Ecole(s) doctorale(s) : École doctorale Mathématiques et sciences et technologies de l'information et de la communication (Rennes)
Partenaire(s) de recherche : Laboratoire : Laboratoire en sciences et techniques de l'information, de la communication et de la connaissance
Jury : Président / Présidente : Isabelle Borne
Examinateurs / Examinatrices : Alain Plantec, Isabelle Borne, Christophe Dony, Luc Fabresse, Mickaël Kerboeuf, Stéphane Ducasse
Rapporteurs / Rapporteuses : Christophe Dony, Luc Fabresse

Mots clés

FR  |  
EN

Résumé

FR  |  
EN

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.