How developers perform feature location tasks: A human-centric and process-oriented exploratory study

Jinshui Wang, Xin Peng*, Zhenchang Xing, Wenyun Zhao

*Corresponding author for this work

Research output: Contribution to journalArticlepeer-review

30 Citations (Scopus)

Abstract

Developers often have to locate the parts of source code that contribute to a specific feature during software maintenance tasks. This activity, referred to as feature location in software engineering, is a human-intensive and knowledge-intensive process. Researchers have investigated (semi-)automatic analysis-based techniques to assist developers in such feature location activities. However, little work has been carried out on better understanding how developers perform feature location tasks. In this paper, we report an exploratory study of feature location process, consisting of three experiments in which developers were given unfamiliar systems and asked to complete six feature location tasks. Our study suggests that feature location process can be understood hierarchically at three levels of granularity: phase, pattern, and action. Furthermore, our statistical analysis shows that these feature location phases, patterns, and actions can be effectively imparted to junior developers and consequently improve their performance on feature location tasks. Our qualitative observations and interviews also suggest that external factors, for example, human factors, task properties, and in-process feedbacks, affect the choices and usage of different feature location patterns and actions. Our results open up new opportunities to feature location research, which could lead to better tool support and more rigorous feature location process.

Original languageEnglish
Pages (from-to)1193-1224
Number of pages32
JournalJournal of software: Evolution and Process
Volume25
Issue number11
DOIs
Publication statusPublished - Nov 2013
Externally publishedYes

Fingerprint

Dive into the research topics of 'How developers perform feature location tasks: A human-centric and process-oriented exploratory study'. Together they form a unique fingerprint.

Cite this