Principles of feature modeling

Feature models are arguably one of the most intuitive and successful notations for modeling the features of a variant-rich software system. Feature models help developers to keep an overall understanding of the system, and also support scoping, planning, development, variant derivation, configuration, and maintenance activities that sustain the system's long-term success. Unfortunately, feature models are difficult to build and evolve. Features need to be identified, grouped, organized in a hierarchy, and mapped to software assets. Also, dependencies between features need to be declared. While feature models have been the subject of three decades of research, resulting in many feature-modeling notations together with automated analysis and configuration techniques, a generic set of principles for engineering feature models is still missing. It is not even clear whether feature models could be engineered using recurrent principles. Our work shows that such principles in fact exist. We analyzed feature-modeling practices elicited from ten interviews conducted with industrial practitioners and from 31 relevant papers. We synthesized a set of 34 principles covering eight different phases of feature modeling, from planning over model construction, to model maintenance and evolution. Grounded in empirical evidence, these principles provide practical, context-specific advice on how to perform feature modeling, describe what information sources to consider, and highlight common characteristics of feature models. We believe that our principles can support researchers and practitioners enhancing feature-modeling tooling, synthesis, and analyses techniques, as well as scope future research.

[1]  Claes Wohlin,et al.  Guidelines for snowballing in systematic literature studies and a replication in software engineering , 2014, EASE '14.

[2]  Pearl Brereton,et al.  Lessons from applying the systematic literature review process within the software engineering domain , 2007, J. Syst. Softw..

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

[4]  Paul Grünbacher,et al.  Feature modeling of two large-scale industrial software systems: Experiences and lessons learned , 2015, 2015 ACM/IEEE 18th International Conference on Model Driven Engineering Languages and Systems (MODELS).

[5]  Paul Clements,et al.  Software product lines - practices and patterns , 2001, SEI series in software engineering.

[6]  Ekaterina Boutkova,et al.  Experience with Variability Management in Requirement Specifications , 2011, 2011 15th International Software Product Line Conference.

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

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

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

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

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

[12]  Mathieu Acher,et al.  FAMILIAR: A domain-specific language for large scale management of feature models , 2013, Sci. Comput. Program..

[13]  Krzysztof Czarnecki,et al.  An Exploratory Study of Cloning in Industrial Software Product Lines , 2013, 2013 17th European Conference on Software Maintenance and Reengineering.

[14]  Manfred Reichert,et al.  Towards Integrated Variant Management in Global Software Engineering: An Experience Report , 2013, 2013 IEEE 8th International Conference on Global Software Engineering.

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

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

[17]  Krzysztof Czarnecki,et al.  A Study of Variability Models and Languages in the Systems Software Domain , 2013, IEEE Transactions on Software Engineering.

[18]  Krzysztof Czarnecki,et al.  Variability mechanisms in software ecosystems , 2014, Inf. Softw. Technol..

[19]  Martin L. Griss,et al.  Integrating feature modeling with the RSEB , 1998, Proceedings. Fifth International Conference on Software Reuse (Cat. No.98TB100203).

[20]  Krzysztof Czarnecki,et al.  Modeling aerospace systems product lines in SysML , 2015, SPLC.

[21]  Daniel Lucrédio,et al.  The Domain Analysis Concept Revisited: A Practical Approach , 2006, ICSR.

[22]  Klaus Pohl,et al.  Software Product Line Engineering , 2005 .

[23]  Gunter Saake,et al.  Feature-Oriented Software Product Lines , 2013, Springer Berlin Heidelberg.

[24]  Sholom Cohen,et al.  Application of Feature-Oriented Domain Analysis to the Army Movement Control Domain , 1992 .

[25]  Danilo Beuche,et al.  Minimally Invasive Migration to Software Product Lines , 2007, 11th International Software Product Line Conference (SPLC 2007).

[26]  Charles W. Krueger BigLever software gears and the 3-tiered SPL methodology , 2007, OOPSLA '07.

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

[28]  Krzysztof Czarnecki,et al.  Reverse engineering feature models , 2011, 2011 33rd International Conference on Software Engineering (ICSE).

[29]  Arie van Deursen,et al.  REPORT RAPPORT , 1997 .

[30]  Andreas Hein,et al.  Applying feature models in industrial settings , 2000, SPLC.

[31]  Jan Mendling,et al.  Seven process modeling guidelines (7PMG) , 2010, Inf. Softw. Technol..

[32]  ApelSven,et al.  A Classification and Survey of Analysis Strategies for Software Product Lines , 2014 .

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

[34]  Kyo Chul Kang,et al.  Domain-oriented engineering of elevator control software: a product line practice , 2000 .

[35]  Elias Kuiter,et al.  Getting rid of clone-and-own: moving to a software product line for temperature monitoring , 2018, SPLC.

