Efficient static analysis and verification of featured transition systems

A Featured Transition System (FTS) models the behaviour of all products of a Software Product Line (SPL) in a single compact structure, by associating action-labelled transitions with features that condition their presence in product behaviour. It may however be the case that the resulting featured transitions of an FTS cannot be executed in any product (so called dead transitions) or, on the contrary, can be executed in all products (so called false optional transitions). Moreover, an FTS may contain states from which a transition can be executed only in some products (so called hidden deadlock states). It is useful to detect such ambiguities and signal them to the modeller, because dead transitions indicate an anomaly in the FTS that must be corrected, false optional transitions indicate a redundancy that may be removed, and hidden deadlocks should be made explicit in the FTS to improve the understanding of the model and to enable efficient verification—if the deadlocks in the products should not be remedied in the first place. We provide an algorithm to analyse an FTS for ambiguities and a means to transform an ambiguous FTS into an unambiguous one. The scope is twofold: an ambiguous model is typically undesired as it gives an unclear idea of the SPL and, moreover, an unambiguous FTS can efficiently be model checked. We empirically show the suitability of the algorithm by applying it to a number of benchmark SPL examples from the literature, and we show how this facilitates a kind of family-based model checking of a wide range of properties on FTSs.

[1]  Axel Legay,et al.  Variability Abstraction and Refinement for Game-based Lifted Model Checking of full CTL (Extended Version) , 2019, FASE.

[2]  Maurice H. ter Beek,et al.  Static Analysis of Featured Transition Systems , 2019, SPLC.

[3]  Erik P. de Vink,et al.  Family-Based SPL Model Checking Using Parity Games with Variability , 2020, FASE.

[4]  Pierre-Yves Schobbens,et al.  A Decade of Featured Transition Systems , 2019, From Software Engineering to Formal Methods and Tools, and Back.

[5]  Maurice H. ter Beek,et al.  Using FMC for family-based analysis of software product lines , 2015, SPLC.

[6]  Pierre-Yves Schobbens,et al.  Featured Model-Based Mutation Analysis , 2016, 2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE).

[7]  William R. Cook,et al.  Fitting the pieces together: a machine-checked model of safe composition , 2009, ESEC/FSE '09.

[8]  Pierre-Yves Schobbens,et al.  Covering SPL Behaviour with Sampled Configurations: An Initial Assessment , 2015, VaMoS.

[9]  Sebastián Uchitel,et al.  A foundation for behavioural conformance in software product line architectures , 2006, ROSATEA '06.

[10]  Sergio Segura,et al.  Automated analysis of feature models 20 years later: A literature review , 2010, Inf. Syst..

[11]  Pierre-Yves Schobbens,et al.  Model checking lots of systems: efficient verification of temporal properties in software product lines , 2010, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[12]  Nikolaj Bjørner,et al.  νZ - An Optimizing SMT Solver , 2015, TACAS.

[13]  Claus Brabrand,et al.  Family-Based Model Checking Without a Family-Based Model Checker , 2015, SPIN.

[14]  Axel Legay,et al.  A Framework for Quantitative Modeling and Analysis of Highly (Re)configurable Systems , 2017, IEEE Transactions on Software Engineering.

[15]  Maurice H. ter Beek,et al.  A Logical Framework to Deal with Variability , 2010, IFM.

[16]  Mahsa Varshosaz,et al.  Basic behavioral models for software product lines: Expressiveness and testing pre-orders , 2016, Sci. Comput. Program..

[17]  Mahsa Varshosaz,et al.  Basic behavioral models for software product lines: Revisited , 2018, Sci. Comput. Program..

[18]  Bowen Alpern,et al.  Defining Liveness , 1984, Inf. Process. Lett..

[19]  Stephen A. Cook,et al.  The complexity of theorem-proving procedures , 1971, STOC.

