Supporting Software Integration Activities with First-Class Code Changes - Inria - Institut national de recherche en sciences et technologies du numérique Accéder directement au contenu
Thèse Année : 2015

Supporting Software Integration Activities with First-Class Code Changes

Aide à l'Intégration de Branches Grâce à la Réification des Changements

Résumé

Developers typically change codebases in parallel from each other, which results in diverging codebases. Such diverging codebases must be integrated when finished. Integrating diverging codebases involves difficult activities. For example, two changes that are correct independently can introduce subtle bugs when integrated together. Integration can be difficult with existing tools, which, instead of dealing with the evolution of the actual program entities being changed, handle code changes as lines of text in files. Tools are important: software development tools have greatly improved from generic text editors to IDEs by providing high-level code manipulation such as automatic refactorings and code completion. This improvement was possible by the reification of program entities. Nevertheless, integration tools did not benefit from a similar reification of change entities to improve productivity in integration. In this work we first conducted a study to learn which integration activities are important and have little tool support. We discovered that one of such activities is the detection of tangled commits (that contain unrelated tasks such as a bug fix and a refactoring). Then we proposed Epicea, a reified change model and associated IDE tools, and EpiceaUntangler, an approach to help developers share untangled commits based on Epicea. The results of our evaluations with real-world studies show the usefulness of our approaches.
Les développeurs changent le code source en parallèle les uns des autres, ce qui fait diverger les bases de code. Ces divergences se doivent d'être réintégrées. L'intégration de bases de code divergentes est une activité complexe. Par exemple, réunir deux bases de code indépendamment correctes peut générer des problèmes. L'intégration peut être difficile avec les outils existants, qui, au lieu de gérer l'évolution des entités réelles du programme modifié, gère les changements de code au niveau des lignes de texte dans les fichiers sources. Les outils sont importants: les outils de développement de logiciels se sont grandement améliorés en passant par exemple d'éditeurs de texte génériques à des IDEs qui fournissent de la manipulation de code de haut niveau tels que la refactorisation automatique et la complétion de code. Cette amélioration a été possible grâce à la réification des entités de programme. Néanmoins, les outils d'intégration n'ont pas profité d'une réification similaire des entités de changement pour améliorer l'intégration. Dans cette thèse nous avons d'abord conduit une étude auprès de développeurs pour comprendre quelles sont les activités menées durant une intégration qui sont peu supportées par les outils. L'une d'elle est la détection de commits mêlés (qui contiennent des tâches non liées telles qu'une correction de bug et une refactorisation). Ensuite, nous proposons Epicea, un modèle de changement réifié et des outils d'IDE associés, et EpiceaUntangler, une approche pour aider les développeurs à démêler les commits en se basant sur Epicea. Les résultats de nos évaluations avec des études de cas issues du monde réel montrent l’utilité de nos approches.
Fichier principal
Vignette du fichier
2015-12-10-final.pdf (1.61 Mo) Télécharger le fichier
Loading...

Dates et versions

tel-01247696 , version 1 (22-12-2015)

Identifiants

  • HAL Id : tel-01247696 , version 1

Citer

Martín Dias. Supporting Software Integration Activities with First-Class Code Changes . Programming Languages [cs.PL]. Laboratoire d’Informatique Fondamentale de Lille, 2015. English. ⟨NNT : ⟩. ⟨tel-01247696⟩
218 Consultations
275 Téléchargements

Partager

Gmail Facebook X LinkedIn More