[36]  Pierre-Yves Schobbens,et al.  Feature Diagrams: A Survey and a Formal Semantics , 2006, 14th IEEE International Requirements Engineering Conference (RE'06).

[37]  Mathieu Acher,et al.  Composing Feature Models , 2009, SLE.

[38]  Frank van der Linden,et al.  Software product lines in action , 2007 .

[39]  RabiserRick,et al.  CASE Tool Support for Variability Management in Software Product Lines , 2017 .

[40]  Juha Kuusela,et al.  Ten years of product line engineering at Danfoss: lessons learned and way ahead , 2016, SPLC.

[41]  John D. McGregor,et al.  Strategies for testing products in software product lines , 2012, ACM SIGSOFT Softw. Eng. Notes.

[42]  Don S. Batory,et al.  Feature Models, Grammars, and Propositional Formulas , 2005, SPLC.

[43]  Thomas Leich,et al.  Extracting software product lines: a cost estimation perspective , 2016, SPLC.

[44]  Jacob Krüger,et al.  Where is my feature and what is it about? A case study on recovering feature facets , 2019, J. Syst. Softw..

[45]  Daniel L. Moody,et al.  The “Physics” of Notations: Toward a Scientific Basis for Constructing Visual Notations in Software Engineering , 2009, IEEE Transactions on Software Engineering.

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

[47]  Marco Sinnema,et al.  Product derivation in software product families: a case study , 2005, J. Syst. Softw..

[48]  Gunter Saake,et al.  Feature-Oriented Software Product Lines , 2013, Springer Berlin Heidelberg.

[49]  Marsha Chechik,et al.  What is a feature?: a qualitative study of features in industrial software product lines , 2015, SPLC.

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

[51]  Ivar Jacobson,et al.  Software Reuse: Architecture, Process And Organization For Business Success , 1998, Proceedings. Technology of Object-Oriented Languages. TOOLS 26 (Cat. No.98EX176).

[52]  Jaejoon Lee,et al.  Feature-Oriented Engineering of PBX Software for Adaptability and Reuseability , 1999, Softw. Pract. Exp..

[53]  Christoph Elsner,et al.  Variability Modelling throughout the Product Line Lifecycle , 2009, MoDELS.

[54]  Mahdi Derakhshanmanesh,et al.  Requirements-driven incremental adoption of variability management techniques and tools: an industrial experience report , 2013, Requirements Engineering.

[55]  Michael Kircher,et al.  Domain specific feature modeling for software product lines , 2012, SPLC '12.

[56]  Jacob Krüger,et al.  Principles of Feature Modeling , 2020, SE.

[57]  Jacob Krüger,et al.  (Automated) Literature Analysis - Threats and Experiences , 2018, 2018 IEEE/ACM 13th International Workshop on Software Engineering for Science (SE4Science).

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

[59]  Sven Apel,et al.  Presence-Condition Simplification in Highly Configurable Systems , 2015, 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering.

[60]  Robert Heinrich,et al.  Challenges in the Evolution of Metamodels: Smells and Anti-Patterns of a Historically-Grown Metamodel , 2016, ME@MoDELS.

[61]  Gunter Saake,et al.  A Classification and Survey of Analysis Strategies for Software Product Lines , 2014, ACM Comput. Surv..

[62]  Krzysztof Czarnecki,et al.  Efficient synthesis of feature models , 2012, SPLC '12.

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

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

[65]  Thomas Leich,et al.  FeatureIDE: An extensible framework for feature-oriented software development , 2014, Sci. Comput. Program..

[66]  Sarah Nadi,et al.  Clone-Based Variability Management in the Android Ecosystem , 2018, 2018 IEEE International Conference on Software Maintenance and Evolution (ICSME).

[67]  Akira Fukuda,et al.  Teaching software product lines as a paradigm to engineers: an experience report in education programs and seminars for senior engineers in Japan , 2018, SPLC.

[68]  Christian Tischer,et al.  Variant Management Solution for Large Scale Software Product Lines , 2017, 2018 IEEE/ACM 40th International Conference on Software Engineering: Software Engineering in Practice Track (ICSE-SEIP).

[69]  Charles W. Krueger,et al.  Point - Counterpoint: Being Proactive Pays Off - Eliminating the Adoption , 2002, IEEE Softw..

[70]  Thorsten Berger,et al.  Tackling Combinatorial Explosion: A Study of Industrial Needs and Practices for Analyzing Highly Configurable Systems , 2018, 2018 33rd IEEE/ACM International Conference on Automated Software Engineering (ASE).

[71]  Jaejoon Lee,et al.  Concepts and Guidelines of Feature Modeling for Product Line Software Engineering , 2002, ICSR.

[72]  Jaejoon Lee,et al.  FORM: A feature-;oriented reuse method with domain-;specific reference architectures , 1998, Ann. Softw. Eng..

[73]  Krzysztof Czarnecki,et al.  Three Cases of Feature-Based Variability Modeling in Industry , 2014, MoDELS.

[74]  Pearl Brereton,et al.  Performing systematic literature reviews in software engineering , 2006, ICSE.

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

[76]  Akira Fukuda,et al.  An Experience Report of Introducing Product Line Engineering across the Board , 2010, SPLC Workshops.

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

[78]  Rubby Casallas,et al.  Using multiple feature models to specify configuration options for electrical transformers: an experience report , 2015, SPLC.

[79]  Charles W. Krueger,et al.  Easing the Transition to Software Mass Customization , 2001, PFE.

[80]  Kyo Chul Kang,et al.  Feature‐oriented engineering of PBX software for adaptability and reuseability , 1999 .

[81]  Kiyoshi Itoh Domain Oriented Systems Development: Practices and Perspectives , 2003 .

[82]  Pierre-Yves Schobbens,et al.  Supporting multiple perspectives in feature-based configuration , 2013, Software & Systems Modeling.