Litcius/Paper detail

Using Annotations for Sensemaking About Code

Amber Horvath, Brad A. Myers, Andrew Macvean, Imtiaz Rahman

202223 citationsDOIOpen Access PDF

Abstract

Developers spend significant amounts of time finding, relating, navigating, and, more broadly, making sense of code. While sensemaking, developers must keep track of many pieces of information including the objectives of their task, the code locations of interest, their questions and hypotheses about the behavior of the code, and more. Despite this process being such an integral aspect of software development, there is little tooling support for externalizing and keeping track of developers’ information, which led us to develop Catseye – an annotation tool for lightweight notetaking about code. Catseye has advantages over traditional methods of externalizing code-related information, such as commenting, in that the annotations retain the original context of the code while not actually modifying the underlying source code, they can support richer interactions such as lightweight versioning, and they can be used as navigational aids. In our investigation of developers’ notetaking processes using Catseye, we found developers were able to successfully use annotations to support their code sensemaking when completing a debugging task.

Topics & Concepts

SensemakingComputer scienceDebuggingContext (archaeology)Code (set theory)Code reviewTask (project management)Process (computing)KPI-driven code analysisSource codeSoftware versioningSoftware engineeringHuman–computer interactionSoftwareWorld Wide WebData scienceStatic program analysisSoftware developmentProgramming languageEngineeringPaleontologySystems engineeringSet (abstract data type)BiologySoftware Engineering ResearchSoftware Engineering Techniques and PracticesUsability and User Interface Design