Eyes on Code: A Study on Developers' Code Navigation Strategies

被引:7
|
作者
Sharafi, Zohreh [1 ]
Bertram, Ian [1 ]
Flanagan, Michael [1 ]
Weimer, Westley [1 ]
机构
[1] Univ Michigan, Dept Elect Engn & Comp Sci, Ann Arbor, MI 48109 USA
关键词
Navigation; Task analysis; Computer bugs; Tools; Maintenance engineering; Software; Switches; Code navigation; eye tracking; human factors; software maintenance; STEREOTYPE THREAT; CONTEXTS; USAGE;
D O I
10.1109/TSE.2020.3032064
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
What code navigation strategies do developers use and what mechanisms do they employ to find relevant information? Do their strategies evolve over the course of longer tasks? Answers to these questions can provide insight to educators and software tool designers to support a wide variety of programmers as they tackle increasingly-complex software systems. However, little research to date has measured developers' code navigation strategies in ecologically-valid settings, or analyzed how strategies progressed throughout a maintenance task. We propose a novel experimental design that more accurately represents the software maintenance process in terms of software complexity and IDE interactions. Using this framework, we conduct an eye-tracking study (n=36) of realistic bug-fixing tasks, dynamically and empirically identifying relevant code areas. We introduce a three-phase model to characterize developers' navigation behavior supported by statistical variations in eye movements over time. We also propose quantifiable notion of "thrashing" with the code as a navigation activity. We find that thrashing is associated with lower effectiveness. Our results confirm that the relevance of various code elements changes over time, and that our proposed three-phase model is capable of capturing these significant changes. We discuss our findings and their implications for tool designers, educators, and the research community.
引用
收藏
页码:1692 / 1704
页数:13
相关论文
共 50 条
  • [41] Developers' need for the rationale of code commits: An in-breadth and in-depth study
    Al Safwan, Khadijah
    Elarnaoty, Mohammed
    Servant, Francisco
    JOURNAL OF SYSTEMS AND SOFTWARE, 2022, 189
  • [42] Advantages and Disadvantages of using Shared code from the Developers Perspective: A qualitative study
    Ribeiro, Danilo Monteiro
    da Silva, Fabio Q. B.
    Valenca, Diana
    Freitas, Elyda L. S. X.
    Franca, Cesar
    ESEM'16: PROCEEDINGS OF THE 10TH ACM/IEEE INTERNATIONAL SYMPOSIUM ON EMPIRICAL SOFTWARE ENGINEERING AND MEASUREMENT, 2016,
  • [43] How do Developers Improve Code Readability? An Empirical Study of Pull Requests
    Dantas, Carlos Eduardo C.
    Rocha, Adriano M.
    Maia, Marcelo A.
    2023 IEEE INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE AND EVOLUTION, ICSME, 2023, : 110 - 122
  • [44] MATCHING PROGRAM CODE GENERATORS TO SOFTWARE DEVELOPERS NEEDS
    RUSHINEK, A
    RUSHINEK, S
    OMEGA-INTERNATIONAL JOURNAL OF MANAGEMENT SCIENCE, 1990, 18 (03): : 315 - 327
  • [45] Assessing the Impact of Code Samples Evolution on Developers' Questions
    Menezes, Gabriel
    Braga, Willian
    Fontao, Awdren
    Hora, Andre
    Cafeo, Bruno
    36TH BRAZILIAN SYMPOSIUM ON SOFTWARE ENGINEERING, SBES 2022, 2022, : 321 - 330
  • [46] Quality Assessment of ChatGPT Generated Code and their Use by Developers
    Siddiq, Mohammed Latif
    Roney, Lindsay
    Zhang, Jiahao
    Santos, Joanna C. S.
    2024 IEEE/ACM 21ST INTERNATIONAL CONFERENCE ON MINING SOFTWARE REPOSITORIES, MSR, 2024, : 152 - 156
  • [47] Automatically Recommending Test Code Examples to Inexperienced Developers
    Pham, Raphael
    Stoliar, Yauheni
    Schneider, Kurt
    2015 10TH JOINT MEETING OF THE EUROPEAN SOFTWARE ENGINEERING CONFERENCE AND THE ACM SIGSOFT SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING (ESEC/FSE 2015) PROCEEDINGS, 2015, : 890 - 893
  • [48] ONE ANSWER FOR DEVELOPERS OF HARDWARE-DEPENDENT CODE
    FORNELL, P
    COMPUTER DESIGN, 1991, 30 (10): : 97 - 97
  • [49] What Do Developers Discuss about Code Comments?
    Rani, Pooja
    Birrer, Mathias
    Panichella, Sebastiano
    Ghafari, Mohammad
    Nierstrasz, Oscar
    IEEE 21ST INTERNATIONAL WORKING CONFERENCE ON SOURCE CODE ANALYSIS AND MANIPULATION (SCAM 2021), 2021, : 153 - 164
  • [50] Framework Code Samples: How Are They Maintained and Used by Developers?
    Menezes, Gabriel
    Cafeo, Bruno
    Hora, Andre
    2019 13TH ACM/IEEE INTERNATIONAL SYMPOSIUM ON EMPIRICAL SOFTWARE ENGINEERING AND MEASUREMENT (ESEM 2019), 2019, : 352 - 362