TU Darmstadt / ULB / tuprints

IDE 2.0: Leveraging the Wisdom of the Software Engineering Crowds

Bruch, Marcel :
IDE 2.0: Leveraging the Wisdom of the Software Engineering Crowds.
TU Darmstadt
[Ph.D. Thesis], (2012)

This is the latest version of this item.

[img]
Preview
Thesis - PDF
Main.pdf
Available under Creative Commons Attribution Non-commercial No Derivatives.

Download (7Mb) | Preview
Item Type: Ph.D. Thesis
Title: IDE 2.0: Leveraging the Wisdom of the Software Engineering Crowds
Language: English
Abstract:

During the past decades, software systems have grown significantly in size and complexity, making software development and maintenance an extremely challenging endeavor. Integrated Development Environments (IDEs) greatly facilitate this endeavor by providing a convenient means to browse and manipulate a system's source code and to obtain helpful documentation on Application Programming Interfaces (APIs).

But according to Ko et al., developers spent up to 40 % of their time with searching example usages and analyzing how to use a given API correctly ---quite a lot of time that is not used for its actual objective, the development of new features, but for understanding existing code and learning how to use existing APIs.

We argue that there is great space for improvement by exploiting collective intelligence, the knowledge of the masses. The leveraging of user data to build intelligent and user-centric web-based systems is the source of our inspiration. A Web 2.0 site allows its users to interact with each other as contributors to the website's content, in contrast to websites where users are limited to the passive viewing of information that is provided to them.

This mindshift in enableing users to contribute to a site has significant impact on the quality of services of existing websites. Amazon, the leading internet sales platform for books and electronic devices, for instance, creates recommendations based on purchase behaviors of its customers or finds interesting similar products based on how customers interact with search results. Netflix, a video-on-demand service, features a web application that leverages user ratings on movies to recommend likely interesting movies to other users. These systems have in common that they leverage crowds to continuously improve the quality of their services, either through implicit feedback (e.g., user click-through behaviors), explicit feedback (e.g., ratings for movies) or user-generated content (e.g., product reviews and movie critiques).

We argue that today's IDEs behave more like traditional "Web 1.0" applications in the way that they do not enable their users to contribute and share their knowledge with others, neither explicitly nor implicitly, and thus hinder themselves to effectively exchange knowledge among developers. This thesis investigates how successful concepts of the Web 2.0 can be brought to today's IDEs and shows how existing IDE tools like code completion, documentation viewers, code-search, and bug detectors can be improved by leveraging the knowledge that is available in the developer's IDE.

Alternative Abstract:
Alternative AbstractLanguage
Innerhalb der letzten Jahrzehnte sind Softwaresysteme erheblich in Größe und Komplexitäat gewachsen. Dieser enorme Komplexitätsanstieg macht die Entwicklung und Wartung solcher Systeme zu einem extrem schwierigen und kostenintensiven Unterfangen. Integrierte Entwicklungsumgebungen unterstützen Softwareentwickler bei dieser Arbeit - beispielsweise indem sie den Entwickler beim Suchen und Manipulieren von Quellcode unterstützen oder Dokumentation kontext-sensitiv innerhalb der Entwicklungsumgebung zur Verfügung stellen. Trotz dieser Unterstützung verbringen Softwareentwickler laut einer Studie von Ko et al. bis zu 40% ihrer Zeit mit der Suche nach und der Analyse von Beispielcode, um zu verstehen, wie existierende Softwarekomponenten korrekt eingesetzt werden können. Zeit die somit nicht dem eigentlichen Ziel - der Entwicklung neuer Software - zur Verfügung steht, sondern in das Erlernen bestehender Systeme fließt. Diese Studie zeigt eine Ineffizienz im Entwicklungsprozess auf, die nur unzureichend durch bestehende Ansätze abgedeckt wird. Wir behaupten das aktuelle Entwicklungsumgebungen (neben dem Compiler eines der wichtigsten Werkzeuge für Softwareentwickler) ihren Nutzern bei diesen Problemen erheblich besser unterstützen könnten und noch viel Raum für Verbesserungen bieten -- zum Beispiel durch die Nutzung von kollektiver Intelligenz - dem Wissen der Massen. Die Nutzung von Benutzerdaten, um intelligente und benutzerzentrische web-basierende System zu bauen (bekannt unter dem Begriff Web 2.0), ist die Quelle unserer Inspiration. Eine Web 2.0 Anwendung erlaubt ihren Benutzern neue Inhalte zu erstellen - im Gegensatz zu klassischen Web 1.0 Anwendungen in denen der Benutzer auf das passive Lesen der Informationen beschränkt ist, die ihm durch die Webseitenanbieter dargeboten werden. Der Sinneswandel, Webseitennutzern zu erlauben zu den Inhalten einer Website beizutragen, hat enorme Auswirkungen auf die Qualität der angebotenen Dienste. Amazon, die führende Internet Verkaufsplattform für Bücher und elektronische Geräte, erzeugt beispielsweise Empfehlungen basierend auf dem Kaufverhalten seiner Kunden oder identifiziert relevante, ähnliche Produkte basierend auf dem Navigationsverhalten, wie Benutzer mit den Ergebnissen einer Suchanfrage umgehen. Netflix, ein Video-on-Demand Anbieter, betreibt eine Webseite die Benutzerbewertungen für Filme verwendet um anderen Kunden Filme vorzuschlagen, die zu den persönlichen Vorlieben (Action, Romantik, Trick etc.) passen. Diese Systeme haben gemeinsam, dass sie Benutzerdaten verwenden, um ihre Dienste kontinuierlich zu verbessern - sei es durch implizites Feedback (zum Beispiel das Klick-Verhalten), durch explizites Feedback (z.B. durch die Bewertungen von Filmen) oder durch benutzer-generierten Inhalte (z.B. durch das Schreiben von Filmkritiken). Wir sind der Meinung, dass sich heutige Entwicklungsumgebungen wie traditionelle Web 1.0 Anwendungen verhalten. Sie ermöglichen es ihren Nutzern nicht, Wissen und Erfahrungen mit anderen Nutzern zu teilen (weder implizit noch explizit) und verhindern dadurch den effektiven Austausch von Wissen unter Softwareentwicklern. Diese Doktorarbeit untersucht, wie erfolgreiche Konzepte des Web 2.0 in heutige Entwicklungsumgebungen integriert werden können und zeigt, wie existierende Werkzeuge wie beispielsweise Code Completion, Dokumentation, Beispielcode-Suche und Bug-Detektoren durch das Nutzen von kollektiven Wissens verbessert werden können.German
Classification DDC: 000 Allgemeines, Informatik, Informationswissenschaft > 004 Informatik
Divisions: Fachbereich Informatik
Date Deposited: 22 Oct 2012 08:34
Last Modified: 07 Dec 2012 12:05
URN: urn:nbn:de:tuda-tuprints-31377
License: Creative Commons: Attribution-Noncommercial-No Derivative Works 3.0
Referees: Mezini, Prof. Dr. Mira and Zeller, Prof. Dr. Andreas
Refereed: 20 October 2011
URI: http://tuprints.ulb.tu-darmstadt.de/id/eprint/3137
Export:

Available Versions of this Item

  • IDE 2.0: Leveraging the Wisdom of the Software Engineering Crowds. (deposited 22 Oct 2012 08:34) [Currently Displayed]

Actions (login required)

View Item View Item