Cognitive-support code review tools : improved efficiency of change-based code review by guiding and assisting reviewers

Show simple item record

dc.identifier.uri http://dx.doi.org/10.15488/9164
dc.identifier.uri https://www.repo.uni-hannover.de/handle/123456789/9217
dc.contributor.advisor Schneider, Kurt DE
dc.contributor.author Baum, Tobias ger
dc.date.accessioned 2019-12-18T13:35:57Z
dc.date.available 2019-12-18T13:35:57Z
dc.date.issued 2019
dc.identifier.citation Baum, Tobias: Cognitive-support code review tools : improved efficiency of change-based code review by guiding and assisting reviewers. Hannover : Gottfried Wilhelm Leibniz Universität, Diss., 2019, x, 275 S. DOI: https://doi.org/10.15488/9164 ger
dc.description.abstract Code reviews, i.e., systematic manual checks of program source code by other developers, have been an integral part of the quality assurance canon in software engineering since their formalization by Michael Fagan in the 1970s. Computer-aided tools supporting the review process have been known for decades and are now widely used in software development practice. Despite this long history and widespread use, current tools hardly go beyond simple automation of routine tasks. The core objective of this thesis is to systematically develop options for improved tool support for code reviews and to evaluate them in the interplay of research and practice. The starting point of the considerations is a comprehensive analysis of the state of research and practice. Interview and survey data collected in this thesis show that review processes in practice are now largely change-based, i.e., based on checking the changes resulting from the iterative-incremental evolution of software. This is true not only for open source projects and large technology companies, as shown in previous research, but across the industry. Despite the common change-based core process, there are various differences in the details of the review processes. The thesis shows possible factors influencing these differences. Important factors seem to be the process variants supported and promoted by the used review tool. In contrast, the used tool has little influence on the fundamental decision to use regular code reviews. Instead, the interviews and survey data suggest that the decision to use code reviews depends more on cultural factors. Overall, the analysis of the state of research and practice shows that there is a potential for developing better code review tools, and this potential is associated with the opportunity to increase efficiency in software development. The present thesis argues that the most promising approach for better review support is reducing the reviewer's cognitive load when reviewing large code changes. Results of a controlled experiment support this reasoning. The thesis explores various possibilities for cognitive support, two of these in detail: Guiding the reviewer by identifying and presenting a good order of reading the code changes being reviewed, and assisting the reviewer through automatic determination of change parts that are irrelevant for review. In both cases, empirical data is used to both generate and test hypotheses. In order to demonstrate the practical suitability of the techniques, they are also used in a partner company in regular development practice. For this evaluation of the cognitive support techniques in practice, a review tool which is suitable for use in the partner company and as a platform for review research is needed. As such a tool was not available, the code review tool "CoRT" has been developed. Here, too, a combination of an analysis of the state of research, support of design decisions through scientific studies and evaluation in practical use was employed. Overall, the results of this thesis can be roughly divided into three blocks: Researchers and practitioners working on improving review tools receive an empirically and theoretically sound catalog of requirements for cognitive-support review tools. It is available explicitly in the form of essential requirements and possible forms of realization, and additionally implicitly in the form of the tool "CoRT". The second block consists of contributions to the fundamentals of review research, ranging from the comprehensive analysis of review processes in practice to the analysis of the impact of cognitive abilities (specifically, working memory capacity) on review performance. As the third block, innovative methodological approaches have been developed within this thesis, e.g., the use of process simulation for the development of heuristics for development teams and new approaches in repository and data mining. ger
dc.language.iso eng ger
dc.publisher Hannover : Institutionelles Repositorium der Universität Hannover
dc.rights Es gilt deutsches Urheberrecht. Das Dokument darf zum eigenen Gebrauch kostenfrei genutzt, aber nicht im Internet bereitgestellt oder an Außenstehende weitergegeben werden. ger
dc.subject Software Engineering eng
dc.subject Code Reviews eng
dc.subject Cognitive Load eng
dc.subject Code Reading Techniques eng
dc.subject Software Development Tools eng
dc.subject kognitive Last ger
dc.subject Quellcode-Lesetechniken ger
dc.subject Software-Entwicklungswerkzeuge ger
dc.subject.ddc 004 | Informatik ger
dc.title Cognitive-support code review tools : improved efficiency of change-based code review by guiding and assisting reviewers eng
dc.type doctoralThesis ger
dc.type Text ger
dc.description.version publishedVersion ger
tib.accessRights frei zug�nglich ger


Files in this item

This item appears in the following Collection(s):

Show simple item record

 

Search the repository


Browse

My Account

Usage Statistics