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 条
  • [1] Strategies for Managing Citizen Developers and No-Code Tools
    Biedova, Olga
    Ives, Blake
    Male, David
    Moore, Michael
    MIS QUARTERLY EXECUTIVE, 2024, 23 (02)
  • [2] How Developers Search for Code: A Case Study
    Sadowski, Caitlin
    Stolee, Kathryn T.
    Elbaum, Sebastian
    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, : 191 - 201
  • [3] A Study on Guiding Programmers' Code Navigation with a Graphical Code Recommender
    Lee, Seonah
    Kang, Sungwon
    SOFTWARE ENGINEERING RESEARCH, MANAGEMENT AND APPLICATIONS 2011, 2012, 377 : 61 - 75
  • [4] Interviews and Observation of Blind Software Developers at Work to Understand Code Navigation Challenges
    Albusays, Khaled
    Ludi, Stephanie
    Huenerfauth, Matt
    PROCEEDINGS OF THE 19TH INTERNATIONAL ACM SIGACCESS CONFERENCE ON COMPUTERS AND ACCESSIBILITY (ASSETS'17), 2017, : 91 - 100
  • [5] How Do Developers Refactor Code to Improve Code Reusability?
    AlOmar, Eman Abdullah
    Rodriguez, Philip T.
    Bowman, Jordan
    Wang, Tianjia
    Adepoju, Benjamin
    Lopez, Kevin
    Newman, Christian
    Ouni, Ali
    Mkaouer, Mohamed Wiem
    REUSE IN EMERGING SOFTWARE ENGINEERING PRACTICES, ICSR 2020, 2020, 12541 : 261 - 276
  • [6] A field study of how developers locate features in source code
    Damevski, Kostadin
    Shepherd, David
    Pollock, Lori
    EMPIRICAL SOFTWARE ENGINEERING, 2016, 21 (02) : 724 - 747
  • [7] Code Coverage for Suite Evaluation by Developers
    Gopinath, Rahul
    Jensen, Carlos
    Groce, Alex
    36TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE 2014), 2014, : 72 - 82
  • [8] A field study of how developers locate features in source code
    Kostadin Damevski
    David Shepherd
    Lori Pollock
    Empirical Software Engineering, 2016, 21 : 724 - 747
  • [9] Developers talking about code quality
    Jürgen Börstler
    Kwabena E. Bennin
    Sara Hooshangi
    Johan Jeuring
    Hieke Keuning
    Carsten Kleiner
    Bonnie MacKellar
    Rodrigo Duran
    Harald Störrle
    Daniel Toll
    Jelle van Assema
    Empirical Software Engineering, 2023, 28
  • [10] An Investigative Study on How Developers Filter and Prioritize Code Smells
    Sae-Lim, Natthawute
    Hayashi, Shinpei
    Saeki, Motoshi
    IEICE TRANSACTIONS ON INFORMATION AND SYSTEMS, 2018, E101D (07) : 1733 - 1742