Projet de recherche doctoral numero :3712

Description

Date depot: 1 janvier 1900
Titre: Résoudre semi-automatiquement les problèmes de couplage
Directeur de thèse: Mikal ZIANE (LIP6)
Encadrant : Cédric BESSE (LIP6)
Domaine scientifique: Sciences et technologies de l'information et de la communication
Thématique CNRS : Non defini

Resumé: Parmi les enjeux majeurs du développement logiciel, la prise en compte des changements est un des plus saillants : les logiciels sont trop rigides. En effet, un changement a priori local à un élément logiciel A peut se propager à tous les éléments logiciels qui dépendent de A et ainsi de suite en cascade. Le coût de ces changements peut alors devenir exorbitant. De nombreux patrons de conception [Gamma et al. 94] et plusieurs techniques de refactoring [Fowler et al 99] visent à découpler (isoler) les parties du logiciel qui doivent varier à des rythmes différents. Mais quand et comment appliquer ces patrons et ces transformations de refactoring et surtout est-il possible de le faire automatiquement ? En effet, l’application d’un patron et plus généralement de toute transformation de refactoring ne vise pas, par définition, à ajouter une fonctionnalité à un logiciel mais à en améliorer la qualité. Mais ceci doit être motivé par un objectif de qualité précis car découpler induit typiquement une ou plusieurs indirections qui augmentent la complexité du logiciel remanié. Or l’intention des patrons de conception est décrite de façon très informelle ce qui empêche tout traitement automatique. Heureusement, il est possible de définir rigoureusement une contrainte de couplage et en particulier une partie significative de l’intention d’un grand nombre de patrons de conception [Ziane 00][Ziane et al 03][Ammour et al. 05]. Les violations des contraintes dans un programme ciblent précisément les éléments logiciels sur lesquels appliquer les transformations de refactoring. Il s’agit alors de définir rigoureusement (de façon à pouvoir raisonner dessus) les transformations de refactoring susceptibles de résoudre les violations de contraintes de couplage. Il s'agit aussi définir une stratégie de contrôle de ces transformations pour automatiser autant que possible cette résolution.

Doctorant.e: Girault Loic