Custom-Tailored Variability Mining for Block-Based Languages

Block-based modeling languages, such as MATLAB/Simulink or state charts, reduce the complexity inherent to developing large-scale software systems. When creating variants for largely similar yet different software systems, the common practice is to copy models and modify them to different requirements. While this allows companies to save costs in the short-term, these so-called clone-and-own approaches cause problems regarding long-term evolution and system quality as the relation between the variants of the resulting software family is lost so that the variants have to be maintained in isolation. To recreate information regarding the variants' relations, variability mining identifies common and varying parts of cloned variants but, currently, the respective algorithms have to be created for each target language individually. In this paper, we present a generalized method to instantiate variability mining for arbitrary block-based modeling languages. The identified variability information allows developers to understand the variability of their grown software family. This knowledge helps efficiently maintaining the variants and allows migrating from clone-and-own approaches to more elaborate reuse strategies, such as software product lines. We demonstrate the feasibility of our method by instantiating variability mining techniques for two block-based languages.

[1]  Mehrdad Sabetzadeh,et al.  Analysis of inconsistency in graph-based viewpoints: a category-theoretical approach , 2003, 18th IEEE International Conference on Automated Software Engineering, 2003. Proceedings..

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

[3]  Michael von der Beeck,et al.  A Comparison of Statecharts Variants , 1994, FTRTFT.

[4]  Bernhard Schätz,et al.  Semantic clone detection for model-based development of embedded systems , 2011, MODELS'11.

[5]  Eleni Stroulia,et al.  UMLDiff: an algorithm for object-oriented design differencing , 2005, ASE.

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

[7]  Ivan Porres,et al.  Difference and Union of Models , 2003, UML.

[8]  Klaus Kabitzsch,et al.  Extraction of feature models from formal contexts , 2011, SPLC '11.

[9]  Michael W. Godfrey,et al.  "Cloning Considered Harmful" Considered Harmful , 2006, 2006 13th Working Conference on Reverse Engineering.

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

[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]  Marsha Chechik,et al.  Quality of Merge-Refactorings for Product Lines , 2013, FASE.

[13]  Malte Lochau,et al.  Delta-oriented Software Product Line Test Models - The Body Comfort System Case Study , 2013 .

[14]  Udo Kelter,et al.  A Generic Difference Algorithm for UML Models , 2005, Software Engineering.

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

[16]  Benjamin Klatt,et al.  A Graph-Based Analysis Concept to Derive a Variation Point Design from Product Copies , 2013 .

[17]  Ruzanna Chitchyan,et al.  A framework for constructing semantically composable feature models from natural language requirements , 2009, SPLC.

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

[19]  Marsha Chechik,et al.  N-way model merging , 2013, ESEC/FSE 2013.

[20]  Birger Møller-Pedersen,et al.  Augmenting Product Lines , 2012, 2012 19th Asia-Pacific Software Engineering Conference.

[21]  Johann Eder,et al.  Towards an Automatic Integration of Statecharts , 1999, ER.

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

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

[24]  Marsha Chechik,et al.  Merging partial behavioural models , 2004, SIGSOFT '04/FSE-12.

[25]  David Wille Managing lots of models: the FaMine approach , 2014, FSE 2014.

[26]  James R. Cordy,et al.  Models are code too: Near-miss clone detection for Simulink models , 2012, 2012 28th IEEE International Conference on Software Maintenance (ICSM).

[27]  Klaus Kabitzsch,et al.  Automatic library migration for the generation of hardware-in-the-loop models , 2012, Sci. Comput. Program..

[28]  Jianyong Chen,et al.  A Novel Optimized Path-Based Algorithm for Model Clone Detection , 2014, J. Softw..

[29]  J. Cordy,et al.  A Survey of Methods and Applications of Model Comparison Technical Report 2011-582 Rev . 3 , 2011 .

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

[31]  Jacques Klein,et al.  Identifying and Visualising Commonality and Variability in Model Variants , 2014, ECMFA.

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

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

[34]  Jennifer Widom,et al.  Change detection in hierarchically structured information , 1996, SIGMOD '96.

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

[36]  Johann Schumann,et al.  Generating statechart designs from scenarios , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[37]  John C. Grundy,et al.  A generic approach to supporting diagram differencing and merging for collaborative design , 2005, ASE '05.

[38]  Ralf Lämmel,et al.  Flexible product line engineering with a virtual platform , 2014, ICSE Companion.

[39]  Mehrdad Sabetzadeh,et al.  Matching and Merging of Statecharts Specifications , 2007, 29th International Conference on Software Engineering (ICSE'07).

[40]  Jaime Font,et al.  Automating the variability formalization of a model family by means of common variability language , 2015, SPLC.

[41]  Perdita Stevens,et al.  «UML» 2003 - The Unified Modeling Language. Modeling Languages and Applications , 2003, Lecture Notes in Computer Science.