[20]  Pierre-Yves Schobbens,et al.  Statistical prioritization for software product line testing: an experience report , 2015, Software & Systems Modeling.

[21]  Flemming Nielson,et al.  Principles of Program Analysis , 1999, Springer Berlin Heidelberg.

[22]  Sven Apel,et al.  Variability-Aware Static Analysis at Scale , 2018, ACM Trans. Softw. Eng. Methodol..

[23]  Paul Grünbacher,et al.  A systematic review and an expert survey on capabilities supporting multi product lines , 2012, Inf. Softw. Technol..

[24]  Pierre-Yves Schobbens,et al.  Towards statistical prioritization for software product lines testing , 2013, VaMoS.

[25]  Marinella Petrocchi,et al.  Combining declarative and procedural views in the specification and analysis of product families , 2013, SPLC '13 Workshops.

[26]  Erik P. de Vink,et al.  Using mCRL2 for the analysis of software product lines , 2014, FormaliSE 2014.

[27]  Michael Lienhardt,et al.  Multi Software Product Lines in the Wild , 2018, VaMoS.

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

[29]  Pierre-Yves Schobbens,et al.  Formal semantics, modular specification, and symbolic verification of product-line behaviour , 2014, Sci. Comput. Program..

[30]  Gilles Audemard,et al.  An Adaptive Parallel SAT Solver , 2016, CP.

[31]  Axel Legay,et al.  Quantitative Analysis of Probabilistic Models of Software Product Lines with Statistical Model Checking , 2015, FMSPLE.

[32]  Nikolaj Bjørner,et al.  Z3: An Efficient SMT Solver , 2008, TACAS.

[33]  Mira Mezini,et al.  SPLLIFT: statically analyzing software product lines in minutes instead of years , 2013, Software Engineering.

[34]  Erik P. de Vink,et al.  Supervisory Controller Synthesis for Product Lines Using CIF 3 , 2016, ISoLA.

[35]  Maurice H. ter Beek,et al.  Modelling and analysing variability in product families: Model checking of modal transition systems with variability constraints , 2016, J. Log. Algebraic Methods Program..

[36]  Axel Legay,et al.  QFLan: A Tool for the Quantitative Analysis of Highly Reconfigurable Systems , 2018, FM.

[37]  Erik P. de Vink,et al.  An Overview of the mCRL2 Toolset and Its Recent Advances , 2013, TACAS.

[38]  Michael Lienhardt,et al.  A formal model for Multi Software Product Lines , 2019, Sci. Comput. Program..

[39]  Erik P. de Vink,et al.  Coherent branching feature bisimulation , 2015, FMSPLE.

[40]  Marius Thomas Lindauer,et al.  The Configurable SAT Solver Challenge (CSSC) , 2015, Artif. Intell..

[41]  Maurice H. ter Beek,et al.  Static analysis and family-based model checking of featured transition systems with VMC , 2021, SPLC.

[42]  Pierre-Yves Schobbens,et al.  Search-based Similarity-driven Behavioural SPL Testing , 2016, VaMoS.

[43]  Tiziana Margaria Making Sense of Complex Applications: Constructive Design, Features, and Questions , 2018, Models, Mindsets, Meta.

[44]  Pierre-Yves Schobbens,et al.  Model-based mutant equivalence detection using automata language equivalence and simulations , 2018, J. Syst. Softw..

[45]  Andrzej Wasowski,et al.  Variability-Specific Abstraction Refinement for Family-Based Model Checking , 2017, FASE.

[46]  Zohar Manna,et al.  Temporal Verification of Reactive Systems , 1995, Springer New York.

[47]  Erik P. de Vink,et al.  Family-Based Model Checking with mCRL2 , 2017, FASE.

[48]  Pierre-Yves Schobbens,et al.  All roads lead to Rome: Commuting strategies for product-line reliability analysis , 2018, Sci. Comput. Program..

[49]  David Harel,et al.  Statecharts: A Visual Formalism for Complex Systems , 1987, Sci. Comput. Program..

