Incremental feature model synthesis for clone-and-own software systems in MATLAB/Simulink

Families of related MATLAB/Simulink systems commonly emerge ad hoc using clone-and-own practices. Extractively migrating systems towards a software product line (SPL) can be a remedy. A feature model (FM) represents all potential configurations of an SPL, ideally, in non-technical domain terms. However, yielding a sensible FM from automated synthesis remains a major challenge due to domain knowledge being a prerequisite for features to be adequate abstractions. In incremental reverse engineering, subsequent generation of FMs may further overwrite changes and design decisions made during previous manual FM refinement. In this paper, we propose an approach to largely automate the synthesis of a suitable FM from a set of cloned MATLAB/Simulink models as part of reverse engineering an SPL. We fully automate the extraction of an initial, i.e., a technical, FM that closely aligns with realization artifacts and their variability, and further provide operations to manually refine it to incorporate domain knowledge. Most importantly, we provide concepts to capture such operations and to replay them on a structurally different technical FM stemming from a subsequent reverse engineering increment that included further systems of the portfolio. We further provide an implementation and demonstrate the feasibility of our approach using two MATLAB/Simulink data sets from the automotive domain.

[1]  Christoph Seidl,et al.  Improving custom-tailored variability mining using outlier and cluster detection , 2018, Sci. Comput. Program..

[2]  Udo Kelter,et al.  Reasoning about product-line evolution using complex feature model differences , 2016, Automated Software Engineering.

[3]  James R. Cordy,et al.  Semi-automatic Identification and Representation of Subsystem Variability in Simulink Models , 2014, 2014 IEEE International Conference on Software Maintenance and Evolution.

[4]  Klaus Kabitzsch,et al.  Automatic variation-point identification in function-block-based models , 2010, GPCE '10.

[5]  Marsha Chechik,et al.  A Survey of Feature Location Techniques , 2013, Domain Engineering, Product Lines, Languages, and Conceptual Models.

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

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

[8]  Kathrin Berg,et al.  Tracing software product line variability: from problem to solution space , 2005 .

[9]  Stefan Kowalewski,et al.  EvoFM: feature-driven planning of product-line evolution , 2010, PLEASE '10.

[10]  Alexander Egyed,et al.  Reengineering legacy applications into software product lines: a systematic mapping , 2017, Empirical Software Engineering.

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

[12]  Bernhard Rumpe,et al.  First-class variability modeling in Matlab/Simulink , 2013, VaMoS.

[13]  Christoph Seidl,et al.  Reengineering Variants of MATLAB/Simulink Software Systems , 2019, Security and Quality in Cyber-Physical Systems Engineering.

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

[15]  Krzysztof Czarnecki,et al.  CVL: common variability language , 2012, SPLC '12.

[16]  Derrick G. Kourie,et al.  Correctness-by-Construction \wedge Taxonomies \Rightarrow Deep Comprehension of Algorithm Families , 2016, ISoLA.

[17]  Sandro Schulze,et al.  Custom-Tailored Variability Mining for Block-Based Languages , 2016, 2016 IEEE 23rd International Conference on Software Analysis, Evolution, and Reengineering (SANER).

[18]  Christoph Seidl,et al.  Analyzing Variability in 25 Years of Industrial Legacy Software: An Experience Report , 2019, SPLC.

[19]  Camille Salinesi,et al.  Transforming Attribute and Clone-enabled Feature Models into Constraint Programs over Finite Domains , 2011, ENASE.

[20]  Pierre-Yves Schobbens,et al.  Disambiguating the Documentation of Variability in Software Product Lines: A Separation of Concerns, Formalization and Automated Analysis , 2007, 15th IEEE International Requirements Engineering Conference (RE 2007).

[21]  Jaime Font,et al.  Feature location in models through a genetic algorithm driven by information retrieval techniques , 2016, MoDELS.

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

[23]  Sabine Glesner,et al.  Slicing MATLAB Simulink models , 2012, 2012 34th International Conference on Software Engineering (ICSE).

[24]  Michael Nieke,et al.  Back to the future: avoiding paradoxes in feature-model evolution , 2018, SPLC.

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

[26]  Per Runeson,et al.  Guidelines for conducting and reporting case study research in software engineering , 2009, Empirical Software Engineering.

[27]  Udo Kelter,et al.  Automatically Deriving the Specification of Model Editing Operations from Meta-Models , 2016, ICMT.

[28]  Jacob Krüger,et al.  Principles of feature modeling , 2019, ESEC/SIGSOFT FSE.

[29]  Stefan Kowalewski,et al.  Experiences of applying model-based analysis to support the development of automotive software product lines , 2011, VaMoS.

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

