Skip to main content
Log in

Abstract

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  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)

  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)

  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)

  4. Baier C., Katoen J.-P.: Principles of Model Checking. MIT Press, Boca Raton (2007)

    Google Scholar 

  5. Batory, D.S.: Feature models, grammars, and propositional formulas. In: SPLC ’05. LNCS, vol. 3714, pp. 7–20. Springer, Berlin (2005)

  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)

  7. Bryant R.E.: Symbolic boolean manipulation with ordered binary-decision diagrams. ACM Comput. Surv. 24(3), 293–318 (1992)

    Article  Google Scholar 

  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)

    Article  MATH  Google Scholar 

  9. Classen, A. http://www.info.fundp.ac.be/~acs/fts. (2010)

  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)

  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)

    Article  Google Scholar 

  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)

  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)

  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)

  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)

  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)

  17. Fantechi, A., Gnesi, S.: Formal modeling for product families engineering. In: SPLC ’08, pp. 193–202. IEEE (2008)

  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)

  19. Garrido, A., Johnson, R.: Analyzing multiple configurations of a C program. In: ICSM ’05, pp. 379–388. IEEE (2005)

  20. Gastin, P., Oddoux, D.: Fast LTL to Bnchi automata translation. In: CAV ’01. LNCS, vol. 2102, pp. 53–65. Springer, Berlin (2001)

  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)

  22. Holzmann, G.J.: State compression in SPIN. In: the 3rd SPIN Workshop (1997)

  23. Holzmann G.J.: The SPIN Model Checker: Primer and Reference Manual. Addison-Wesley, Menlo Park (2004)

    Google Scholar 

  24. Jhala R., Majumdar R.: Software model checking. ACM Comput. Surv. 41(4), 21:1–21:54 (2009)

    Article  Google Scholar 

  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)

  26. Kästner, C., Apel, S., Kuhlemann, M.: Granularity in software product lines. In: ICSE ’08, pp. 311–320. ACM, New York (2008)

  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)

  28. Kishi T., Noda N.: Formal verification and software product lines. Commun. ACM 49(12), 73–77 (2006)

    Article  Google Scholar 

  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)

    Article  Google Scholar 

  30. Larsen, K.G.: Modal specifications. In: Automatic Verification Methods for Finite State Systems. LNCS, vol. 407, pp. 232–246. Springer, Berlin (1989)

  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)

  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)

  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)

    Article  Google Scholar 

  34. Plath M., Ryan M.: Feature integration using a feature construct. Sci. Comput. Program. 41(1), 53–84 (2001)

    Article  MATH  Google Scholar 

  35. Pnueli, A.: The temporal logic of programs. In: FOCS ’97, pp. 46–57. IEEE (1977)

  36. Post, H., Sinz, C.: Configuration lifting: Verification meets software configuration. In: ASE’08, pp. 347–350. IEEE CS (2008)

  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)

  38. Vardi, M.Y., Wolper, P.: An automata-theoretic approach to automatic program verification. In: LICS ’86, pp. 332–344. IEEE (1986)

  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)

Download references

Author information

Authors and Affiliations

Authors

Corresponding authors

Correspondence to Andreas Classen or Maxime Cordy.

Additional information

A. Classen and M. Cordy are FNRS research fellows.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Classen, A., Cordy, M., Heymans, P. et al. Model checking software product lines with SNIP. Int J Softw Tools Technol Transfer 14, 589–612 (2012). https://doi.org/10.1007/s10009-012-0234-1

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10009-012-0234-1

Keywords

Navigation