Return to search

Program navigation analysis using machine learning

Developers invest a large portion of their development time exploring program source code to find task-related code elements and to understand the context of their task. The task context is usually not recorded at the end of the task and is forgotten over time. Similarly, it is not possible to share the task context with other developers working on related tasks. Proposed solutions to automatically record the summary of the code investigation suffer from methodological limitations related to the techniques and the data sources used to generate the summary as well as the granularity at which it is generated. To overcome these limitations, we investigate the use of machine learning techniques, in particular decision tree learning, to predict automatically the task context from session navigation transcripts obtained from developers performing tasks on the source code. We conducted a user study to collect navigation transcripts from developers engaged in source code exploration tasks. We used the data from the user study to train and test decision tree classifiers. We compared the decision tree algorithm with two existing approaches, and found that it compares positively in most cases. Additionally, we developed an Eclipse plug-in that generates automatically a developer session summary using the decision tree classifier learned from the data collected during the user study. We provide qualitative analysis of the effectiveness of this plug-in. / Les d\'eveloppeurs de logiciels investissent une grande partie de leur temps \`a explorer le code source pour trouver des \'el\'ements du code reli\'es \`a leurs t\^aches, et aussi pour mieux comprendre le contexte de leur t\^ache. Le contexte de leur t\^ache n'est g\'en\'eralement pas enregistr\'ee \`a la fin de leur s\'eance d'exploration de code et est oubli\'e au fil du temps. De m\^eme, il n'est pas possible de partager le contexte de leur t\^ache avec d'autres d\'eveloppeurs travaillant sur des t\^aches reli\'ees. Les solutions propos\'ees pour enregistrer automatiquement le r\'esum\'e de leur exploration du code souffrent de limitations m\'ethodologiques li\'ees aux techniques et aux sources de donn\'ees utilis\'ees pour g\'en\'erer le r\'esum\'e, ainsi qu'\`a la granularit\'e \`a laquelle il est g\'en\'er\'e. Pour surmonter ces limitations, nous \'etudions l'emploi de techniques d'apprentissage machine, en particulier l'arbre de d\'ecision d'apprentissage, pour pr\'evoir automatiquement le contexte de la t\^ache \`a partir des transcriptes de navigation d'une session d'exploration de code du d\'eveloppeur. Nous avons effectu\'e une \'etude de cas afin de recueillir des transcriptions de navigation g\'en\'er\'es par des d\'eveloppeurs lors de l'exploration du code source. Nous avons utilis\'e les donn\'ees de cette \'etude pour tester les classifications de l'arbre de d\'ecision. Nous avons compar\'e l'algorithme \`a arbre \`a d\'ecision avec deux approches existantes, et avons d\'emontr\'e que cette nouvelle approche se compare favorablement dans la plupart des cas. Additionnellement, nous avons d\'evelopp\'e un plug-in Eclipse qui g\'en\`ere automatiquement un

Identiferoai:union.ndltd.org:LACETR/oai:collectionscanada.gc.ca:QMM.32599
Date January 2009
CreatorsAgrawal, Punit
ContributorsDoina Precup (Internal/Cosupervisor2), Martin Robillard (Internal/Supervisor)
PublisherMcGill University
Source SetsLibrary and Archives Canada ETDs Repository / Centre d'archives des thèses électroniques de Bibliothèque et Archives Canada
LanguageEnglish
Detected LanguageFrench
TypeElectronic Thesis or Dissertation
Formatapplication/pdf
CoverageMaster of Science (School of Computer Science)
RightsAll items in eScholarship@McGill are protected by copyright with all rights reserved unless otherwise indicated.
RelationElectronically-submitted theses.

Page generated in 0.0019 seconds