An exploratory study of programmers' analogical reasoning and software history usage during code re-purposing

John Allen, Caitlin Kelleher

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

1 Scopus citations

Abstract

Background: Software development relies on collaborative problem-solving. Understanding previously addressed problems in software is crucial for developers to identify and repurpose functionalities for new problem-solving contexts.Objective: We explore the barriers programmers encounter during code repurposing and investigate how access to historical context about the original developer's goals may affect this process.Method: We present an exploratory study of 16 programmers who completed two code repurposing tasks in different code bases. Participants completed these tasks both with and without access to the historical information of the original developer's goals. We explore how programmers use analogical reasoning to identify and apply existing software artifacts to new goals.Results: We show that programmers often failed to notice analogies, made false analogies, and underestimated the value of reuse. Even when useful analogies were made, programmers struggled to find the relevant code. We also describe the patterns of how participants utilized code histories.Conclusion: We highlight the barriers programmers face in noticing and applying analogies during code reuse. We suggest design recommendations for future tools to allow lightweight evaluation of code to help programmers identify reuse opportunities.

Original languageEnglish
Title of host publicationProceedings - 2024 IEEE/ACM 17th International Conference on Cooperative and Human Aspects of Software Engineering, CHASE 2024
PublisherAssociation for Computing Machinery, Inc
Pages109-120
Number of pages12
ISBN (Electronic)9798400705335
DOIs
StatePublished - Apr 14 2024
Event17th IEEE/ACM International Conference on Cooperative and Human Aspects of Software Engineering, co-located with the International Conference on Software Engineering, ICSE 2024 - Lisbon, Portugal
Duration: Apr 14 2024Apr 15 2024

Publication series

NameProceedings - 2024 IEEE/ACM 17th International Conference on Cooperative and Human Aspects of Software Engineering, CHASE 2024

Conference

Conference17th IEEE/ACM International Conference on Cooperative and Human Aspects of Software Engineering, co-located with the International Conference on Software Engineering, ICSE 2024
Country/TerritoryPortugal
CityLisbon
Period04/14/2404/15/24

Fingerprint

Dive into the research topics of 'An exploratory study of programmers' analogical reasoning and software history usage during code re-purposing'. Together they form a unique fingerprint.

Cite this