Not logged in.

Contribution Details

Type Bachelor's Thesis
Scope Discipline-based scholarship
Title A Recommender System for Reviewable Code Changes
Organization Unit
Authors
  • Anton Crazzolara
Supervisors
  • Alberto Bacchelli
Language
  • English
Institution University of Zurich
Faculty Faculty of Business, Economics and Informatics
Date 2023
Abstract Text Modern Code Review is an essential step of software development processes in industrial settings and open-source projects. It is usually supported by various tools to help reviewers during the process. Nonetheless, a significant part of the review time is still spent on understanding submitted changes. The challenge of understanding code changes could be improved by new tools designed for change authors to help them create more reviewable changes. In this study, I collected information on different aspects relevant to the design of such tools, including their responsibilities and the associated implementations. I present Cres, a tool designed for identifying oversized commits and helping developers divide them into smaller commits. Cres was implemented following two different approaches, resulting in a web application and a pair of Git hooks. Both approaches were evaluated in interviews with expert developers to provide ideas and advice for the design of future tools.
Zusammenfassung Modern Code Review ist ein essenzieller Bestandteil vieler Softwareentwicklungsprozesse, sowohl im gewerblichen Kontext, als auch in Open-Source-Projekten. Der Prozess wird in der Regel begleitet durch verschiedene Hilfsprogramme um Reviewern den Prozess zu vereinfachen. Dennoch verbringen Reviewer immer noch einen grossen Teil ihrer Zeit damit, die eingereichten Änderungen zuerst zu verstehen. Die Entwickler der Änderungen können dazu beitragen, diese Herausforderung für die Reviewer zu vermindern, indem sie darauf achten, dass ihre Änderungen leicht verständlich sind. Um den Entwicklern dabei wiederum zu helfen, könnten neue Hilfsprogramme entwickelt werden. In dieser Studie befasste ich mich mit den verschieden Aspekten, die für die Entwicklung solcher Hilfsmittel relevant sind. Dazu gehören die Auswahl von Funktionen und die Wahl der technischen Implementierung. Zudem präsentiere ich Cres, ein Hilfsprogramm entwickelt für Entwickler um ihre eigenen Änderungen zu evaluieren. Das Programm analysiert Git-Commits, filtert solche heraus, die eine kritische Grösse erreicht haben, und präsentiert den Entwicklern Vorschläge, wie sich die Commits aufteilen liessen. Cres wurde nach mehreren technischen Herangehensweisen entwickelt. Somit existieren sowohl eine Web Applikation, als auch zwei Git Hooks. Die verschiedenen Implementierungen wurden in Interviews mit Experten evaluiert um Ideen und Empfehlungen für die Entwicklung ähnlicher, zukünftiger Hilfsprogramme zu sammeln.
PDF File Download
Export BibTeX