TY - JOUR
T1 - How developers perform feature location tasks
T2 - A human-centric and process-oriented exploratory study
AU - Wang, Jinshui
AU - Peng, Xin
AU - Xing, Zhenchang
AU - Zhao, Wenyun
PY - 2013/11
Y1 - 2013/11
N2 - 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.
AB - 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.
KW - Cognitive process
KW - Conceptual framework
KW - Feature location
KW - Human study
UR - http://www.scopus.com/inward/record.url?scp=84901036770&partnerID=8YFLogxK
U2 - 10.1002/smr.1593
DO - 10.1002/smr.1593
M3 - Article
SN - 1532-060X
VL - 25
SP - 1193
EP - 1224
JO - Journal of software: Evolution and Process
JF - Journal of software: Evolution and Process
IS - 11
ER -