Towards Compositional Approach for Parametric Model Checking in Software Product Lines

Parametric model-checking allows the use of a single model to obtain properties values from different configurations through an arithmetic formula. Formulas with hundreds of operands and operators can be evaluated at runtime in milliseconds on current computers. Neverthless, those formulas may not scale to devices with limited resources. This work-in-progress addresses this problem by presenting a compositional parametric model checking approach able to produce partial factorized formulas. This approach simplifies the model checking by verifying smaller models separately instead of a unique large model since the effort to recombine the formulas is as simple as text replacement. Software dependability evaluation is an important issue, especially when it comes to critical systems. Estimating software reliability early in the development cycle allows us to make important decisions in design phase. However, ensuring dependability is not a trivial problem. Model checking can be used to estimate the reliability of a software through models that represent the behaviour of the system. By performing sensitivity analysis of the components, it is possible to identify which components are most critical in the software quantitative assessment. Parametric model checking is a technique that allows late evaluation of parameters in a model. This technique outputs an arithmetical formula parametrized with parameters defined in the model. This flexibility can be used to deal with variabilities of Software Product Lines (SPLs) directly in the models avoiding the infeasible work of building different models for different products of a SPL as showed in our previous work and in some other related ones [5, 2]. PARAM is a tool for probabilistic parametric model checking. We call PARAM model one that uses this variant of the PRISM language. The PARAM tool takes as input a PARAM model and a PCTL expression and produces as output an arithmetical formula with the parameters defined in the model. Through the evaluation of these parameters it is possible to obtain the values that answer the queries in the given Probabilistic Computation Tree Logic (PCTL) [4]. Evaluating a formula at runtime brings to light some practical issues related with the formula size. Some authors have already warned that the excessive use of parameters in the model can lead tools to actually not make the model checking and just output a formula representing all the computation [3, 2]. In our last work, [5], we showed that wrong choices in modeling strategy can lead models to output large formulas and detailed the PARAM tool process of obtaining the arithmetic formula from a parametric model emphasizing the modelling decisions and relating it to its actual impact on the formula size in a quantitative way. Formulas with hundreds of operands and operators can be evaluated at runtime in milliseconds on current computers. The same is not true when it comes to mobile devices with limited resources. This position paper addresses this problem by presenting a compositional parametric model checking approach (CPMC) able to reduce the formula size by producing partial factorized formulas and removing redundancies observed in fully expanded formula. We follow a modular approach by dividing the software behaviour specification in independent parts such that each part can be modelled and checked separately producing independent formulas. We also show how these formulas can be composed to generate the partial factorized formula corresponding to the model checking of the entire SPL. This approach simplifies the model checking by verifying smaller models separately instead of a unique large model since the effort to recombine the formulas is as simple as text replacement.