Modelling and Model Checking Variability-Intensive Systems
暂无分享,去创建一个
The premise of variability-intensive systems, specifically in software product line engineering, is the ability to produce a large family of different systems efficiently. However, in the case of safety critical systems, only a tiny fraction of the possible systems are generally offered to customers. One reason for this is that current quality assurance techniques used in the development of these systems, such as model checking, are designed for systems with no variability. In consequence, they are costly to apply to the whole system family. More specifically, when differences between systems are expressed in terms of features, the number of possible systems in a family is exponential in the number of features. Two major challenges for quality assurance techniques are thus scalable models and efficient algorithms. We address these challenges for a specific quality assurance technique: model checking. The proposed model checking approach is based on Featured Transition Systems (FTS), a novel formalism introduced in this thesis. FTS are a compact mathematical model for representing the behaviours of a variability-intensive system. Basically, they are transition systems in which the presence of a transition depends on the features of the system. We define and study model checking algorithms that allow to verify FTS against temporal properties. They either prove that all systems of the family satisfy the property, or identify those that do not. Properties can be specified in feature LTL and feature CTL, extensions of the well known linear and branching time temporal logics. In addition to the mathematical foundation, we discuss two implementations of FTS that can be used by non-experts. A first uses a symbolic representation of the state space and is implemented as part of the NuSMV model checker. The second, SNIP, uses a semi-symbolic on-the-fly algorithm. SNIP comes with an intuitive specification language based on Promela. Finally, we propose theoretical and empirical evaluations of our results. The baseline for our empirical evaluation is the application of classical model checking algorithms to each system of the family. Experiments conducted with both model checkers show that our algorithms can achieve order-of-magnitude speedups.