Formal semantics, modular specification, and symbolic verification of product-line behaviour

Formal techniques for specifying and verifying Software Product Lines (SPL) are actively studied. While the foundations of this domain recently made significant progress with the introduction of Featured Transition Systems (FTSs) and associated algorithms, SPL model checking still faces the well-known state explosion problem. Moreover, there is a need for high-level specification languages usable in industry. We address the state explosion problem by applying the principles of symbolic model checking to FTS-based verification of SPLs. In order to specify properties on specific products only, we extend the temporal logic CTL with feature quantifiers. Next, we show how SPL behaviour can be specified with fSMV, a variant of SMV, the specification language of the industry-strength model checker NuSMV. fSMV is a feature-oriented extension of SMV originally introduced by Plath and Ryan. We prove that fSMV and FTSs are expressively equivalent. Finally, we connect these results to a NuSMV extension we developed for verifying SPLs against CTL properties.

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

[2]  Gerard J. Holzmann,et al.  The SPIN Model Checker , 2003 .

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

[4]  Ira R. Forman,et al.  Superimposition for Interacting Processes , 1990, CONCUR.

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

[6]  Pierre-Yves Schobbens,et al.  Feature Diagrams: A Survey and a Formal Semantics , 2006, 14th IEEE International Requirements Engineering Conference (RE'06).

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

[8]  Jean-Marc Jézéquel,et al.  Towards a UML Profile for Software Product Lines , 2003, PFE.

[9]  Fausto Giunchiglia,et al.  NUSMV: a new symbolic model checker , 2000, International Journal on Software Tools for Technology Transfer.

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

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

[12]  Salil P. Vadhan,et al.  Computational Complexity , 2005, Encyclopedia of Cryptography and Security.

[13]  Klaus Pohl,et al.  Model Checking of Domain Artifacts in Product Line Engineering , 2009, 2009 IEEE/ACM International Conference on Automated Software Engineering.

[14]  Andreas Classen,et al.  A text-based approach to feature modelling: Syntax and semantics of TVL , 2011, Sci. Comput. Program..

[15]  Gerard J. Holzmann,et al.  The SPIN Model Checker - primer and reference manual , 2003 .

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

[17]  Stefania Gnesi,et al.  A behavioural model for product families , 2007, ESEC-FSE '07.

[18]  Kathi Fisler,et al.  Verifying cross-cutting features as open systems , 2002, SIGSOFT '02/FSE-10.

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

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

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

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

[23]  Kathi Fisler,et al.  Modular verification of collaboration-based software designs , 2001, ESEC/FSE-9.

[24]  Stefania Gnesi,et al.  Formal Modeling for Product Families Engineering , 2008, 2008 12th International Software Product Line Conference.

[25]  Maurice H. ter Beek,et al.  Formal Description of Variability in Product Families , 2011, 2011 15th International Software Product Line Conference.

[26]  Mark Ryan,et al.  The feature construct for SMV: Semantics , 2000, FIW.

[27]  Edmund M. Clarke,et al.  Design and Synthesis of Synchronization Skeletons Using Branching Time Temporal Logic , 2008, 25 Years of Model Checking.

[28]  Kathi Fisler,et al.  Verifying aspect advice modularly , 2004, SIGSOFT '04/FSE-12.

[29]  Kenneth L. McMillan,et al.  Symbolic model checking , 1992 .

[30]  Pierre-Yves Schobbens,et al.  Managing evolution in software product lines: a model-checking perspective , 2012, VaMoS.

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

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

[33]  Pierre-Yves Schobbens,et al.  What ' s in a Feature ? A Requirements Engineering Perspective , 2008 .

[34]  Michal Antkiewicz,et al.  Mapping features to models: a template approach based on superimposed variants , 2005, GPCE'05.

[35]  Sven Apel,et al.  Detection of feature interactions using feature-aware verification , 2011, 2011 26th IEEE/ACM International Conference on Automated Software Engineering (ASE 2011).

[36]  Maurice H. ter Beek,et al.  A Deontic Logical Framework for Modelling Product Families , 2010, VaMoS.

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

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

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

[40]  Bashar Nuseibeh,et al.  Towards safer composition , 2009, 2009 31st International Conference on Software Engineering - Companion Volume.