Perf-CoRe - PERFormance COde REview

Introduction

Code Review, the inspection of source code by developers other than the authors, is a software engineering practice employed both in OSS and industrial contexts. Compared to Code Inspections performed in the 70s and in the 80s, Code Review today is less formal and tool-based. At Microsoft developers uses CodeFlow, while the most known code review tool among the open source projects is Gerrit [1]. The main motivation for reviewing code is to find defects, but also to share code knowledge, increase team awareness and create alternative (possibly) better solutions to problems [2]. While there are some defects - e.g. security issues due to public field in Java classes - that it's easy to detect, other problems are very hard to catch by simply looking the code. Perfomance Bugs are a good example of these problems, because the reviewers should need more sophisticated metrics (e.g. method execution time).

Goals of this master project

The starting point of this Master Project is to understand whether perfomance bugs are detected during modern code review. Then assess the effectiveness of the code review in fixing detected performance bottlenecks. Finally the main outcome of the master project is to augment an existing code review management tool with a performance-specific support and validate its usefulness at one of our industrial partners (e.g. Adesso, Sony).

Task description

The main tasks of this project are: 

  1. Select Java OSS projects from GerritHub (https://gerrithub.io/#/q/status:open), inspect the code reviews' messages and commits and verify whether the discussed perfomance issues are correctly detected, by running a profiler (e.g. VisualVM, a profiler for Java Applications);
  2. Validate whether the performance bugs are actually fixed after the code review in order to measure the effectiveness of modern code review practices;
  3. Choose a code review management tool (e.g. Gerrit) and augment it with dynamic performance metrics/information, possibly got from the profiler;
  4. Do survey and ask our industrial partners if this information would help them in the process of fixing performance bugs.

For this project is required a team of at least 2 students (max 4). 

This project is also available as a master thesis (with reduced size, specifically without Task 4).

References

  • [1] Sebastiano Panichella, Venera Arnaoudova, Massimiliano Di Penta and Giuliano Antoniol: Would Static Analysis Tools Help Developers with Code Reviews?.In Proceedings of the 22nd IEEE International Conference on Software Analysis, Evolution, and Reengineering (SANER), 2015. 
  • [2] A. Bacchelli and C. Bird: Expectations, outcomes, and challenges of modern code review. In Proceedings of the International Conference on Software Engineering (ICSE), 2013.

Posted: 20.03.2017

Contact: Carmine Vassallo, Christoph Laaber, Juergen Cito