Coevolution of variability models and related software artifacts

被引:31
作者
Passos, Leonardo [1 ]
Teixeira, Leopoldo [3 ]
Dintzner, Nicolas [5 ]
Apel, Sven [6 ]
Wasowski, Andrzej [7 ]
Czarnecki, Krzysztof [1 ]
Borba, Paulo [4 ]
Guo, Jianmei [2 ]
机构
[1] Univ Waterloo, Elect & Comp Engn, Waterloo, ON, Canada
[2] Univ Waterloo, Dept Elect & Comp Engn, Waterloo, ON, Canada
[3] Univ Fed Pernambuco, Informat Ctr, Recife, PE, Brazil
[4] Univ Fed Pernambuco, Informat Ctr, Software Dev, Recife, PE, Brazil
[5] Delft Univ Technol, Delft, Netherlands
[6] Univ Passau, Software Prod Lines, Passau, Germany
[7] IT Univ Copenhagen, Copenhagen, Denmark
关键词
Variability; Evolution; Software product lines; Patterns; Linux; PROGRAM FEATURES; PRODUCT LINES; CODE; EVOLUTION; LINUX;
D O I
10.1007/s10664-015-9364-x
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Variant-rich software systems offer a large degree of customization, allowing users to configure the target system according to their preferences and needs. Facing high degrees of variability, these systems often employ variability models to explicitly capture user-configurable features (e.g., systems options) and the constraints they impose. The explicit representation of features allows them to be referenced in different variation points across different artifacts, enabling the latter to vary according to specific feature selections. In such settings, the evolution of variability models interplays with the evolution of related artifacts, requiring the two to evolve together, or coevolve. Interestingly, little is known about how such coevolution occurs in real-world systems, as existing research has focused mostly on variability evolution as it happens in variability models only. Furthermore, existing techniques supporting variability evolution are usually validated with randomly-generated variability models or evolution scenarios that do not stem from practice. As the community lacks a deep understanding of how variability evolution occurs in real-world systems and how it relates to the evolution of different kinds of software artifacts, it is not surprising that industry reports existing tools and solutions ineffective, as they do not handle the complexity found in practice. Attempting to mitigate this overall lack of knowledge and to support tool builders with insights on how variability models coevolve with other artifact types, we study a large and complex real-world variant-rich software system: the Linux kernel. Specifically, we extract variability-coevolution patterns capturing changes in the variability model of the Linux kernel with subsequent changes in Makefiles and C source code. From the analysis of the patterns, we report on findings concerning evolution principles found in the kernel, and we reveal deficiencies in existing tools and theory when handling changes captured by our patterns.
引用
收藏
页码:1744 / 1793
页数:50
相关论文
共 69 条
[1]  
Alves V., 2006, Proceedings of the 5th international conference on Generative Programming and Component Engineering, P201, DOI DOI 10.1145/1173706
[2]  
[Anonymous], ANTIPATTERNS IDENTIF
[3]  
[Anonymous], 2013, P 7 INT WORKSH VAR M, DOI DOI 10.1145/2430502.2430526
[4]  
[Anonymous], 2010, Linux Kernel Development
[5]  
[Anonymous], 2014, MSR 14, DOI [DOI 10.1145/2597073.2597124, 10.1145/2597073.2597124]
[6]  
[Anonymous], 2016, Feature-Oriented Software Product Lines
[7]   Voice of Evidence Managing Variability in Software Product Lines [J].
Babar, Muhammad Ali ;
Chen, Lianping ;
Shull, Forrest .
IEEE SOFTWARE, 2010, 27 (03) :89-+
[8]   Service-Oriented Dynamic Software Product Lines [J].
Baresi, Luciano ;
Guinea, Sam ;
Pasquale, Liliana .
COMPUTER, 2012, 45 (10) :42-48
[9]   GENESIS - AN EXTENSIBLE DATABASE-MANAGEMENT SYSTEM [J].
BATORY, DS ;
BARNETT, JR ;
GARZA, JF ;
SMITH, KP ;
TSUKUDA, K ;
TWICHELL, BC ;
WISE, TE .
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 1988, 14 (11) :1711-1730
[10]  
BERGER T, 2010, COMPUTER SCIENCE