TU Darmstadt / ULB / TUbiblio

Code Completion Based on Implicit User Feedback

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

Kurzbeschreibung (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.

Typ des Eintrags: Masterarbeit
Erschienen: 2013
Autor(en): Amann, Sven
Titel: Code Completion Based on Implicit User Feedback
Sprache: Englisch
Kurzbeschreibung (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.

Fachbereich(e)/-gebiet(e): Fachbereich Informatik
Fachbereich Informatik > Softwaretechnik
Hinterlegungsdatum: 25 Aug 2014 07:32
Gutachter / Prüfer: Mezini, Prof. Dr. Mira
Alternatives oder übersetztes Abstract:
AbstractSprache
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.Deutsch
Export:

Optionen (nur für Redakteure)

Eintrag anzeigen Eintrag anzeigen