Model checking software product lines with SNIP

  • Andreas ClassenEmail author
  • Maxime CordyEmail author
  • Patrick Heymans
  • Axel Legay
  • Pierre-Yves Schobbens


We present SNIP, an efficient model checker for software product lines (SPLs). Variability in software product lines is generally expressed in terms of features, and the number of potential products is exponential in the number of features. Whereas classical model checkers are only capable of checking properties against each individual product in the product line, SNIP exploits specifically designed algorithms to check all products in a single step. This is done by using a concise mathematical structure for product line behaviour, that exploits similarities and represents the behaviour of all products in a compact manner. Specification of an SPL in SNIP relies on the combination of two specification languages: TVL to describe the variability in the product line, and fPromela to describe the behaviour of the individual products. SNIP is thus one of the first tools equipped with specification languages to formally express both the variability and the behaviours of the products of the product line. The paper assesses SNIP and suggests that this is the first model checker for SPLs that can be used outside the academic arena.


Model checking Product lines Tool Language Feature 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Apel, S., Speidel, H., Wendler, P., von Rhein, A., Beyer, D.: Detection of feature interactions using feature-aware verification. In: ASE 2011, pp. 372–375. IEEE (2011)Google Scholar
  2. 2.
    Asirelli, P., ter Beek, M.H., Fantechi, A., Gnesi, S.: A logical framework to deal with variability. In: IFM ’10. LNCS, vol. 6396, pp. 43–58. Springer, Berlin (2010)Google Scholar
  3. 3.
    Asirelli, P., ter Beek, M.H., Fantechi, A., Gnesi, S.: Formal description of variability in product families. In: SPLC’11, pp. 130–139. IEEE CS (2011)Google Scholar
  4. 4.
    Baier C., Katoen J.-P.: Principles of Model Checking. MIT Press, Boca Raton (2007)Google Scholar
  5. 5.
    Batory, D.S.: Feature models, grammars, and propositional formulas. In: SPLC ’05. LNCS, vol. 3714, pp. 7–20. Springer, Berlin (2005)Google Scholar
  6. 6.
    Boucher, Q., Classen, A., Heymans, P., Bourdoux, A., Demonceau, L.: Tag and prune: a pragmatic approach to software product line implementation. In: ASE ’10, pp. 333–336. ACM, New York (2010)Google Scholar
  7. 7.
    Bryant R.E.: Symbolic boolean manipulation with ordered binary-decision diagrams. ACM Comput. Surv. 24(3), 293–318 (1992)CrossRefGoogle Scholar
  8. 8.
    Cimatti A., Clarke E., Giunchiglia F., Roveri M.: NuSMV: a new symbolic model checker. Int. J. Softw. Tools Technol. Transf. 2, 410–425 (2000)zbMATHCrossRefGoogle Scholar
  9. 9.
  10. 10.
    Classen, A.: Modelling and Model Checking Variability-Intensive Systems. PhD thesis, PReCISE Research Centre, Faculty of Computer Science, University of Namur (FUNDP), 5000 Namur, Belgium (2011)Google Scholar
  11. 11.
    Classen A., Boucher Q., Heymans P.: A text-based approach to feature modelling: syntax and semantics of TVL. Sci. Comput. Programm. 76, 1130–1143 (2011)CrossRefGoogle Scholar
  12. 12.
    Classen, A., Heymans, P., Schobbens, P.-Y., Legay, A.: Symbolic model checking of software product lines. In: ICSE ’11, pp. 321–330. ACM, New York (2011)Google Scholar
  13. 13.
    Classen, A., Heymans, P., Schobbens, P.-Y., Legay, A., Raskin, J.-F.: Model checking lots of systems: Efficient verification of temporal properties in software product lines. In: ICSE ’10, pp. 335–344. ACM, New York (2010)Google Scholar
  14. 14.
    Classen, A., Heymans, P., Schobbens, P.-Y., Legay, A., Raskin, J.-F.: Modelling and model checking variability-intensive systems with featured transition systems. IEEE Trans. Softw. Eng. (2012) (Submitted)Google Scholar
  15. 15.
    Consultative Committee for Space Data Systems (CCSDS). CCSDS File Delivery Protocol (CFDP): Blue Book, Issue 4. Number CCSDS 727.0-B-4. NASA (2007)Google Scholar
  16. 16.
    Czarnecki, K., Antkiewicz, M.: Mapping features to models: a template approach based on superimposed variants. In: Gluck, R., Lowry, M. (eds.) GPCE ’05. LNCS, vol. 3676, pp. 422–437. Springer, Berlin (2005)Google Scholar
  17. 17.
    Fantechi, A., Gnesi, S.: Formal modeling for product families engineering. In: SPLC ’08, pp. 193–202. IEEE (2008)Google Scholar
  18. 18.
    Fischbein, D., Uchitel, S., Braberman, V.: A foundation for behavioural conformance in software product line architectures. In ROSATEA ’06, ISSTA ’06 workshop, pp. 39–48. ACM, New York (2006)Google Scholar
  19. 19.
    Garrido, A., Johnson, R.: Analyzing multiple configurations of a C program. In: ICSM ’05, pp. 379–388. IEEE (2005)Google Scholar
  20. 20.
    Gastin, P., Oddoux, D.: Fast LTL to Bnchi automata translation. In: CAV ’01. LNCS, vol. 2102, pp. 53–65. Springer, Berlin (2001)Google Scholar
  21. 21.
    Gruler, A., Leucker, M., Scheidemann, K.: Modeling and model checking software product lines. In: FMOODS ’08. LNCS, vol. 5051, pp. 113–131. Springer, Berlin (2008)Google Scholar
  22. 22.
    Holzmann, G.J.: State compression in SPIN. In: the 3rd SPIN Workshop (1997)Google Scholar
  23. 23.
    Holzmann G.J.: The SPIN Model Checker: Primer and Reference Manual. Addison-Wesley, Menlo Park (2004)Google Scholar
  24. 24.
    Jhala R., Majumdar R.: Software model checking. ACM Comput. Surv. 41(4), 21:1–21:54 (2009)CrossRefGoogle Scholar
  25. 25.
    Kang, K., Cohen, S., Hess, J., Novak, W., Peterson, S.: Feature-oriented domain analysis (FODA) feasibility study. Technical Report CMU/SEI-90-TR-21, SEI (1990)Google Scholar
  26. 26.
    Kästner, C., Apel, S., Kuhlemann, M.: Granularity in software product lines. In: ICSE ’08, pp. 311–320. ACM, New York (2008)Google Scholar
  27. 27.
    Kästner, C., Giarrusso, P.G., Ostermann, K.: Partial preprocessing C code for variability analysis. In: VaMoS ’11, ICPS, pp. 127–136. ACM, New York (2011)Google Scholar
  28. 28.
    Kishi T., Noda N.: Formal verification and software product lines. Commun. ACM 49(12), 73–77 (2006)CrossRefGoogle Scholar
  29. 29.
    Kramer J., Magee J., Sloman M., Lister A.: CONIC: an integrated approach to distributed computer control systems. IEEE Proc. Comput. Digit. Tech. 130(1), 1–10 (1983)CrossRefGoogle Scholar
  30. 30.
    Larsen, K.G.: Modal specifications. In: Automatic Verification Methods for Finite State Systems. LNCS, vol. 407, pp. 232–246. Springer, Berlin (1989)Google Scholar
  31. 31.
    Larsen, K.G., Nyman, U., Wasowski, A.: Modal I/O automata for interface and product line theories. In: ESOP ’07. LNCS, vol. 4021, pp. 64–79. Springer, Berlin (2007)Google Scholar
  32. 32.
    Lauenroth, K., Töhning, S., Pohl, K.: Model checking of domain artifacts in product line engineering. In: ASE ’09, pp. 269–280. IEEE/ACM (2009)Google Scholar
  33. 33.
    Liu J., Dehlinger J., Lutz R.: Safety analysis of software product lines using state-based modeling. J. Syst. Softw. 80(11), 1879–1892 (2007)CrossRefGoogle Scholar
  34. 34.
    Plath M., Ryan M.: Feature integration using a feature construct. Sci. Comput. Program. 41(1), 53–84 (2001)zbMATHCrossRefGoogle Scholar
  35. 35.
    Pnueli, A.: The temporal logic of programs. In: FOCS ’97, pp. 46–57. IEEE (1977)Google Scholar
  36. 36.
    Post, H., Sinz, C.: Configuration lifting: Verification meets software configuration. In: ASE’08, pp. 347–350. IEEE CS (2008)Google Scholar
  37. 37.
    Schobbens, P.-Y., Heymans, P., Trigaux, J.-C., Bontemps, Y.: Feature Diagrams: A Survey and A Formal Semantics. In: RE ’06, pp. 139–148. IEEE CS (2006)Google Scholar
  38. 38.
    Vardi, M.Y., Wolper, P.: An automata-theoretic approach to automatic program verification. In: LICS ’86, pp. 332–344. IEEE (1986)Google Scholar
  39. 39.
    Ziadi, T., Hélouët, L., Jézéquel, J.-M.: Towards a UML profile for software product lines. In: van der Linden, F. (ed.) PFE ’03. LNCS, vol. 3014, pp. 129–139. Springer, Berlin (2003)Google Scholar

Copyright information

© Springer-Verlag 2012

Authors and Affiliations

  1. 1.University of NamurNamurBelgium
  2. 2.IRISA/INRIA RennesRennesFrance
  3. 3.University of LiègeLiègeBelgium
  4. 4.INRIA Lille-Nord Europe, Université Lille 1, LIFL, CNRSLilleFrance

Personalised recommendations