Safe Evolution of Software Product Lines: Feature Extraction Scenarios

Software Product Lines can improve productivity and product quality, but product line maintenance is not simple, since a single change can impact several products. In many situations, it is desirable to provide some assurance that we can safely change a SPL in the sense that the behaviour of existing products is preserved. Developers can rely on previously proposed safe evolution notions, by means of transformation templates to ensure safe evolution. However, the existing templates were only applied in scenarios where a product line expands, and have not been evaluated in the context of extracting features from existing code. Therefore, we conducted a study using an industrial system developed in Java with 400 KLOC. This study revealed the need for new templates to address feature extraction scenarios, as well as improving the existing templates notation to address more expressive mappings between features and code assets. As a result of this study, we successfully extracted a product line from this existing system using the proposed templates, and also found evidence that the new templates can help to prevent defects during product line evolution.

[1]  Paulo Borba,et al.  Safe Composition of Configuration Knowledge-Based Software Product Lines , 2011, 2011 25th Brazilian Symposium on Software Engineering.

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

[3]  Jia Liu,et al.  Feature oriented refactoring of legacy applications , 2006, ICSE.

[4]  Kerstin Mueller,et al.  Software Product Line Engineering Foundations Principles And Techniques , 2016 .

[5]  Paulo Borba,et al.  Algebraic Laws for Feature Models , 2008, J. Univers. Comput. Sci..

[6]  Paulo Borba,et al.  A theory of software product line refinement , 2010, Theor. Comput. Sci..

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

[8]  Uirá Kulesza,et al.  Safe evolution templates for software product lines , 2015, J. Syst. Softw..

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

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

[11]  William R. Cook,et al.  Safe composition of product lines , 2007, GPCE '07.

[12]  Paulo Borba,et al.  An Introduction to Software Product Line Refactoring , 2009, GTTSE.

[13]  Krzysztof Czarnecki,et al.  Coevolution of variability models and related artifacts: a case study from the Linux kernel , 2013, SPLC '13.

[14]  Dirk Muthig,et al.  A case study in refactoring a legacy component for reuse in a product line , 2005, 21st IEEE International Conference on Software Maintenance (ICSM'05).

[15]  Oscar Díaz,et al.  Feature refactoring a multi-representation program into a product line , 2006, GPCE '06.

[16]  Paulo Borba,et al.  Deriving refactorings for AspectJ , 2005, AOSD '05.