[50]  Pierre-Yves Schobbens,et al.  ProVeLines: a product line of verifiers for software product lines , 2013, SPLC '13 Workshops.

[51]  Aleksandar Dimovski Abstract Family-Based Model Checking Using Modal Featured Transition Systems: Preservation of CTL\(^{\star }\) , 2018, FASE.

[52]  Christel Baier,et al.  Probabilistic Model Checking for Feature-Oriented Systems , 2015, LNCS Trans. Aspect Oriented Softw. Dev..

[53]  Pierre-Yves Schobbens,et al.  Featured Transition Systems: Foundations for Verifying Variability-Intensive Systems and Their Application to LTL Model Checking , 2013, IEEE Transactions on Software Engineering.

[54]  Maurice H. ter Beek,et al.  VMC: recent advances and challenges ahead , 2014, SPLC '14.

[55]  Krzysztof Czarnecki,et al.  SAT-based analysis of large real-world feature models is easy , 2015, SPLC.

[56]  Martin Leucker,et al.  Modeling and Model Checking Software Product Lines , 2008, FMOODS.

[57]  Aleksandar S. Dimovski $\hbox {CTL}^{\star }$ family-based model checking using variability abstractions and modal transition systems , 2020, Int. J. Softw. Tools Technol. Transf..

[58]  Thomas Leich,et al.  FeatureIDE: An extensible framework for feature-oriented software development , 2014, Sci. Comput. Program..

[59]  Christel Baier,et al.  ProFeat: feature-oriented engineering for family-based probabilistic model checking , 2017, Formal Aspects of Computing.

[60]  Malte Lochau,et al.  Incremental model checking of delta-oriented software product lines , 2016, J. Log. Algebraic Methods Program..

[61]  Clemens Dubslaff Compositional Feature-Oriented Systems , 2019, SEFM.

[62]  Claus Brabrand,et al.  Efficient family-based model checking via variability abstractions , 2017, International Journal on Software Tools for Technology Transfer.

[63]  Pierre-Yves Schobbens,et al.  Coverage Criteria for Behavioural Testing of Software Product Lines , 2014, ISoLA.

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

[65]  Pierre-Yves Schobbens,et al.  Abstract test case generation for behavioural testing of software product lines , 2014, SPLC '14.

[66]  Kim G. Larsen,et al.  Modal I/O Automata for Interface and Product Line Theories , 2007, ESOP.

[67]  Pierre-Yves Schobbens,et al.  Model checking software product lines with SNIP , 2012, International Journal on Software Tools for Technology Transfer.

[68]  Maurice H. ter Beek,et al.  From Featured Transition Systems to Modal Transition Systems with Variability Constraints , 2015, SEFM.

[69]  Pierre Castéran,et al.  Interactive Theorem Proving and Program Development , 2004, Texts in Theoretical Computer Science An EATCS Series.

[70]  Michael Lienhardt,et al.  On checking delta-oriented product lines of statecharts , 2018, Sci. Comput. Program..

[71]  Jan Kretínský,et al.  30 Years of Modal Transition Systems: Survey of Extensions and Analysis , 2017, Models, Algorithms, Logics and Tools.

[72]  Maurice H. ter Beek,et al.  On the expressiveness of modal transition systems with variability constraints , 2019, Sci. Comput. Program..

[73]  Sarfraz Khurshid,et al.  Reducing combinatorics in testing product lines , 2011, AOSD '11.

[74]  Erik P. de Vink,et al.  Towards Modular Verification of Software Product Lines with mCRL2 , 2014, ISoLA.

[75]  Erik P. de Vink,et al.  The mCRL2 Toolset for Analysing Concurrent Systems - Improvements in Expressivity and Usability , 2019, TACAS.

[76]  Maurice H. ter Beek,et al.  VMC: A Tool for Product Variability Analysis , 2012, FM.