We use Featured Transition Systems (FTS) to model Software Product Lines (SPLs).
•
We design symbolic algorithms for checking an FTS against temporal properties.
•
We give a new compositional formal semantics to the fSMV language.
•
We prove the expressiveness equivalence between fSMV and FTS.
•
We evaluate practical implications of our results through our toolset and case study.
Abstract
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.
This article is an extended version of the paper A. Classen, P. Heymans, P.-Y. Schobbens, A. Legay, Symbolic model checking of software product lines, in: Proceedings of ICSE ʼ11, ACM, 2011, pp. 321–330.