Analyse de changements multiples : une approche probabiliste utilisant les réseaux bayésiens

La maintenance du logiciel est une phase très importante du cycle de vie de celui-ci. Après les phases de développement et de déploiement, c’est celle qui dure le plus longtemps et qui accapare la majorité des coûts de l'industrie. Ces coûts sont dus en grande partie à la difficulté d’effectuer des changements dans le logiciel ainsi que de contenir les effets de ces changements. Dans cette perspective, de nombreux travaux ont ciblé l’analyse/prédiction de l’impact des changements sur les logiciels. Les approches existantes nécessitent de nombreuses informations en entrée qui sont difficiles à obtenir. Dans ce mémoire, nous utilisons une approche probabiliste. Des classificateurs bayésiens sont entraînés avec des données historiques sur les changements. Ils considèrent les relations entre les éléments (entrées) et les dépendances entre changements historiques (sorties). Plus spécifiquement, un changement complexe est divisé en des changements élémentaires. Pour chaque type de changement élémentaire, nous créons un classificateur bayésien. Pour prédire l’impact d’un changement complexe décomposé en changements élémentaires, les décisions individuelles des classificateurs sont combinées selon diverses stratégies.  Notre hypothèse de travail est que notre approche peut être utilisée selon deux scénarios. Dans le premier scénario, les données d’apprentissage sont extraites des anciennes versions du logiciel sur lequel nous voulons analyser l’impact de changements. Dans le second scénario, les données d’apprentissage proviennent d’autres logiciels. Ce second scénario est intéressant, car il permet d’appliquer notre approche à des logiciels qui ne disposent pas d’historiques de changements. Nous avons réussi à prédire correctement les impacts des changements élémentaires. Les résultats ont montré que l’utilisation des classificateurs conceptuels donne les meilleurs résultats. Pour ce qui est de la prédiction des changements complexes, les méthodes de combinaison "Voting" et OR sont préférables pour prédire l’impact quand le nombre de changements à analyser est grand. En revanche, quand ce nombre est limité, l’utilisation de la méthode Noisy-Or ou de sa version modifiée est recommandée. Software maintenance is one of the most important phases in the software life cycle. After the development and deployment phases, maintenance is a continuous phase that lasts until removing the software from operation. It is then the most costly phase. Indeed, those costs are due to the difficulty of implementing different changes in the system and to manage their impacts. In this context, much research work has targeted the problem of change impact analysis/prediction. The existent approaches require many inputs that are difficult to extract. In this Master thesis, we propose a probabilistic approach that uses Bayesian classifiers to predict the change impact. These classifiers are trained with historical data about changes. The consider the relations between the elements of a system (input), and the dependencies between the occurred changes (output). More precisely, a complex change in a system is divided into a set of elementary changes. For each type of elementary change, we create a classifier. To predict the impact of complex change, the individual decisions of each classifier are combined using different strategies.  We evaluate our approach in two scenarios. In the first, we extract the learning data from the oldest versions of the same system. In the second scenario, the learn data comes from other systems to create the classifiers. This second scenario is interesting because it allows us to use our approach on systems without change histories.  Our approach showed that it can  predict the impact of elementary changes. The best results are obtained using the  classifiers based on conceptual relations. For the prediction of complex changes by the combination of elementary decisions, the results are encouraging considering the  few used inputs. More specifically, the voting method and the OR method predict better complex changes when the number of case to analyze is large. Otherwise, using the method Noisy-Or or its modified version is recommended when the number of cases is small.

Keyphrases: Genie logiciel, impact du changement, classifieur bayésien, Software engineering, change impact, Bayesian classifier