Standard

Coevolution of variability models and related software artifacts : A fresh look at evolution patterns in the Linux kernel. / Passos, Leonardo; Teixeira, Leopoldo; Dintzner, Nicolas; Apel, Sven; Wąsowski, Andrzej; Czarnecki, Krzysztof; Borba, Paulo; Guo, Jianmei.

In: Empirical Software Engineering, Vol. 21, No. 4, 05.05.2015, p. 1744-1793.

Research output: Contribution to journalArticleScientificpeer-review

Harvard

Passos, L, Teixeira, L, Dintzner, N, Apel, S, Wąsowski, A, Czarnecki, K, Borba, P & Guo, J 2015, 'Coevolution of variability models and related software artifacts: A fresh look at evolution patterns in the Linux kernel' Empirical Software Engineering, vol. 21, no. 4, pp. 1744-1793. https://doi.org/10.1007/s10664-015-9364-x

APA

Passos, L., Teixeira, L., Dintzner, N., Apel, S., Wąsowski, A., Czarnecki, K., ... Guo, J. (2015). Coevolution of variability models and related software artifacts: A fresh look at evolution patterns in the Linux kernel. Empirical Software Engineering, 21(4), 1744-1793. https://doi.org/10.1007/s10664-015-9364-x

Vancouver

Passos L, Teixeira L, Dintzner N, Apel S, Wąsowski A, Czarnecki K et al. Coevolution of variability models and related software artifacts: A fresh look at evolution patterns in the Linux kernel. Empirical Software Engineering. 2015 May 5;21(4):1744-1793. https://doi.org/10.1007/s10664-015-9364-x

Author

Passos, Leonardo ; Teixeira, Leopoldo ; Dintzner, Nicolas ; Apel, Sven ; Wąsowski, Andrzej ; Czarnecki, Krzysztof ; Borba, Paulo ; Guo, Jianmei. / Coevolution of variability models and related software artifacts : A fresh look at evolution patterns in the Linux kernel. In: Empirical Software Engineering. 2015 ; Vol. 21, No. 4. pp. 1744-1793.

BibTeX

@article{4ba3969f17464023b894caf249a0ea93,
title = "Coevolution of variability models and related software artifacts: A fresh look at evolution patterns in the Linux kernel",
abstract = "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.",
keywords = "Evolution, Linux, Patterns, Software product lines, Variability",
author = "Leonardo Passos and Leopoldo Teixeira and Nicolas Dintzner and Sven Apel and Andrzej Wąsowski and Krzysztof Czarnecki and Paulo Borba and Jianmei Guo",
year = "2015",
month = "5",
day = "5",
doi = "10.1007/s10664-015-9364-x",
language = "English",
volume = "21",
pages = "1744--1793",
journal = "Empirical Software Engineering",
issn = "1382-3256",
publisher = "Springer",
number = "4",

}

RIS

TY - JOUR

T1 - Coevolution of variability models and related software artifacts

T2 - Empirical Software Engineering

AU - Passos, Leonardo

AU - Teixeira, Leopoldo

AU - Dintzner, Nicolas

AU - Apel, Sven

AU - Wąsowski, Andrzej

AU - Czarnecki, Krzysztof

AU - Borba, Paulo

AU - Guo, Jianmei

PY - 2015/5/5

Y1 - 2015/5/5

N2 - 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.

AB - 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.

KW - Evolution

KW - Linux

KW - Patterns

KW - Software product lines

KW - Variability

UR - http://www.scopus.com/inward/record.url?scp=84928713229&partnerID=8YFLogxK

U2 - 10.1007/s10664-015-9364-x

DO - 10.1007/s10664-015-9364-x

M3 - Article

VL - 21

SP - 1744

EP - 1793

JO - Empirical Software Engineering

JF - Empirical Software Engineering

SN - 1382-3256

IS - 4

ER -

ID: 9250079