Rights statement: © ACM, 2016. This is the author's version of the work. It is posted here by permission of ACM for your personal use. Not for redistribution. The definitive version was published in MODULARITY 2016 Proceedings of the 15th International Conference on Modularity, 2016 http://doi.acm.org/10.1145/2889443.2889451
Accepted author manuscript, 901 KB, PDF document
Available under license: CC BY: Creative Commons Attribution 4.0 International License
Final published version
Research output: Contribution in Book/Report/Proceedings - With ISBN/ISSN › Conference contribution/Paper › peer-review
Research output: Contribution in Book/Report/Proceedings - With ISBN/ISSN › Conference contribution/Paper › peer-review
}
TY - GEN
T1 - Segregating feature interfaces to support software product line maintenance
AU - Cafeo, Bruno
AU - Hunsen, Claus
AU - Garcia, Alessandro
AU - Apel, Sven
AU - Lee, Jaejoon
N1 - © ACM, 2016. This is the author's version of the work. It is posted here by permission of ACM for your personal use. Not for redistribution. The definitive version was published in MODULARITY 2016 Proceedings of the 15th International Conference on Modularity, 2016 http://doi.acm.org/10.1145/2889443.2889451
PY - 2016/3/14
Y1 - 2016/3/14
N2 - 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, wepropose 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.
AB - 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, wepropose 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.
KW - Software Product Lines
KW - Feature Interface
KW - Feature Dependencies
U2 - 10.1145/2889443.2889451
DO - 10.1145/2889443.2889451
M3 - Conference contribution/Paper
SN - 9781450339957
SP - 1
EP - 12
BT - MODULARITY 2016 Proceedings of the 15th International Conference on Modularity
PB - ACM
CY - New York
T2 - Modularity'16.
Y2 - 14 March 2016 through 17 March 2016
ER -