Les développeurs doivent souvent intégrer des modifications dans les versions en production de leurs applications. Des techniques de fusion avancée et automatique les aident dans cette intégration. Cependant ces techniques ne permettent pas de garantir un système fonctionnel et ne supportent pas une adaptation à la carte. Les techniques de pointe sont pour la plus part des outils textuels qui ne fournissent pas un aperçu global des modifications. En même temps, les outils existants n'offrent pas la possibilité de comprendre les changements au sein de leur contexte spécifique. Les développeurs doivent lire le code changé, vérifier les `diffs', se construire une idée d'un changement par eux-mêmes et comprendre le contexte pour évaluer l'impact des modifications.Cela peut être compliqué dans l'intégration de grands systèmes avec des modifications dans différentes `branches'. La fusion textuelle automatique ne prend pas en compte les entités de programme qu’une modification affecte ou leurs dépendances. Les développeurs doivent comparer manuellement chaque des changements et leur source d'origine. Cette thèse présente une solution pour les activités d'intégration, comme aider à comprendre l'effet d'un changement au sein d'une longue liste de changements dans un `commit'. Nous proposons une représentation de l'histoire du code source et des modifications d'un logiciel. Nous calculons les dépendances logiques entre les changements. Avec le soutien d'un outil visuel pour la caractérisation des changements et des dépendances, il est possible de fournir une approche globale pour aider les développeurs à comprendre les changements et de les guider au cours des processus d’intégration. / Developers deal with the integration of source code changes into the system release. Automatic and advanced merging techniques help them to merge their modifications. While these techniques help to merge changes, they do not guarantee to have a functional system, and they do not support performing cherry picking. Current state-of-the-art consists mostly of textual diff tools that do not provide an overview of the changes (how changes are distributed? what groups of entities did change?). At the same time, existing tools do not offer the possibility to understand changes within their specific context. Developers need to manually read the changed code, check the diffs to build an idea of a change, understand its context and assess its impact. This can be more complicated when developing large systems and the integration of streams of changes between branches is needed. Merging changes does not take into account the program entities they affect or their dependencies. Developers are responsible for performing manual and tedious comparison within the input stream of changes and also with their originating source. This dissertation presents a solution that supports the integration activities, such as aiding in understanding changes within a commit or within a stream of changes. We propose a first-class representation of the source code history and changes of a software system to enable the calculation of dependencies between changes. This combined with visual tool support for characterizing changes and dependencies, makes it possible to provide encompassing support for software integration aiding developers in understanding changes and guiding them during the merging processes.
Identifer | oai:union.ndltd.org:theses.fr/2012LIL10196 |
Date | 04 October 2012 |
Creators | Uquillas Gómez, Verónica Isabel |
Contributors | Lille 1, Vrije universiteit Brussel (1970-....), D'Hondt, Theo, Ducasse, Stéphane, Kellens, Andy |
Source Sets | Dépôt national des thèses électroniques françaises |
Language | English |
Detected Language | French |
Type | Electronic Thesis or Dissertation, Text |
Page generated in 0.0024 seconds