Family-Based Model Checking with mCRL2

  • Maurice H. ter BeekEmail author
  • Erik P. de Vink
  • Tim A. C. Willemse
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 10202)


Family-based model checking targets the simultaneous verification of multiple system variants, a technique to handle feature-based variability that is intrinsic to software product lines (SPLs). We present an approach for family-based verification based on the feature \(\mu \)-calculus \(\mu L {}_f\), which combines modalities with feature expressions. This logic is interpreted over featured transition systems, a well-accepted model of SPLs, which allows one to reason over the collective behavior of a number of variants (a family of products). Via an embedding into the modal \(\mu \)-calculus with data, underpinned by the general-purpose mCRL2 toolset, off-the-shelf tool support for \(\mu L {}_f\) becomes readily available. We illustrate the feasibility of our approach on an SPL benchmark model and show the runtime improvement that family-based model checking with mCRL2 offers with respect to model checking the benchmark product-by-product.


Model Check Product Family Software Product Line Feature Expression Statistical Model Check 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.



Maurice ter Beek was supported by the EU FP7 project QUANTICOL (600708). The authors are grateful to Franco Mazzanti for his help with the minepump model. Finally, we thank the anonymous referees for their suggestions, which helped improve the presentation of this paper.


  1. 1.
    Thüm, T., et al.: A classification and survey of analysis strategies for software product lines. ACM Comput. Surv. 47(1), 1–45 (2014)CrossRefGoogle Scholar
  2. 2.
    Gruler, A., Leucker, M., Scheidemann, K.: Modeling and model checking software product lines. In: Barthe, G., Boer, F.S. (eds.) FMOODS 2008. LNCS, vol. 5051, pp. 113–131. Springer, Heidelberg (2008). doi: 10.1007/978-3-540-68863-1_8 CrossRefGoogle Scholar
  3. 3.
    Lauenroth, K., Pohl, K., Töhning, S.: Model checking of domain artifacts in product line engineering. In: ASE, pp. 269–280. IEEE (2009)Google Scholar
  4. 4.
    Classen, A., et al.: Model checking \(\underline{\text{lots}}\) of systems: efficient verification of temporal properties in software product lines. In: ICSE, pp. 335–344. ACM (2010)Google Scholar
  5. 5.
    Damiani, F., Schaefer, I.: Family-based analysis of type safety for delta-oriented software product lines. In: Margaria, T., Steffen, B. (eds.) ISoLA 2012. LNCS, vol. 7609, pp. 193–207. Springer, Heidelberg (2012). doi: 10.1007/978-3-642-34026-0_15 CrossRefGoogle Scholar
  6. 6.
    Thüm, T., Schaefer, I., Hentschel, M., Apel, S.: Family-based deductive verification of software product lines. In: GPCE, pp. 11–20. ACM (2012)Google Scholar
  7. 7.
    ter Beek, M.H., Fantechi, A., Gnesi, S., Mazzanti, F.: Using FMC for family-based analysis of software product lines. In: SPLC, pp. 432–439. ACM (2015)Google Scholar
  8. 8.
    Dimovski, A.S., Al-Sibahi, A.S., Brabrand, C., Wąsowski, A.: Family-based model checking without a family-based model checker. In: Fischer, B., Geldenhuys, J. (eds.) SPIN 2015. LNCS, vol. 9232, pp. 282–299. Springer, Cham (2015). doi: 10.1007/978-3-319-23404-5_18 CrossRefGoogle Scholar
  9. 9.
    Clarke, E.M., Emerson, E.A., Sifakis, J.: Model checking: algorithmic verification and debugging. C. ACM 52(11), 74–84 (2009)CrossRefGoogle Scholar
  10. 10.
    Gruler, A., Leucker, M., Scheidemann, K.: Calculating and modeling common parts of software product lines. In: SPLC, pp. 203–212. IEEE (2008)Google Scholar
  11. 11.
    ter Beek, M.H., Lluch Lafuente, A., Petrocchi, M.: Combining declarative and procedural views in the specification and analysis of product families. In: SPLC, vol. 2, pp. 10–17. ACM (2013)Google Scholar
  12. 12.
    Lochau, M., Mennicke, S., Baller, H., Ribbeck, L.: Incremental model checking delta-oriented software product lines. J. Log. Algebr. Meth. Program. 85(1), 245–267 (2016)MathSciNetCrossRefzbMATHGoogle Scholar
  13. 13.
    Classen, A., et al.: Featured transition systems: foundations for verifying variability-intensive systems and their application to LTL model checking. IEEE Trans. Softw. Eng. 39(8), 1069–1089 (2013)CrossRefGoogle Scholar
  14. 14.
    Classen, A., et al.: Formal semantics, modular specification, and symbolic verification of product-line behaviour. Sci. Comput. Program. 80(B), 416–439 (2014)CrossRefGoogle Scholar
  15. 15.
    ter Beek, M.H., Fantechi, A., Gnesi, S., Mazzanti, F.: Modelling and analysing variability in product families: model checking of modal transition systems with variability constraints. J. Log. Algebr. Meth. Program. 85(2), 287–315 (2016)MathSciNetCrossRefzbMATHGoogle Scholar
  16. 16.
    ter Beek, M.H., Mazzanti, F., Sulova, A.: VMC: a tool for product variability analysis. In: Giannakopoulou, D., Méry, D. (eds.) FM 2012. LNCS, vol. 7436, pp. 450–454. Springer, Heidelberg (2012). doi: 10.1007/978-3-642-32759-9_36 CrossRefGoogle Scholar
  17. 17.
    Classen, A., et al.: Model checking software product lines with SNIP. Int. J. Softw. Tools Technol. Transf. 14(5), 589–612 (2012)CrossRefGoogle Scholar
  18. 18.
    Cordy, A., et al.: ProVeLines: a product line of verifiers for software product lines. In: SPLC, vol. 2, pp. 141–146. ACM (2013)Google Scholar
  19. 19.
    ter Beek, M.H., de Vink, E.P.: Using mCRL2 for the analysis of software product lines. In: FormaliSE, pp. 31–37. IEEE (2014)Google Scholar
  20. 20.
    ter Beek, M.H., de Vink, E.P., Willemse, T.A.C.: Towards a feature mu-calculus targeting SPL verification. In: FMSPLE, EPTCS, vol. 206, pp. 61–75 (2016)Google Scholar
  21. 21.
    Cranen, S., Groote, J.F., Keiren, J.J.A., Stappers, F.P.M., de Vink, E.P., Wesselink, W., Willemse, T.A.C.: An overview of the mCRL2 toolset and its recent advances. In: Piterman, N., Smolka, S.A. (eds.) TACAS 2013. LNCS, vol. 7795, pp. 199–213. Springer, Heidelberg (2013). doi: 10.1007/978-3-642-36742-7_15 CrossRefGoogle Scholar
  22. 22.
    Groote, J.F., Mousavi, M.R.: Modeling and Analysis of Communicating Systems. MIT Press, Cambridge (2014)zbMATHGoogle Scholar
  23. 23.
    Kim, C.H.P., et al.: SPLat: lightweight dynamic analysis for reducing combinatorics in testing configurable systems. In: ESEC/FSE, pp. 257–267. ACM (2013)Google Scholar
  24. 24.
    Bürdek, J., Lochau, M., Bauregger, S., Holzer, A., von Rhein, A., Apel, S., Beyer, D.: Facilitating reuse in multi-goal test-suite generation for software product lines. In: Egyed, A., Schaefer, I. (eds.) FASE 2015. LNCS, vol. 9033, pp. 84–99. Springer, Heidelberg (2015). doi: 10.1007/978-3-662-46675-9_6 Google Scholar
  25. 25.
    Lity, S., Morbach, T., Thüm, T., Schaefer, I.: Applying incremental model slicing to product-line regression testing. In: Kapitsaki, G.M., Santana de Almeida, E. (eds.) ICSR 2016. LNCS, vol. 9679, pp. 3–19. Springer, Cham (2016). doi: 10.1007/978-3-319-35122-3_1 Google Scholar
  26. 26.
    Beohar, H., Varshosaz, M., Mousavi, M.R.: Basic behavioral models for software product lines: expressiveness and testing pre-orders. Sci. Comput. Program. 123, 42–60 (2016)CrossRefGoogle Scholar
  27. 27.
    Ghezzi, C., Sharifloo, A.: Model-based verification of quantitative non-functional properties for software product lines. Inform. Softw. Technol. 55(3), 508–524 (2013)CrossRefGoogle Scholar
  28. 28.
    Varshosaz, M., Khosravi, R.: Discrete time markov chain families: modeling and verification of probabilistic software product lines. In: SPLC, vol. 2, pp. 34–41. ACM (2013)Google Scholar
  29. 29.
    Rodrigues, G.N., et al.: Modeling and verification for probabilistic properties in software product lines. In: HASE, pp. 173–180. IEEE (2015)Google Scholar
  30. 30.
    Dubslaff, C., Baier, C., Klüppelholz, S.: Probabilistic model checking for feature-oriented systems. In: Chiba, S., Tanter, É., Ernst, E., Hirschfeld, R. (eds.) Transactions on Aspect-Oriented Software Development XII. LNCS, vol. 8989, pp. 180–220. Springer, Heidelberg (2015). doi: 10.1007/978-3-662-46734-3_5 Google Scholar
  31. 31.
    Kwiatkowska, M., Norman, G., Parker, D.: PRISM 4.0: verification of probabilistic real-time systems. In: Gopalakrishnan, G., Qadeer, S. (eds.) CAV 2011. LNCS, vol. 6806, pp. 585–591. Springer, Heidelberg (2011). doi: 10.1007/978-3-642-22110-1_47 CrossRefGoogle Scholar
  32. 32.
    Chrszon, P., Dubslaff, C., Klüppelholz, S., Baier, C.: Family-based modeling and analysis for probabilistic systems – featuring ProFeat. In: Stevens, P., Wąsowski, A. (eds.) FASE 2016. LNCS, vol. 9633, pp. 287–304. Springer, Heidelberg (2016). doi: 10.1007/978-3-662-49665-7_17 CrossRefGoogle Scholar
  33. 33.
    ter Beek, M.H., Legay, A., Lluch Lafuente, A., Vandin, A.: Statistical analysis of probabilistic models of software product lines with quantitative constraints. In: SPLC, pp. 11–15. ACM (2015)Google Scholar
  34. 34.
    ter Beek, M.H., Legay, A., Lluch Lafuente, A., Vandin, A.: Statistical model checking for product lines. In: Margaria, T., Steffen, B. (eds.) ISoLA 2016. LNCS, vol. 9952, pp. 114–133. Springer, Cham (2016). doi: 10.1007/978-3-319-47166-2_8 CrossRefGoogle Scholar
  35. 35.
    Bradfield, J.C., Stirling, C.: Modal logics and \(\mu \)-calculi: an introduction. In: Handbook of Process Algebra, Chap. 4, pp. 293–330. Elsevier (2001)Google Scholar
  36. 36.
    Groote, J.F., Mateescu, R.: Verification of temporal properties of processes in a setting with data. In: Haeberer, A.M. (ed.) AMAST 1999. LNCS, vol. 1548, pp. 74–90. Springer, Heidelberg (1998). doi: 10.1007/3-540-49253-4_8 CrossRefGoogle Scholar
  37. 37.
    Groote, J.F., Willemse, T.A.C.: Model-checking processes with data. Sci. Comput. Program. 56(3), 251–273 (2005)MathSciNetCrossRefzbMATHGoogle Scholar
  38. 38.
    Zantema, H., van de Pol, J.C.: A rewriting approach to binary decision diagrams. J. Log. Algebr. Program. 49(1–2), 61–86 (2001)MathSciNetCrossRefzbMATHGoogle Scholar
  39. 39.
    Kramer, J., Magee, J., Sloman, M., Lister, A.: CONIC: an integrated approach to distributed computer control systems. IEE Proc. E 130(1), 1–10 (1983)CrossRefGoogle Scholar
  40. 40.
    Giannakopoulou, D., Magee, J.: Fluent model checking for event-based systems. In: ESEC/FSE, pp. 257–266. ACM (2003)Google Scholar
  41. 41.
    Clarke, E.M., Grumberg, O., Peled, D.A.: Model Checking. MIT Press, Cambridge (1999)Google Scholar

Copyright information

© Springer-Verlag GmbH Germany 2017

Authors and Affiliations

  • Maurice H. ter Beek
    • 1
    Email author
  • Erik P. de Vink
    • 2
  • Tim A. C. Willemse
    • 2
  1. 1.ISTI–CNRPisaItaly
  2. 2.TU/eEindhovenThe Netherlands

Personalised recommendations