A Study of Variability Models and Languages in the Systems Software Domain

Variability models represent the common and variable features of products in a product line. Since the introduction of FODA in 1990, several variability modeling languages have been proposed in academia and industry, followed by hundreds of research papers on variability models and modeling. However, little is known about the practical use of such languages. We study the constructs, semantics, usage, and associated tools of two variability modeling languages, Kconfig and CDL, which are independently developed outside academia and used in large and significant software projects. We analyze 128 variability models found in 12 open--source projects using these languages. Our study 1) supports variability modeling research with empirical data on the real-world use of its flagship concepts. However, we 2) also provide requirements for concepts and mechanisms that are not commonly considered in academic techniques, and 3) challenge assumptions about size and complexity of variability models made in academic papers. These results are of interest to researchers working on variability modeling and analysis techniques and to designers of tools, such as feature dependency checkers and interactive product configurators.

[1]  Aruna Raja,et al.  Domain Specific Languages , 2010 .

[2]  Krzysztof Czarnecki,et al.  Feature-to-Code Mapping in Two Large Product Lines , 2010, SPLC.

[3]  Markus Stumptner,et al.  An Overview of Knowledge-Based Configuration , 1997, AI Commun..

[4]  Peter Kilpatrick,et al.  Challenges in the Application of Feature Modelling in Fixed Line Telecommunications , 2007, VaMoS.

[5]  Klaus Schmid,et al.  A customizable approach to full lifecycle variability management , 2004, Sci. Comput. Program..

[6]  Antonio Ruiz Cortés,et al.  Automated Reasoning on Feature Models , 2005, Seminal Contributions to Information Systems Engineering.

[7]  Krzysztof Czarnecki,et al.  Variability modeling in the real: a perspective from the operating systems domain , 2010, ASE '10.

[8]  Marek Hatala,et al.  Aspect-Oriented Feature Models , 2010, MoDELS.

[9]  Andreas Classen,et al.  A Preliminary Review on the Application of Feature Diagrams in Practice , 2010, VaMoS.

[10]  Roberto Di Cosmo,et al.  Feature Diagrams as Package Dependencies , 2010, SPLC.

[11]  Wolfgang Schröder-Preikschat,et al.  A quantitative analysis of aspects in the eCos kernel , 2006, EuroSys.

[12]  Wolfgang Stolz,et al.  Introducing PLA at Bosch Gasoline Systems: Experiences and Practices , 2004, SPLC.

[13]  Krzysztof Czarnecki,et al.  A study of non-Boolean constraints in variability models of an embedded operating system , 2011, SPLC '11.

[14]  Donald D. Cowan,et al.  S.P.L.O.T.: software product lines online tools , 2009, OOPSLA Companion.

[15]  Krzysztof Czarnecki,et al.  Staged configuration through specialization and multilevel configuration of feature models , 2005, Softw. Process. Improv. Pract..

[16]  Krzysztof Czarnecki,et al.  Generative programming - methods, tools and applications , 2000 .

[17]  Martin Becker Towards a General Model of Variability in Product Families , 2003 .

[18]  Krzysztof Czarnecki,et al.  Formalizing cardinality-based feature models and their specialization , 2005, Softw. Process. Improv. Pract..

[19]  Marco Sinnema,et al.  COVAMOF: A Framework for Modeling Variability in Software Product Families , 2004, SPLC.

[20]  Lianping Chen,et al.  A systematic review of evaluation of variability management approaches in software product lines , 2011, Inf. Softw. Technol..

[21]  Paul Grünbacher,et al.  Requirements for product derivation support: Results from a systematic literature review and an expert survey , 2010, Inf. Softw. Technol..

[22]  S. She,et al.  Formal Semantics of the Kconfig Language Technical Note , 2010 .

[23]  Pierre-Yves Schobbens,et al.  PloneGov as an Open Source Product Line , 2007 .

[24]  Dragan Gasevic,et al.  Modular Feature Models: Representation and Configuration , 2011, J. Res. Pract. Inf. Technol..

[25]  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.

[26]  Krzysztof Czarnecki,et al.  A user survey of configuration challenges in Linux and eCos , 2012, VaMoS '12.

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

[28]  Paul Grünbacher,et al.  Model-Based Customization and Deployment of Eclipse-Based Tools: Industrial Experiences , 2009, 2009 IEEE/ACM International Conference on Automated Software Engineering.

[29]  Markus Stumptner,et al.  An overview of knowledgedbased configuration , 1997 .

[30]  Krzysztof Czarnecki,et al.  SAT-based analysis of feature models is easy , 2009, SPLC.

[31]  Andreas Günter,et al.  Knowledge-Based Configuration: Survey and Future Directions , 1999, XPS.

[32]  Chanchal K. Roy,et al.  A Survey on Software Clone Detection Research , 2007 .

[33]  Marcilio Mendonça,et al.  Efficient Reasoning Techniques for Large Scale Feature Models , 2009 .

[34]  Sergio Segura,et al.  A Survey on the Automated Analyses of Feature Models , 2006, JISBD.

[35]  Paul Grünbacher,et al.  Integrated tool support for software product line engineering , 2007, ASE '07.

[36]  Sergio Segura,et al.  Automated analysis of feature models 20 years later: A literature review , 2010, Inf. Syst..

