Where is my feature and what is it about? A case study on recovering feature facets
Journal article, 2019

Developers commonly use features to define, manage, and communicate functionalities of a system. Unfortunately, the locations of features in code and other characteristics (feature facets), relevant for evolution and maintenance, are often poorly documented. Since developers change, and knowledge fades with time, such information often needs to be recovered. Modern projects boast a richness of information sources, such as pull requests, release logs, and otherwise specified domain knowledge. However, it is largely unknown from what sources the features, their locations, and their facets can be recovered. We present an exploratory study on identifying such information in two popular, variant-rich, and long-living systems: The 3D-printer firmware Marlin and the Android application Bitcoin-wallet. Besides the available information sources, we also investigated the projects' communities, communications, and development cultures. Our results show that a multitude of information sources (e.g., commit messages and pull requests) is helpful to recover features, locations, and facets to different extents. Pull requests were the most valuable source to recover facets, followed by commit messages and the issue tracker. As many of the studied information sources are, so far, rarely exploited in techniques for recovering features and their facets, we hope to inspire researchers and tool builders with our results. (C) 2019 Elsevier Inc. All rights reserved.

Feature facets

Feature location

Software product line

Marlin

Case study

Bitcoin-wallet

Author

Jacob Krueger

Otto von Guericke Universitaet Magdeburg

Harz University of Applied Sciences

Mukelabai Mukelabai

University of Gothenburg

Chalmers, Computer Science and Engineering (Chalmers), Software Engineering (Chalmers), Software Engineering for Cyber Physical Systems

Wanzi Gu

Hui Shen

Regina Hebig

University of Gothenburg

Chalmers, Computer Science and Engineering (Chalmers), Software Engineering (Chalmers), Software Engineering for People, Architecture, Requirements and Traceability

Thorsten Berger

University of Gothenburg

Chalmers, Computer Science and Engineering (Chalmers), Software Engineering (Chalmers), Software Engineering for Cyber Physical Systems

Journal of Systems and Software

0164-1212 (ISSN)

Vol. 152 239-253

Subject Categories

Information Studies

Information Systemes, Social aspects

Computer Science

DOI

10.1016/j.jss.2019.01.057

More information

Latest update

8/19/2019