Where is my feature and what is it about? A case study on recovering feature facets

•The Marlin community has a feature-oriented development process, which is well-defined and enforced.•Different information sources in our subject systems can be utilized to recover feature locations.•Search strategies for different information sources differed in complexity and effort.•Feature face...

Full description

Saved in:
Bibliographic Details
Published in:The Journal of systems and software Vol. 152; no. June; pp. 239 - 253
Main Authors: Krüger, Jacob, Mukelabai, Mukelabai, Gu, Wanzi, Shen, Hui, Hebig, Regina, Berger, Thorsten
Format: Journal Article
Language:English
Published: Elsevier Inc 01-06-2019
Subjects:
Online Access:Get full text
Tags: Add Tag
No Tags, Be the first to tag this record!
Description
Summary:•The Marlin community has a feature-oriented development process, which is well-defined and enforced.•Different information sources in our subject systems can be utilized to recover feature locations.•Search strategies for different information sources differed in complexity and effort.•Feature facets could be recovered from different information sources to varying extent.•Dynamic and static variability is used in combination in our subject systems and may be hidden. 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.
ISSN:0164-1212
1873-1228
DOI:10.1016/j.jss.2019.01.057