Abstract
Although software product lines are widely used in practice, their maintenance is challenging. Features as units of behaviour can be heavily scattered across the source code of a product line, hindering modular reasoning. To alleviate this problem, feature interfaces aim at enhancing modular reasoning about features. However, considering all members of a feature interface is cumbersome, especially due to the large number of members arising in practice. To address this problem, we present an approach to group members of a feature interface. We argue that often only a subset of all interface members is relevant to a single maintenance task. Therefore, we
propose a graph representation that is able to capture the collaboration between members and apply a clustering algorithm to it to group highly-related members and segregate non-related members.
On a set of ten versions of a real-world product line, we evaluate the effectiveness of our approach, by comparing the two types of feature interfaces (segregated vs. original interfaces) with co-change information from the version-control system. We found a potential reduction of 62% of the interface members to be considered in a single maintenance task. This way, the effort to reason about features can be reduced.
propose a graph representation that is able to capture the collaboration between members and apply a clustering algorithm to it to group highly-related members and segregate non-related members.
On a set of ten versions of a real-world product line, we evaluate the effectiveness of our approach, by comparing the two types of feature interfaces (segregated vs. original interfaces) with co-change information from the version-control system. We found a potential reduction of 62% of the interface members to be considered in a single maintenance task. This way, the effort to reason about features can be reduced.
Original language | English |
---|---|
Title of host publication | MODULARITY 2016 Proceedings of the 15th International Conference on Modularity |
Pages | 1-12 |
Number of pages | 12 |
DOIs | |
Publication status | Published - 14 Mar 2016 |