Software Product Line Evolution with Cardinality-Based Feature Models

Feature models are widely used for modelling variability present in a Software Product Line family. We propose using cardinality-based feature models and clonable features to model and manage the evolution of the structural variability present in pervasive systems, composed by a large variety of heterogeneous devices. The use of clonable features increases the expressiveness of feature models, but also greatly increases the complexity of the resulting configurations. So, supporting the evolution of product configurations becomes an intractable task to do it manually. In this paper, we propose a model driven development process to propagate changes made in an evolved feature model, into existing configurations. Furthermore, our process allows us to calculate the effort needed to perform the evolution changes in the customized products. To do this, we have defined two operators, one to calculate the differences between two configurations and another to create a new configuration from a previous one. Finally, we validate our approach, showing that by using our tool support we can generate new configurations for a family of products with thousands of cloned features.

[1]  Jan Bosch,et al.  Software Reuse: Methods, Techniques, and Tools , 2004, Lecture Notes in Computer Science.

[2]  Krzysztof Czarnecki,et al.  Synchronizing Cardinality-Based Feature Models and Their Specializations , 2005, ECMDA-FA.

[3]  Frank Budinsky,et al.  Eclipse Modeling Framework , 2003 .

[4]  Haiyan Zhao,et al.  A BDD-Based Approach to Verifying Clone-Enabled Feature Models' Constraints and Customization , 2008, ICSR.

[5]  Edward P. K. Tsang,et al.  Foundations of constraint satisfaction , 1993, Computation in cognitive science.

[6]  Lidia Fuentes,et al.  Language Support for Managing Variability in Architectural Models , 2008, SC@ETAPS.

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

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

[9]  Stephen H. Edwards,et al.  Formal Foundations of Reuse and Domain Engineering, 11th International Conference on Software Reuse, ICSR 2009, Falls Church, VA, USA, September 27-30, 2009. Proceedings , 2009, ICSR.

[10]  Klaus Pohl,et al.  Software Product Line Engineering - Foundations, Principles, and Techniques , 2005 .

[11]  Douglas C. Schmidt,et al.  Automated diagnosis of feature model configurations , 2010, J. Syst. Softw..

[12]  Hong Mei,et al.  High Confidence Software Reuse in Large Systems, 10th International Conference on Software Reuse, ICSR 2008, Beijing, China, May 25-29, 2008, Proceedings , 2008, ICSR.

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

[14]  Lidia Fuentes,et al.  Configuration Process of a Software Product Line for AmI Middleware , 2010, J. Univers. Comput. Sci..

[15]  Michał Antkiewicz Ecore.fmp a Tool for Editing and Instantiating Class Models as Feature Models , 2008 .

[16]  Sven Apel,et al.  Refactoring Feature Modules , 2009, ICSR.

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

[18]  Arend Rensink Model Driven Architecture - Foundations and Applications, 5th European Conference, ECMDA-FA 2009, Enschede, The Netherlands, June 23-26, 2009. Proceedings , 2009, ECMDA-FA.

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

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