Building software product lines from conceptualized model patterns

Software Product Lines (SPLs) can be established from a set of similar models. Establishing the Product Line by mechanically finding model differences may not be the best approach. The identified model fragments may not be seen as recognizable units by the application engineers. We propose to identify model patterns by human-in-the-loop and conceptualize them as reusable model fragments. The approach provides the means to identify and extract those model patterns and further apply them to existing product models. Model fragments obtained by applying our approach seem to perform better than mechanically found ones. It turns out that the repetition of a fragment does not guarantee its relevance as reusable asset for the SPL engineers and vice versa, a fragment that has not been repeated yet, may be relevant as a reusable asset. We have validated these ideas with our industrial partner BSH, an induction hobs manufacturer that generates the firmware of their products from a model-driven SPL.

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

[2]  Sandro Schulze,et al.  Interface variability in family model mining , 2013, SPLC '13 Workshops.

[3]  Tewfik Ziadi,et al.  Feature Identification from the Source Code of Product Variants , 2012, 2012 16th European Conference on Software Maintenance and Reengineering.

[4]  Mathieu Acher,et al.  Extraction and evolution of architectural variability models in plugin-based systems , 2013, Software & Systems Modeling.

[5]  Dirk Muthig,et al.  Refactoring a legacy component for reuse in a software product line: a case study: Practice Articles , 2006 .

[6]  Birgit Vogel-Heuser,et al.  Family model mining for function block diagrams in automation software , 2014, SPLC '14.

[7]  Kyo Chul Kang,et al.  Experience Report on Using a Domain Model-Based Extractive Approach to Software Product Line Asset Development , 2009, ICSR.

[8]  Marsha Chechik,et al.  Combining Related Products into Product Lines , 2012, FASE.

[9]  Dirk Muthig,et al.  Refactoring a legacy component for reuse in a software product line: a case study , 2006, J. Softw. Maintenance Res. Pract..

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

[11]  Hoan Anh Nguyen,et al.  Complete and accurate clone detection in graph-based models , 2009, 2009 IEEE 31st International Conference on Software Engineering.

[12]  Birger Møller-Pedersen,et al.  Developing a Software Product Line for Train Control: A Case Study of CVL , 2010, SPLC.

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

[14]  Birger Møller-Pedersen,et al.  Model Comparison to Synthesize a Model-Driven Software Product Line , 2011, 2011 15th International Software Product Line Conference.

[15]  Kangtae Kim,et al.  Building Software Product Line from the Legacy Systems "Experience in the Digital Audio and Video Domain" , 2007, 11th International Software Product Line Conference (SPLC 2007).

[16]  Birger Møller-Pedersen,et al.  Adding Standardized Variability to Domain Specific Languages , 2008, 2008 12th International Software Product Line Conference.

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

[18]  Yves Le Traon,et al.  Towards a language-independent approach for reverse-engineering of software product lines , 2014, SAC.

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