Du génie logiciel pour déployer, gérer et reconfigurer les logiciels. (Software engineering to deploy, manage and configure software)

Le genie logiciel est une discipline constituee de nombreux courants mais coherente par l'objectif affiche. Il s'agit d'aider a la production, de maniere efficace et peu couteuse, de logiciels en offrant des cadres mathematiques, des methodes et des outils. Ainsi, on a pu assister a une certaine industrialisation du processus de production de logiciel qui permet aujourd'hui de produire, chaque jour, des quantites astronomiques de logiciel. Ce logiciel produit rapidement et en grande quantite est necessaire pour tous les equipements informatiques qui ont envahi notre quotidien (ordinateur, tablette, telephone, refrigerateur, voiture, ...). Dans ce monde de grande consommation du logiciel, il est cependant surprenant de constater que la gestion des logiciels apres leur production est reste domine par des pratiques manuelles de recherche dans des listes, de telechargement unitaire et d'installation manuelle. C'est dans ce cadre que j'ai developpe une activite de recherche visant a fournir des cadres mathematiques, des methodes et des outils pour deployer, diffuser ou mettre a jour massivement les logiciels depuis 2001 annee de ma soutenance de these. Ces activites de recherche ont ete conduites principalement a Brest au sein du departement informatique de Telecom Bretagne dans le cadre de l'equipe PASS de l'IRISA. Mon Habilitation a Diriger des Recherches est l'occasion de remettre en perspective mes differentes contributions scientifiques, les etudiants formes a la recherche, les projets realises ainsi que mon investissement en tant qu'enseignant. Les contributions scientifiques peuvent etre classees en cinq parties : - des modeles mathematiques et les algorithmes associes pour la gestion des dependances de logiciels lors de leur deploiement ; - les modeles de composants logiciels ; - les processus et outils pour le deploiement de logiciel massif ; - la mise a jour de programmes sans interrompre leur execution ; - des langages pour la conception et la realisation de processus de developpement logiciel. Tous ces travaux qui se nourrissent et se completent permettent d'imaginer la proposition de methodes et outils pour passer a l'echelle dans la gestion du deploiement des logiciels.