Advanced Search

Browse by Discipline

Scientific Societies

E-print Alerts

Add E-prints

E-print Network

  Advanced Search  

An Exploratory Study of How Developers Seek, Relate, and Collect Relevant Information

Summary: An Exploratory Study of How Developers
Seek, Relate, and Collect Relevant Information
during Software Maintenance Tasks
Andrew J. Ko, Brad A. Myers, Senior Member, IEEE, Michael J. Coblenz, and Htet Htet Aung
Abstract--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.


Source: Anderson, Richard - Department of Computer Science and Engineering, University of Washington at Seattle
Myers, Brad A. - Human Computer Interaction Institute, School of Computer Science, Carnegie Mellon University


Collections: Computer Technologies and Information Sciences