TU Darmstadt / ULB / TUbiblio

Code Completion Based on Implicit User Feedback

Amann, Sven (2013):
Code Completion Based on Implicit User Feedback.
Technische Universität Darmstadt, [Master Thesis]

Abstract

Code completion assistants have long been established in modern IDEs’s toolchain for program development. Such assistants greatly facilitate search in and manipulation of source code and its documentation. Nevertheless, it has been observed by Ko et al. [KMCA06] that developers spent around 35 percent of their time searching and analyzing the codebase. Considering the trend of growth in size and complexity software systems have shown over the last decades, this fraction is likely to increase even further in the years to come.

Many of today’s completion assistants are still based on rather simple approaches, like al- phabetical lists of all possible completions, command histories, or heuristics on the current document’s contents. Only recently, the Code Recommenders by Bruch et al. [Bru12] has shown that machine learning approaches can be successfully applied to create next-generation comple- tion assistants, promising a significant increase in productivity.

Problems with these new recommender systems currently are that they learn their models from mining code repositories and that updating models by new evidence requires to restart learning from scratch. Therefore, we introduce a Code Recommenders extension that moves the data collection routines into the IDE and applies incremental learning procedures to learn models from implicit feedback of developers. We evaluate the recommendation models trained with different algorithms and feature-sets in this crowd-based code-completion framework.

Item Type: Master Thesis
Erschienen: 2013
Creators: Amann, Sven
Title: Code Completion Based on Implicit User Feedback
Language: English
Abstract:

Code completion assistants have long been established in modern IDEs’s toolchain for program development. Such assistants greatly facilitate search in and manipulation of source code and its documentation. Nevertheless, it has been observed by Ko et al. [KMCA06] that developers spent around 35 percent of their time searching and analyzing the codebase. Considering the trend of growth in size and complexity software systems have shown over the last decades, this fraction is likely to increase even further in the years to come.

Many of today’s completion assistants are still based on rather simple approaches, like al- phabetical lists of all possible completions, command histories, or heuristics on the current document’s contents. Only recently, the Code Recommenders by Bruch et al. [Bru12] has shown that machine learning approaches can be successfully applied to create next-generation comple- tion assistants, promising a significant increase in productivity.

Problems with these new recommender systems currently are that they learn their models from mining code repositories and that updating models by new evidence requires to restart learning from scratch. Therefore, we introduce a Code Recommenders extension that moves the data collection routines into the IDE and applies incremental learning procedures to learn models from implicit feedback of developers. We evaluate the recommendation models trained with different algorithms and feature-sets in this crowd-based code-completion framework.

Divisions: 20 Department of Computer Science
20 Department of Computer Science > Software Technology
Date Deposited: 25 Aug 2014 07:32
Referees: Mezini, Prof. Dr. Mira
Alternative Abstract:
Alternative abstract Language
Assistenten zur Code-Vervollständigung sind ein etablierter Bestandteil des Werkzeugarsenals bei der Programmenwicklung in modernen Entwicklungsumgebungen. Solche Assistenten sind eine große Hilfe bei der Suche in und der Manipulation von Quellcode. Trotzdem verbringen Entwickler, so Ko et al. [KMCA06], bis zu 40 percent ihrer Zeit mit dem Durchsuchen und Analysieren der Codebasis. Angesichts des Trends zu immer größeren und komplexeren Soft- waresystemen, der sich in den letzten Jahrzehnten gezeigt hat, ist es wahrscheinlich, dass das Gewicht solcher Aufgaben in den kommenden Jahren weiter zunimmt. Viele heutige Assistenten zur Code-Vervollständigung basieren noch auf einfachen Ver- fahren wie alphabetischen Listen aller möglichen Vervollständigungen, Befehlshistorien oder Heuristiken auf den Inhalten des aktuellen Dokuments. Erst vor Kurzem hat das ‘"Code Recommenders’"-Projekt von Bruch et al. [Bru12] gezeigt, dass Verfahren aus dem Machienen- lernen erfolgreich für neuartige Vorschlagssysteme eingesetzt werden können. Ein Ergebnis, das deutliche Produktivitätssteigerung in der Entwicklung verspricht. Aktuell ist ein Problem dieser neuen Vorschlagssysteme, dass zum Erlernen neuer Modelle Datenmining auf Code-Repositories notwendig ist und, dass der Lernprozess von Vorne be- gonnen werden muss, wenn neue Informationen berücksichtigt werden sollen. Deshalb stellen wir in dieser Arbeit einer Erweiterung des ‘"Code Recommenders’"-System vor, mit der wir die Logik zur Datensammlung in die Entwicklungsumgebung verschieben und inkrementelle Lern- prozesse verwenden, um Vorschlagsmodelle aus dem impliziten Feedback der Entwickler zu lernen. Wir evaluieren diese Arbeit mit verschiedenen Algorithmen und Feature-Sets in diesem Crowd-basierten Code-Vervollständigungs-Framework.German
Export:
Suche nach Titel in: TUfind oder in Google

Optionen (nur für Redakteure)

View Item View Item