$\hbox {CTL}^{\star }$ family-based model checking using variability abstractions and modal transition systems

Variational systems can produce a (potentially huge) number of related systems, known as products or variants, by using features (configuration options) to mark the variable functionality. In many of the application domains, their rigorous verification and analysis are very important, yet the appropriate tools rarely are able to analyse variational systems. Recently, this problem was addressed by designing specialized so-called family-based model checking algorithms, which allow simultaneous verification of all variants in a single run by exploiting the commonalities between the variants. Yet, their computational cost still greatly depends on the number of variants (the size of configuration space), which is often huge. Moreover, their implementation and maintenance represent a costly research and development task. One of the most promising approaches to fighting the configuration space explosion problem is variability abstractions, which simplify variability away from variational systems. In this work, we show how to achieve efficient family-based model checking of $$\hbox {CTL}^{\star }$$ temporal properties using variability abstractions and off-the-shelf (single-system) tools. We use variability abstractions for deriving abstract family-based model checking, where the variability model of a variational system is replaced with an abstract (smaller) version of it, called modal transition system, which preserves the satisfaction of both universal and existential temporal properties, as expressible in $$\hbox {CTL}^{\star }$$ . Modal transition systems contain two kinds of transitions, termed may- and must-transitions, which are defined by the conservative (over-approximating) abstractions and their dual (under-approximating) abstractions, respectively. The variability abstractions can be combined with different partitionings of the configuration space to infer suitable divide-and-conquer verification plans for the given variational system. We illustrate the practicality of this approach for several variational systems using the standard version of (single-system) NuSMV model checker.

[1]  Claus Brabrand,et al.  Variability abstractions for lifted analyses , 2018, Sci. Comput. Program..

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

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

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

[5]  Andrzej Wasowski,et al.  Experiences from Designing and Validating a Software Modernization Transformation (E) , 2015, 2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE).

[6]  Baruch Sterin,et al.  Symbolic Model Checking of Product-Line Requirements Using SAT-Based Methods , 2015, 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering.

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

[8]  Pierre-Yves Schobbens,et al.  Simulation-based abstractions for software product-line model checking , 2012, 2012 34th International Conference on Software Engineering (ICSE).

[9]  Edmund M. Clarke,et al.  Design and Synthesis of Synchronization Skeletons Using Branching-Time Temporal Logic , 1981, Logic of Programs.

[10]  Kim G. Larsen,et al.  A modal process logic , 1988, [1988] Proceedings. Third Annual Information Symposium on Logic in Computer Science.

[11]  Patrick Cousot,et al.  Partial Completeness of Abstract Fixpoint Checking , 2000, SARA.

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

[13]  Pierre-Yves Schobbens,et al.  Counterexample guided abstraction refinement of product-line behavioural models , 2014, Software Engineering.

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

[15]  KästnerChristian,et al.  Variability-aware parsing in the presence of lexical macros and conditional compilation , 2011 .

[16]  Capers Jones,et al.  Embedded Software: Facts, Figures, and Future , 2009, Computer.

[17]  Orna Grumberg,et al.  A game-based framework for CTL counterexamples and 3-valued abstraction-refinement , 2007, TOCL.

[18]  Claus Brabrand,et al.  Variability Abstractions: Trading Precision for Speed in Family-Based Analyses , 2015, ECOOP.

[19]  Andrzej Wąsowski,et al.  From Transition Systems to Variability Models and from Lifted Model Checking Back to UPPAAL , 2017, Models, Algorithms, Logics and Tools.

[20]  Sven Apel,et al.  Strategies for product-line verification: Case studies and experiments , 2013, 2013 35th International Conference on Software Engineering (ICSE).

[21]  Claus Brabrand,et al.  Finding suitable variability abstractions for lifted analysis , 2019, Formal Aspects of Computing.

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

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

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

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

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

[27]  Orna Grumberg,et al.  Compositional verification and 3-valued abstractions join forces , 2010, Inf. Comput..

[28]  Christel Baier,et al.  Principles of model checking , 2008 .

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

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

[31]  Claus Brabrand,et al.  Finding Suitable Variability Abstractions for Family-Based Analysis , 2016, FM.

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

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

[34]  Gunter Saake,et al.  Type checking annotation-based product lines , 2012, TSEM.

[35]  Dexter Kozen,et al.  RESULTS ON THE PROPOSITIONAL’p-CALCULUS , 2001 .

[36]  Marco Pistore,et al.  NuSMV 2: An OpenSource Tool for Symbolic Model Checking , 2002, CAV.

[37]  Sven Apel,et al.  Variability encoding: From compile-time to load-time variability , 2016, J. Log. Algebraic Methods Program..

[38]  Mark Ryan,et al.  Feature integration using a feature construct , 2001, Sci. Comput. Program..

[39]  Pierre-Yves Schobbens,et al.  Symbolic model checking of software product lines , 2011, 2011 33rd International Conference on Software Engineering (ICSE).

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

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

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

[43]  Claus Brabrand,et al.  Effective Analysis of C Programs by Rewriting Variability , 2017, Art Sci. Eng. Program..

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

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