Analysing the Linux kernel feature model changes using FMDiff

Nicolas Dintzner*, Arie van Deursen, Martin Pinzger

*Corresponding author for this work

Research output: Contribution to journalArticleScientificpeer-review

12 Citations (Scopus)
85 Downloads (Pure)

Abstract

Evolving a large scale, highly variable system is a challenging task. For such a system, evolution operations often require to update consistently both their implementation and its feature model. In this context, the evolution of the feature model closely follows the evolution of the system. The purpose of this work is to show that fine-grained feature changes can be used to guide the evolution of the highly variable system. In this paper, we present an approach to obtain fine-grained feature model changes with its supporting tool “FMDiff”. Our approach is tailored for Kconfig-based variability models and proposes a feature change classification detailing changes in features, their attributes and attribute values. We apply our approach to the Linux kernel feature model, extracting feature changes occurring in sixteen official releases. In contrast to previous studies, we found that feature modifications are responsible for most of the changes. Then, by taking advantage of the multi-platform aspect of the Linux kernel, we observe the effects of a feature change across the different architecture-specific feature models of the kernel. We found that between 10 and 50 % of feature changes impact all the architecture-specific feature models, offering a new perspective on studies of the evolution of the Linux feature model and development practices of its developers.

Original languageEnglish
Pages (from-to)55-76
Number of pages22
JournalSoftware and Systems Modeling
Volume16
Issue number1
DOIs
Publication statusPublished - Feb 2017

Keywords

  • Evolution
  • Feature model
  • Software product line

Fingerprint

Dive into the research topics of 'Analysing the Linux kernel feature model changes using FMDiff'. Together they form a unique fingerprint.

Cite this