[31]  Uwe Aßmann,et al.  Co-evolution of models and feature mapping in software product lines , 2012, SPLC '12.

[32]  Sandro Schulze,et al.  Extractive software product line engineering using model-based delta module generation , 2017, VaMoS.

[33]  Christoph Seidl,et al.  Reducing variability of technically related software systems in large-scale IT landscapes , 2018, CASCON.

[34]  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).

[35]  Krzysztof Czarnecki,et al.  Usage scenarios for feature model synthesis , 2012, VARY '12.

[36]  Birgit Vogel-Heuser,et al.  Analyzing Variability in Automation Software with the Variability Analysis Toolkit , 2019, SPLC.

[37]  Mathieu Acher,et al.  Breathing ontological knowledge into feature model synthesis: an empirical study , 2015, Empirical Software Engineering.

[38]  Gunter Saake,et al.  A taxonomy of software product line reengineering , 2014, VaMoS.

[39]  Marsha Chechik,et al.  Quality of Merge-Refactorings for Product Lines , 2013, FASE.

[40]  Jaime Font,et al.  Achieving Feature Location in Families of Models Through the Use of Search-Based Software Engineering , 2018, IEEE Transactions on Evolutionary Computation.

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

[42]  Malte Lochau,et al.  Multi-perspectives on feature models , 2012, MODELS'12.

[43]  Bernhard Schätz,et al.  Clone detection in automotive model-based development , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[44]  Sascha El-Sharkawy,et al.  From feature models to decision models and back again an analysis based on formal transformations , 2012, SPLC '12.

[45]  Sandro Schulze,et al.  Detecting Variability in MATLAB/Simulink Models: An Industry-Inspired Technique and its Evaluation , 2017, SPLC.

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

[47]  Sebastian Krieter,et al.  FeatureIDE: Taming the Preprocessor Wilderness , 2016, 2016 IEEE/ACM 38th International Conference on Software Engineering Companion (ICSE-C).

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

[49]  Sanjai Rayadurgam,et al.  Structuring simulink models for verification and reuse , 2014, MiSE 2014.

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

[51]  Jaime Font,et al.  Building software product lines from conceptualized model patterns , 2015, SPLC.

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

[53]  Jacques Klein,et al.  Automating the Extraction of Model-Based Software Product Lines from Model Variants (T) , 2015, 2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE).

[54]  Ina Schaefer,et al.  Clustering Variation Points in MATLAB/Simulink Models Using Reverse Signal Propagation Analysis , 2017, ICSR.

[55]  Claudio Riva,et al.  Experiences with software product family evolution , 2003, Sixth International Workshop on Principles of Software Evolution, 2003. Proceedings..

[56]  Wouter Joosen,et al.  Mapping problem-space to solution-space features: a feature interaction approach , 2009, GPCE '09.

[57]  Sandro Schulze,et al.  Comparing Multiple MATLAB/Simulink Models Using Static Connectivity Matrix Analysis , 2018, 2018 IEEE International Conference on Software Maintenance and Evolution (ICSME).

[58]  Reiko Heckel,et al.  Consistency-Preserving Model Evolution through Transformations , 2002, UML.

[59]  Rick Rabiser Feature Modeling vs. Decision Modeling: History, Comparison and Perspectives , 2019, SPLC.

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

[61]  Zhenchang Xing,et al.  Understanding Feature Evolution in a Family of Product Variants , 2010, 2010 17th Working Conference on Reverse Engineering.

[62]  Bernhard Schätz,et al.  Model clone detection in practice , 2010, IWSC '10.

[63]  Rüdiger Striemer,et al.  The Essence of Software Engineering , 2018, Springer International Publishing.

[64]  Klaus Schmid,et al.  A Requirements-Based Taxonomy of Software Product Line Evolution , 2007, Electron. Commun. Eur. Assoc. Softw. Sci. Technol..

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

[66]  Mark van den Brand,et al.  Automotive Software Engineering: Past, Present, and Future , 2019, Automotive Systems and Software Engineering.

[67]  Jaime Font,et al.  Feature Location in Model-Based Software Product Lines Through a Genetic Algorithm , 2016, ICSR.

[68]  Bogdan Dit,et al.  Feature location in source code: a taxonomy and survey , 2013, J. Softw. Evol. Process..

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

[70]  Thomas Leich,et al.  Mastering Software Variability with FeatureIDE , 2017, Springer International Publishing.

[71]  James R. Cordy,et al.  Analysis and clustering of model clones: An automotive industrial experience , 2014, 2014 Software Evolution Week - IEEE Conference on Software Maintenance, Reengineering, and Reverse Engineering (CSMR-WCRE).

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