Academic
Publications
An Exploratory Study of How Developers Seek, Relate, and Collect Relevant Information during Software Maintenance Tasks

An Exploratory Study of How Developers Seek, Relate, and Collect Relevant Information during Software Maintenance Tasks,10.1109/TSE.2006.116,IEEE Tran

An Exploratory Study of How Developers Seek, Relate, and Collect Relevant Information during Software Maintenance Tasks   (Citations: 57)
BibTex | RIS | RefWorks Download
Much of software developers' time is spent understanding unfamiliar code. To better understand how developers gain this understanding and how software development environments might be involved, a study was performed in which developers were given an unfamiliar program and asked to work on two debugging tasks and three enhancement tasks for 70 minutes. The study found that developers interleaved three activities. They began by searching for relevant code both manually and using search tools; however, they based their searches on limited and misrepresentative cues in the code, environment, and executing program, often leading to failed searches. When developers found relevant code, they followed its incoming and outgoing dependencies, often returning to it and navigating its other dependencies; while doing so, however, Eclipse's navigational tools caused significant overhead. Developers collected code and other information that they believed would be necessary to edit, duplicate, or otherwise refer to later by encoding it in the interactive state of Eclipse's package explorer, file tabs, and scroll bars. However, developers lost track of relevant code as these interfaces were used for other tasks, and developers were forced to find it again. These issues caused developers to spend, on average, 35 percent of their time performing the mechanics of navigation within and between source files. These observations suggest a new model of program understanding grounded in theories of information foraging and suggest ideas for tools that help developers seek, relate, and collect information in a more effective and explicit manner. Index Terms—Program investigation, program understanding, program comprehension, empirical software engineering, information foraging, information scent.
Journal: IEEE Transactions on Software Engineering - TSE , vol. 32, no. 12, pp. 971-987, 2006
Cumulative Annual
View Publication
The following links allow you to view full publications. These links are maintained by other sources not affiliated with Microsoft Academic Search.
    • ...Ko et al. reported on programmers using the Eclipse development environment on small maintenance tasks [22]...

    Annie T. T. Yinget al. The Influence of the Task on Programmer Behaviour

    • ...Programmers form working sets of one or more fragments corresponding to places of interest [2]; with larger code bases, these fragments are scattered across multiple methods in multiple classes...
    • ...Perhaps as a result, programmers may spend on average 35% of their time in IDEs actively navigating among working set fragments [2], since they can only easily see one or two fragments at a time...
    • ...The overall motivation for a new user interface for traditional filebased programming is based on many studies that have shown the difficulties with existing environments [5] [2] [6] [7]...
    • ...We evaluated the performance of Code Bubbles using a vectorbased drawing application we created, similar at a high level to that used in [2] in Java, called ShapeDraw...

    Andrew Bragdonet al. Code bubbles: rethinking the user interface paradigm of integrated dev...

    • ...Programmers form working sets of one or more code fragments corresponding to places of interest [2]; with larger code bases, these fragments are scattered across multiple methods in multiple classes...
    • ...Perhaps as a result, programmers may spend an average 35% of their time just navigating among code fragments [2], since they can only see one or two at a time...
    • ...Several studies show a range of difficulties with common programming tasks which can be traced to UI designs that complicate access to working sets [7] [2] [8] [9]...
    • ...Thus, to control for past experience, we used students for the study (consistent with [2])...
    • ...We evaluated the performance of Code Bubbles using a vector-based drawing application we created, similar at a high level to that used in [2] in Java, called ShapeDraw...
    • ...Consistent with [2], code was uncommented because it was unclear how up-to-date/useful the comments should be to be representative...
    • ...Across both tasks, CB users (Mean: 3.5 min, SD: 1.6) spent significantly less time than EC users (Mean: 11.6 min, SD: 3.08) navigating ሺݐ ଵ଼ ൌ 7.4, ݌ ൏ 0.0001ሻ . This navigation time represents 16% of the total task time spent on both tasks for EC users and 7% of the time for CB users ሺݐ ଵ଼ ൌ 5.47, ݌ ൏ 0.0001ሻ (we attribute the lower EC navigation time percentage than reported in [2] to the fact that we administered one task at a time, and ...

    Andrew Bragdonet al. Code bubbles: a working set-based interface for code understanding and...

    • ...Beginning at an origin method, developers use cues such as method names to pick which of many calls to traverse towards targets, and remember information they collect [11]...

    Thomas D. LaTozaet al. Developers ask reachability questions

    • ...For example, despite efforts to develop source code search tools to help programmers navigate, Ko et al.’s empirical investigation of programmers’ frequent information seeking during debugging showed that only half of the searches returned task-relevant code [16]...

    Joseph Lawranceet al. Reactive information foraging for evolving goals

Sort by: