Not logged in.

Contribution Details

Type Dissertation
Scope Discipline-based scholarship
Title Hawkshaw - A query framework for software evolution data
Organization Unit
Authors
  • Michael Würsch
Supervisors
  • Harald Gall
  • Serge Demeyer
Language
  • English
Institution University of Zurich
Faculty Faculty of Economics
Number of Pages 295
Date January 2012
Abstract Text The feature list of modern integrated development environments is steadily growing and mastering these tools becomes more and more demanding, especially for novice programmers.Despite their remarkable capabilities, development environments often still cannot directly answer the questions that arise during program maintenance tasks. Instead developers have to map their questions to multiple concrete queries that can be answered only by combining several tools and examining the output of each of them manually to distill an appropriate answer. Existing approaches have in common that they are either limited to a set of predefined, hardcoded questions, or that they require to learn a specific query language only suitable for that limited purpose.We present a framework to query for information about a software system using a quasi-natural language interface that requires almost zero learning effort. Our approach is tightly woven into the Eclipse development environment and allows developers to answer questions related to source code, development history, or bug and issue management. For that, we model data extracted from various software repositories by means of ontologies, store them in a knowledge base of software evolution facts, and use knowledge processing techniques from the Semantic Web to query the knowledge base.Our approach was evaluated in a user study with 35 subjects, who had to solve various software evolution tasks for an industrial-scale, open-source software system. The results of our user study showed that our query interface can outperform classical software engineering tools in terms of correctness, while yielding significant time savings to its users and greatly advancing the state of the art in terms of usability and learnability.
Zusammenfassung Moderne integrierte Entwicklungsumgebungen werden von ihren Herstellern mit jeder neuen Version um zahlreiche Funktionalitäten erweitert. Mit wachsender Funktionsvielfalt leiden Zugänglichkeit und Benutzbarkeit, sodass es speziell für unerfahrene Entwickler zunehmend schwieriger wird all die Entwicklungswerkzeuge zu meistern, die ihnen an die Hand gegeben werden. Trotz der bemerkenswerten Eigenschaften der Entwicklungsumgebungen ist es somit oft alles Andere als trivial jene Fragen zu beantworten, die sich Programmierern während ihrer täglichen Arbeit stellen. Ein Teil des Problems liegt darin begründet, dass es zwar oft möglich ist ein Problem zu benennen, sich jedoch das Finden einer Lösungsstrategie schwierig gestaltet, da letztere sich dann auch auf die zur Verfügung stehende Funktionalität abbilden lassen muss. Entwickler müssen folglich das Problem zuerst in solche Teilprobleme zerlegen, die sich mit den vorhandenen Werkzeugen auch beantworten lassen. Im Anschluss ist es dann erforderlich die Teilresultate -- oft erst nach vorgängiger manueller Analyse - wieder zu einem Ganzen zusammenzusetzen. Bestehende Ansätze um diese Arbeit zu erleichtern haben oft den Nachteil, dass entweder nur eine beschränkte, fix vordefinierte Menge von Abfragen unterstützt wird, oder dass stattdessen von Entwicklern erwartet wird, dass diese extra eine formale Abfragesprache nur zu diesem einen Zweck erlernen. Wir präsentieren hingegen ein Rahmenwerk um Information über ein in Entwicklung befindliches Computerprogramm mit Hilfe einer quasi-natürlichsprachigen Benutzerschnittstelle abzufragen, welche ohne nennenswerten Lernaufwand verwendet werden kann. Unser Ansatz ist vollständig in die Eclipse Entwicklungsumgebung integriert und erlaubt Entwicklern Daten betreffend Programmcode, dessen Entwicklungsgeschichte, sowie dessen Fehlerhistorie abzufragen. Zu diesem Zweck modellieren wir die Daten, welche wir aus verschiedenen Programmrepositorien extrahieren, mit Hilfe eines Metamodells basierend auf einer Ontologie. Das Modell speichern wir dann in eine Wissensdatenbank und verwenden Techniken zur Wissensverarbeitung, welche wir dem Semantischen Netz entlehnen, um das Modell abzufragen. Unser Ansatz wurde im Rahmen einer Benutzerstudie mit 35 Personen evaluiert. Die Teilnehmer mussten verschiedene Aufgaben betreffend der Wartung und Evolution eines industriellen, quelloffenen Computersystems lösen. Die Resultate der Benutzerstudie zeigen, dass unsere Benutzerschnittstelle statistisch signifikante Einsparungen bezüglich der Zeit ermöglicht, welche für das Lösen der Aufgaben aufgewendet werden musste. Einen sogar noch grösseren Vorsprung gegenüber bestehenden Ansätzen konnten wir im Hinblick auf Benutzbarkeit und Erlernbarkeit unseres Ansatzes messen.
Other Identification Number merlin-id:7701
PDF File Download from ZORA
Export BibTeX
EP3 XML (ZORA)