Exploring Analogical Reasoning and History Use in Software Re-purposing

  • John Allen
  • , Caitlin Kelleher

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

Abstract

Today, code reuse is typically limited to programmers reusing code that does exactly what they want to do, through APIs and modules, for example. Yet, the space of existing programs that could be reused is broader. In this poster, we consider reuse through re-purposing tasks in which programmers modify an existing codebase to implement a related task. Because this process requires that users build a relationship between the source code and the target program, we examine it using analogical reasoning. To understand the process programmers take and the barriers they encounter when performing reuse through re-purposing tasks, we conducted an exploratory study involving sixteen participants completing two tasks. We find that programmers have difficulty mapping analogies related to the underlying logic of source code, but easily identify visual analogies like interface structure. We discuss how information about a code's history can be useful during reuse, and in identifying logical analogies.

Original languageEnglish
Title of host publicationProceedings - 2023 IEEE Symposium on Visual Languages and Human-Centric Computing, VL/HCC 2023
PublisherIEEE Computer Society
Pages242-244
Number of pages3
ISBN (Electronic)9798350329469
DOIs
StatePublished - 2023
Event2023 IEEE Symposium on Visual Languages and Human-Centric Computing, VL/HCC 2023 - Washington, United States
Duration: Oct 2 2023Oct 6 2023

Publication series

NameProceedings of IEEE Symposium on Visual Languages and Human-Centric Computing, VL/HCC
ISSN (Print)1943-6092
ISSN (Electronic)1943-6106

Conference

Conference2023 IEEE Symposium on Visual Languages and Human-Centric Computing, VL/HCC 2023
Country/TerritoryUnited States
CityWashington
Period10/2/2310/6/23

Keywords

  • Analogical Reasoning
  • Programming
  • Software History

Fingerprint

Dive into the research topics of 'Exploring Analogical Reasoning and History Use in Software Re-purposing'. Together they form a unique fingerprint.

Cite this