Evaluating Code Readability and Legibility: An Examination of Human-centric Studies
Delano Oliveira, Reydne Bruno, Fernanda Madeiral, Fernando Castor

TL;DR
This paper systematically reviews human-centric studies on code readability and legibility, analyzing evaluation methods, variables, and competencies involved, to guide future research in understanding and measuring code comprehension.
Contribution
It provides a comprehensive analysis of 54 studies on code readability and legibility, categorizing evaluation approaches and modeling comprehension as a learning activity.
Findings
Most studies measure correctness or ask for opinions.
Few studies monitor physical signs like brain activation.
Different evaluation variables require different competencies.
Abstract
Reading code is an essential activity in software maintenance and evolution. Several studies with human subjects have investigated how different factors, such as the employed programming constructs and naming conventions, can impact code readability, i.e., what makes a program easier or harder to read and apprehend by developers, and code legibility, i.e., what influences the ease of identifying elements of a program. These studies evaluate readability and legibility by means of different comprehension tasks and response variables. In this paper, we examine these tasks and variables in studies that compare programming constructs, coding idioms, naming conventions, and formatting guidelines, e.g., recursive vs. iterative code. To that end, we have conducted a systematic literature review where we found 54 relevant papers. Most of these studies evaluate code readability and legibility by…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Research · Software Reliability and Analysis Research · Software Engineering Techniques and Practices