[37]  Sergio Segura,et al.  Debian Packages Repositories as Software Product Line Models. Towards Automated Analysis , 2010, ACoTA.

[38]  Paul Grünbacher,et al.  A qualitative study on user guidance capabilities in product configuration tools , 2012, 2012 Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering.

[39]  Klaus Schmid,et al.  Variability Modeling for Distributed Development - A Comparison with Established Practice , 2010, SPLC.

[40]  Tomi Männistö,et al.  A Koala-Based Approach for Modelling and Deploying Configurable Software Product Families , 2003, PFE.

[41]  Felix Lösch,et al.  Optimization of Variability in Software Product Lines , 2007, 11th International Software Product Line Conference (SPLC 2007).

[42]  Paul Grünbacher,et al.  Understanding Decision-Oriented Variability Modelling , 2008, SPLC.

[43]  Paul Grünbacher,et al.  Structuring the modeling space and supporting evolution in software product line engineering , 2010, J. Syst. Softw..

[44]  Paul Grünbacher,et al.  Domain-specific Adaptations of Product Line Variability Modeling , 2007, Situational Method Engineering.

[45]  Krzysztof Czarnecki,et al.  Evolution of the Linux Kernel Variability Model , 2010, SPLC.

[46]  Patrick Heymans,et al.  A Formal Semantics for Decision-oriented Variability Modeling with DOPLER , 2010, VaMoS.

[47]  Ilka Philippow,et al.  EXTENDING FEATURE DIAGRAMS WITH UML MULTIPLICITIES , 2002 .

[48]  Kyo Chul Kang,et al.  Feature-Oriented Domain Analysis (FODA) Feasibility Study , 1990 .

[49]  Pierre-Yves Schobbens,et al.  Generic semantics of feature diagrams , 2007, Comput. Networks.

[50]  Sooyong Park,et al.  SOFTWARE PRODUCT LINE ENGINEERING , 2006 .

[51]  Krzysztof Czarnecki,et al.  A survey of variability modeling in industrial practice , 2013, VaMoS.

[52]  Mikolás Janota,et al.  How to Complete an Interactive Configuration Process? , 2010, SOFSEM.

[53]  Tomi Männistö,et al.  Using a Configurator for Modelling and Configuring Software Product Lines based on Feature Models , 2004 .

[54]  Krzysztof Czarnecki,et al.  Cool features and tough decisions: a comparison of variability modeling approaches , 2012, VaMoS.

[55]  S. She,et al.  Formal Semantics of the CDL Language Technical Note , 2014 .

[56]  Krzysztof Czarnecki,et al.  Generating range fixes for software configuration , 2012, 2012 34th International Conference on Software Engineering (ICSE).

[57]  Alexander Egyed,et al.  A Scenario-Driven Approach to Trace Dependency Analysis , 2003, IEEE Trans. Software Eng..

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

[59]  Douglas C. Schmidt,et al.  Automated Diagnosis of Product-Line Configuration Errors in Feature Models , 2008, 2008 12th International Software Product Line Conference.

[60]  Wolfgang Schröder-Preikschat,et al.  Is The Linux Kernel a Software Product Line , 2007 .

[61]  Krzysztof Czarnecki,et al.  Unifying Software and Product Configuration: A Research Roadmap (to appear) , 2012 .

[62]  Sven Apel,et al.  A Case Study Implementing Features Using AspectJ , 2007, 11th International Software Product Line Conference (SPLC 2007).

[63]  Jeff Magee,et al.  The Koala Component Model for Consumer Electronics Software , 2000, Computer.

[64]  David M. Weiss,et al.  Software Product Line Engineering , 2005, SEKE.

[65]  Andreas Classen,et al.  Introducing TVL, a Text-based Feature Modelling Language , 2010, VaMoS' 2010.

[66]  Daniela E. Damian,et al.  Selecting Empirical Methods for Software Engineering Research , 2008, Guide to Advanced Empirical Software Engineering.

[67]  Lianping Chen,et al.  Variability management in software product lines: a systematic review , 2009, SPLC.

[68]  Klaus Schmid,et al.  A comparison of decision modeling approaches in product lines , 2011, VaMoS.

[69]  José Ángel Galindo Duarte,et al.  Debian Packages Repositories as Software Product Line Models. Towards Automated Analysis , 2010 .

[70]  John A. Stankovic,et al.  A survey of configurable, component-based operating systems for embedded applications , 2001 .

[71]  Wolfgang Schröder-Preikschat,et al.  Feature consistency in compile-time-configurable system software: facing the linux 10,000 feature problem , 2011, EuroSys '11.

[72]  Klaus Schmid,et al.  Configuration in Industrial Product Families - The ConIPF Methodology , 2007, Künstliche Intell..

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

[74]  Marco Sinnema,et al.  Classifying variability modeling techniques , 2007, Inf. Softw. Technol..

[75]  Anthony Massa,et al.  Embedded Software Development with eCos , 2002 .

[76]  Donald D. Cowan,et al.  Efficient compilation techniques for large scale feature models , 2008, GPCE '08.

[77]  Kathleen M. Eisenhardt,et al.  Theory Building From Cases: Opportunities And Challenges , 2007 .

[78]  Sergio Segura,et al.  BeTTy: benchmarking and testing on the automated analysis of feature models , 2012, VaMoS.