Evolution of the Linux Kernel Variability Model

Understanding the challenges faced by real projects in evolving variability models, is a prerequisite for providing adequate support for such undertakings. We study the evolution of a model describing features and configurations in a large product line--the Linux kernel variability model. We analyze this evolution quantitatively and qualitatively. Our primary finding is that the Linux kernel model appears to evolve surprisingly smoothly. In the analyzed period, the number of features had doubled, and still the structural complexity of the model remained roughly the same. Furthermore, we provide an in-depth look at the effect of the kernel's development methodologies on the evolution of its model. We also include evidence about edit operations applied in practice, evidence of challenges in maintaining large models, and a range of recommendations (and open problems) for builders of modeling tools.

[1]  K. H. Bennett,et al.  Journal of software maintenance : research and practice , 1989 .

[2]  Jan Bosch,et al.  Evolution in software product lines: two cases , 1999, J. Softw. Maintenance Res. Pract..

[3]  Michael W. Godfrey,et al.  Evolution in open source software: a case study , 2000, Proceedings 2000 International Conference on Software Maintenance.

[4]  Perdita Stevens,et al.  Modelling Recursive Calls with UML State Diagrams , 2003, FASE.

[5]  Carlos José Pereira de Lucena,et al.  Refactoring product lines , 2006, GPCE '06.

[6]  Wolfgang De Meuter,et al.  The Evolution of the Linux Build System , 2007, Electron. Commun. Eur. Assoc. Softw. Sci. Technol..

[7]  Paul Grünbacher,et al.  Supporting Evolution in Model-Based Product Line Engineering , 2008, 2008 12th International Software Product Line Conference.

[8]  Mikolás Janota,et al.  Model Construction with External Constraints: An Interactive Journey from Semantics to Syntax , 2008, MoDELS.

[9]  Wolfgang Schröder-Preikschat,et al.  The Linux Kernel Configurator as a Feature Modeling Tool , 2008, SPLC.

[10]  Sven Apel,et al.  Type-Checking Software Product Lines - A Formal Approach , 2008, 2008 23rd IEEE/ACM International Conference on Automated Software Engineering.

[11]  Patrick Heymans,et al.  Variability Modeling Challenges from the Trenches of an Open Source Product Line Re-engineering Project , 2008, 2008 12th International Software Product Line Conference.

[12]  Mikolás Janota,et al.  Formal Approach to Integrating Feature and Architecture Models , 2008, FASE.

[13]  Danilo Beuche,et al.  Running a software product line: standing still is going backwards , 2009, SPLC.

[14]  Daniel M. Germán,et al.  The promises and perils of mining git , 2009, 2009 6th IEEE International Working Conference on Mining Software Repositories.

[15]  Thomas Thüm,et al.  Reasoning about edits to feature models , 2009, 2009 IEEE 31st International Conference on Software Engineering.

[16]  Wolfgang Schröder-Preikschat,et al.  Dead or Alive: finding zombie features in the Linux kernel , 2009, FOSD '09.

[17]  Krzysztof Czarnecki,et al.  The Variability Model of The Linux Kernel , 2010, VaMoS.

[18]  Kevin Lano,et al.  Slicing of UML models using model transformations , 2010, MODELS'10.

[19]  Dror G. Feitelson,et al.  The Linux kernel as a case study in software evolution , 2010, J. Syst. Softw..