Towards Efficient Analysis of Variation in Time and Space

Variation is central to today's software development. There are two fundamental dimensions to variation: Variation in time refers to the fact that software exists in numerous revisions that typically replace each other (i.e., a newer version supersedes an older one). Variation in space refers to differences among variants that are designed to coexist in parallel. There are numerous analyses to cope with variation in space (i.e., product-line analyses) and others that cope with variation in time (i.e., regression analyses). The goal of this work is to discuss to which extent product-line analyses can be applied to revisions and, conversely, where regression analyses can be applied to variants. In addition, we discuss challenges related to the combination of product-line and regression analyses. The overall goal is to increase the efficiency of analyses by exploiting the inherent commonality between variants and revisions.

[1]  Sebastian Erdweg,et al.  Abstract Features in Feature Modeling , 2011, 2011 15th International Software Product Line Conference.

[2]  Paul Grünbacher,et al.  Using regression testing to analyze the impact of changes to variability models on products , 2012, SPLC '12.

[3]  Ofer Strichman,et al.  Regression verification , 2009, 2009 46th ACM/IEEE Design Automation Conference.

[4]  Sebastian Erdweg,et al.  Variability-aware parsing in the presence of lexical macros and conditional compilation , 2011, OOPSLA '11.

[5]  Mark Harman,et al.  Regression testing minimization, selection and prioritization: a survey , 2012, Softw. Test. Verification Reliab..

[6]  Udo Kelter,et al.  SiPL -- A Delta-Based Modeling Framework for Software Product Line Engineering , 2015, 2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE).

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

[8]  Paulo Borba,et al.  Partially safe evolution of software product lines , 2016, SPLC.

[9]  Sandro Schulze,et al.  Refactoring delta-oriented software product lines , 2013, Software Engineering & Management.

[10]  Tobias Pett,et al.  Stability of Product Sampling under Product-Line Evolution: Master's Thesis , 2018 .

[11]  Wolfgang Schröder-Preikschat,et al.  Feature consistency in compile-time-configurable system software: facing the linux 10,000 feature problem , 2011, EuroSys '11.

[12]  Mustafa Al-Hajjaji,et al.  Optimizing product orders using graph algorithms for improving incremental product-line analysis , 2017, VaMoS.

[13]  Miroslav Bures,et al.  Constrained Interaction Testing: A Systematic Literature Study , 2017, IEEE Access.

[14]  Thomas Thüm,et al.  Retest test selection for product-line regression testing of variants and versions of variants , 2019, J. Syst. Softw..

[15]  Thorsten Berger,et al.  Tackling Combinatorial Explosion: A Study of Industrial Needs and Practices for Analyzing Highly Configurable Systems , 2018, 2018 33rd IEEE/ACM International Conference on Automated Software Engineering (ASE).

[16]  Udo Kelter,et al.  Formal Foundations for Analyzing and Refactoring Delta-Oriented Model-Based Software Product Lines , 2019, SPLC.

[17]  Christoph Seidl,et al.  175% Modeling for Product-Line Evolution of Domain Artifacts , 2018, VaMoS.

[18]  Sebastian Erdweg,et al.  A variability-aware module system , 2012, OOPSLA '12.

[19]  Thomas Leich,et al.  TypeChef: toward type checking #ifdef variability in C , 2010, FOSD '10.

[20]  Mohammad Reza Mousavi,et al.  On the search for industry-relevant regression testing research , 2019, Empirical Software Engineering.

[21]  Sven Apel,et al.  Performance Analysis Strategies for Software Variants and Versions , 2019, Managed Software Evolution.

[22]  Carsten Sinz,et al.  Configuration Lifting: Verification meets Software Configuration , 2008, 2008 23rd IEEE/ACM International Conference on Automated Software Engineering.

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

[24]  Régis Bernard Joseph Crelier,et al.  Separate compilation and module extension , 1994 .

[25]  Gunter Saake,et al.  Delta-Oriented Product Prioritization for Similarity-Based Product-Line Testing , 2017, 2017 IEEE/ACM 2nd International Workshop on Variability and Complexity in Software Design (VACE).

[26]  Martin Erwig,et al.  The Choice Calculus: A Representation for Software Variation , 2011, TSEM.

[27]  ApelSven,et al.  A Classification and Survey of Analysis Strategies for Software Product Lines , 2014 .

[28]  Claus Brabrand,et al.  Systematic derivation of correct variability-aware program analyses , 2015, Sci. Comput. Program..

[29]  Robert Grimm,et al.  SuperC: parsing all of C by taming the preprocessor , 2012, PLDI.

[30]  Sven Apel,et al.  Scalable analysis of variable software , 2013, ESEC/FSE 2013.

[31]  Mustafa Al-Hajjaji,et al.  A classification of product sampling for software product lines , 2018, SPLC.

[32]  Márcio Ribeiro,et al.  A change-aware per-file analysis to compile configurable systems with #ifdefs , 2018, Comput. Lang. Syst. Struct..

[33]  Martin Erwig,et al.  Extending Type Inference to Variational Programs , 2014, ACM Trans. Program. Lang. Syst..

[34]  Ina Schaefer,et al.  Higher-order delta modeling for software product line evolution , 2016, FOSD.

[35]  Sebastian Krieter,et al.  Feature-Model Interfaces: The Highway to Compositional Analyses of Highly-Configurable Systems , 2016, 2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE).

[36]  Gunter Saake,et al.  A Classification and Survey of Analysis Strategies for Software Product Lines , 2014, ACM Comput. Surv..

[37]  Vladimir Klebanov,et al.  Automating regression verification , 2014, Software Engineering & Management.

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

[39]  Arie van Deursen,et al.  FEVER: An approach to analyze feature-oriented changes and artefact co-evolution in highly configurable systems , 2018, Empirical Software Engineering.

[40]  Eric Bodden,et al.  Reviser: efficiently updating IDE-/IFDS-based data-flow analyses in response to incremental program changes , 2014, ICSE.

[41]  Iago Abal,et al.  Variability Bugs in Highly Configurable Systems , 2018, ACM Trans. Softw. Eng. Methodol..

[42]  Malte Lochau,et al.  Delta-oriented model-based SPL regression testing , 2012, 2012 Third International Workshop on Product LinE Approaches in Software Engineering (PLEASE).

[43]  Paul Gazzillo,et al.  Kmax: finding all configurations of Kbuild makefiles statically , 2017, ESEC/SIGSOFT FSE.

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

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

[46]  Sebastian Erdweg,et al.  IncA: A DSL for the definition of incremental program analyses , 2016, 2016 31st IEEE/ACM International Conference on Automated Software Engineering (ASE).

[47]  Sascha El-Sharkawy,et al.  An Empirical Study of Configuration Mismatches in Linux , 2017, SPLC.

[48]  Reidar Conradi,et al.  Version models for software configuration management , 1998, CSUR.

[49]  Klaus Schmid,et al.  Identifying the intensity of variability changes in software product line evolution , 2018, SPLC.

[50]  Sven Apel,et al.  The PLA model: on the combination of product-line analyses , 2013, VaMoS '13.

[51]  Thomas Thüm,et al.  Variability Hiding in Contracts for Dependent Software Product Lines , 2016, VaMoS.

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

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

[54]  Sebastian Krieter,et al.  Product Sampling for Product Lines: The Scalability Challenge , 2019, SPLC.