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.
An Exploratory Study of Programmers’ Analogical Reasoning and Software History Usage During Code Re-Purposing
Published 2024 in IEEE/ACM International Conference on Connected Health: Applications, Systems and Engineering Technologies
ABSTRACT
PUBLICATION RECORD
- Publication year
2024
- Venue
IEEE/ACM International Conference on Connected Health: Applications, Systems and Engineering Technologies
- Publication date
2024-04-14
- Fields of study
Computer Science
- Identifiers
- External record
- Source metadata
Semantic Scholar
CITATION MAP
EXTRACTION MAP
CLAIMS
- No claims are published for this paper.
CONCEPTS
- No concepts are published for this paper.
REFERENCES
Showing 1-51 of 51 references · Page 1 of 1