Results 1 -
3 of
3
An Exploratory Study of How Developers Seek, Relate, and Collect Relevant Information during Software Maintenance Tasks
- IEEE TRANSACTIONS ON SOFTWARE ENGINEERING
, 2006
"... 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 debug ..."
Abstract
-
Cited by 44 (12 self)
- Add to MetaCart
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.
Asking and Answering Questions about . . .
, 2008
"... Program understanding accounts for the bulk of software development work. Unfortunately, little is known about why it is so dif9icult. To investigate this problem, multiple developer populations were observed debugging. These studies revealed that developers start by asking questions about program b ..."
Abstract
- Add to MetaCart
Program understanding accounts for the bulk of software development work. Unfortunately, little is known about why it is so dif9icult. To investigate this problem, multiple developer populations were observed debugging. These studies revealed that developers start by asking questions about program behavior, but must answer by speculating about the code responsible. For example, a developer wondering, “Why didn’t this button do anything after I pressed it? ” must conceive of a potential explanation such as “Maybe because its event handler wasn’t called ” and then use breakpoint debuggers, print statements, and other low‐level tools that instrument and analyze code to verify their explanation. The studies showed that not only is this process poorly supported by current tools, but also that developers form valid explanations for only 10‐20 % of their attempts. A new kind of program understanding tool called a Whyline was developed, which allows a developer to ask “why did ” and “why didn’t” questions directly about a program’s output. In response, the tool determines which parts of the system and its
Asking and Answering Questions about the Causes . . .
, 2008
"... Program understanding accounts for the bulk of software development work. Unfortunately, little is known about why it is so dif
Abstract
- Add to MetaCart
Program understanding accounts for the bulk of software development work. Unfortunately, little is known about why it is so dif<icult. To investigate this problem, multiple developer populations were observed debugging. These studies revealed that developers start by asking questions about program behavior, but must answer by speculating about the code responsible. For example, a developer wondering, “Why didn’t this button do anything after I pressed it? ” must conceive of a potential explanation such as “Maybe because its event handler wasn’t called ” and then use breakpoint debuggers, print statements, and other low‐level tools that instrument and analyze code to verify their explanation. The studies showed that not only is this process poorly supported by current tools, but also that developers form valid explanations for only 10‐20 % of their attempts. A new kind of program understanding tool called a Whyline was developed, which allows a developer to ask “why did” and “why didn’t” questions directly about a program’s output. In response, the tool determines which parts of the system and its

