• Publications
  • Influence
Who should fix this bug?
Open source development projects typically support an open bug repository to which both developers and users can report bugs. The reports that appear in this repository must be triaged to determineExpand
  • 852
  • 76
  • PDF
An empirical study of code clone genealogies
It has been broadly assumed that code clones are inherently bad and that eliminating clones by refactoring would solve the problems of code clones. To investigate the validity of this assumption, weExpand
  • 551
  • 53
  • PDF
Using task context to improve programmer productivity
When working on a large software system, a programmer typically spends an inordinate amount of time sifting through thousands of artifacts to find just the subset of information needed to complete anExpand
  • 440
  • 49
  • PDF
Automatic bug triage using text categorization
Bug triage, deciding what to do with an incoming bug report, is taking up increasing amount of developer resources in large open-source projects. In this paper, we propose to apply machine learningExpand
  • 382
  • 42
  • PDF
Do Crosscutting Concerns Cause Defects?
There is a growing consensus that crosscutting concerns harm code quality. An example of a crosscutting concern is a functional requirement whose implementation is distributed across multipleExpand
  • 258
  • 39
  • PDF
Persuasive technology in the real world: a study of long-term use of activity sensing devices for fitness
Persuasive technology to motivate healthy behavior is a growing area of research within HCI and ubiquitous computing. The emergence of commercial wearable devices for tracking health- andExpand
  • 311
  • 35
  • PDF
Concern graphs: finding and describing concerns using structural program dependencies
Many maintenance tasks address concerns, or features, that are not well modularized in the source code comprising a system. Existing approaches available to help software developers locate and manageExpand
  • 375
  • 35
  • PDF
Predicting source code changes by mining change history
Software developers are often faced with modification tasks that involve source which is spread across a code base. Some dependencies between source code, such as those between source code written inExpand
  • 530
  • 33
  • PDF
Software Reflexion Models: Bridging the Gap between Design and Implementation
The artifacts constituting a software system often drift apart over time. We have developed the software reflexion model technique to help engineers perform various software engineering tasks byExpand
  • 407
  • 32
  • PDF
Mylar: a degree-of-interest model for IDEs
Even when working on a well-modularized software system, programmers tend to spend more time navigating the code than working with it. This phenomenon arises because it is impossible to modularizeExpand
  • 334
  • 32
  • PDF