TY - GEN
T1 - Exploring Analogical Reasoning and History Use in Software Re-purposing
AU - Allen, John
AU - Kelleher, Caitlin
N1 - Publisher Copyright:
© 2023 IEEE.
PY - 2023
Y1 - 2023
N2 - 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.
AB - 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.
KW - Analogical Reasoning
KW - Programming
KW - Software History
UR - https://www.scopus.com/pages/publications/85178577044
U2 - 10.1109/VL-HCC57772.2023.00042
DO - 10.1109/VL-HCC57772.2023.00042
M3 - Conference contribution
AN - SCOPUS:85178577044
T3 - Proceedings of IEEE Symposium on Visual Languages and Human-Centric Computing, VL/HCC
SP - 242
EP - 244
BT - Proceedings - 2023 IEEE Symposium on Visual Languages and Human-Centric Computing, VL/HCC 2023
PB - IEEE Computer Society
T2 - 2023 IEEE Symposium on Visual Languages and Human-Centric Computing, VL/HCC 2023
Y2 - 2 October 2023 through 6 October 2023
ER -