Formal Aspects of Computing

, Volume 30, Issue 1, pp 45–75 | Cite as

ProFeat: feature-oriented engineering for family-based probabilistic model checking

  • Philipp Chrszon
  • Clemens Dubslaff
  • Sascha Klüppelholz
  • Christel Baier
Original Article


The concept of features provides an elegant way to specify families of systems. Given a base system, features encapsulate additional functionalities that can be activated or deactivated to enhance or restrict the base system’s behaviors. Features can also facilitate the analysis of families of systems by exploiting commonalities of the family members and performing an all-in-one analysis, where all systems of the family are analyzed at once on a single family model instead of one-by-one. Most prominent, the concept of features has been successfully applied to describe and analyze (software) product lines. We present the tool ProFeat that supports the feature-oriented engineering process for stochastic systems by probabilistic model checking. To describe families of stochastic systems, ProFeat extends models for the prominent probabilistic model checker Prism by feature-oriented concepts, including support for probabilistic product lines with dynamic feature switches, multi-features and feature attributes. ProFeat provides a compact symbolic representation of the analysis results for each family member obtained by Prism to support, e.g., model repair or refinement during feature-oriented development. By means of several case studies we show how ProFeat eases family-based quantitative analysis and compare one-by-one and all-in-one analysis approaches.


Feature-oriented systems Probabilistic model checking Software product line analysis 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. AH99.
    Alur R, Henzinger TA (1999) Reactive modules. Form Methods Syst Des, 15(1): 7–48CrossRefGoogle Scholar
  2. AH10.
    Apel S, Hutchins D (2010) A calculus for uniform feature composition. ACM Trans Program Lang Syst 32(5): 19CrossRefGoogle Scholar
  3. AJTK09.
    Apel S, Janda F, Trujillo S, Kästner C (2009) Model superimposition in software product lines. In: ICMT’09, volume 5563 of LNCS, pp 4–19. Springer, BerlinGoogle Scholar
  4. AK09.
    Apel S, Kästner C (2009) An overview of feature-oriented software development. J Object Technol 8(5): 49–84CrossRefGoogle Scholar
  5. Ake78.
    Akers SB (June 1978) Binary decision diagrams. IEEE Trans Comput 27(6):509–516Google Scholar
  6. ARW+13.
    Apel S, von Rhein A, Wendler P, Groesslinger A, Beyer D (2013) Strategies for product-line verification: case studies and experiments. In: Proceedings of the 2013 international conference on software engineering, ICSE ’13. IEEE, pp 482–491Google Scholar
  7. ASW+11.
    Apel S, Speidel H, Wendler P, von Rhein A, Beyer D (2011) Detection of feature interactions using feature-aware verification. In: International conference on automated software engineering (ASE). IEEE, pp 372–375Google Scholar
  8. AtBGF11.
    Asirelli P, ter Beek MH, Gnesi S, Fantechi A (2011) Formal description of variability in product families. In: Proceedings of the 2011 15th international software product line conference, SPLC ’11. IEEE Computer Society, Washington, DC, USA, pp 130–139Google Scholar
  9. BdA95.
    Bianco A, de Alfaro L (1995) Model checking of probabilistic and non-deterministic systems. In: FSTTCS’95, volume 1026 of LNCS, pp 499–513Google Scholar
  10. BDD+14.
    Baier C, Daum M, Dubslaff C, Klein J, Klüppelholz S (2014) Energy-utility quantiles. Springer, Berlin, pp 285–299Google Scholar
  11. BEK+13.
    Baier C, Engel B, Klüppelholz S, Märcker S, Tews H, Völp M (2013) A probabilistic quantitative analysis of probabilistic-write/copy-select. In: Proceedings of the 5th NASA formal methods symposium (NFM), LNCS. Springer, pp 307–321Google Scholar
  12. BFG+97.
    Bahar RI, Frohm EA, Gaona CM, Hachtel GD, Macii E, Pardo A, Somenzi F (1997) Algebraic decision diagrams and their applications. Form Methods Syst Des 10(2/3): 171–206CrossRefGoogle Scholar
  13. BK98.
    Baier C, Kwiatkowska M (1998) Model checking for a probabilistic branching time logic with fairness. Distrib Comput 11(3): 125–155CrossRefGoogle Scholar
  14. BK08.
    Baier C, Katoen J-P (2008) Principles of model checking. The MIT Press, CambridgezbMATHGoogle Scholar
  15. Bry86.
    Bryant RE (1986) Graph-based algorithms for boolean function manipulation. IEEE Trans Comput 35: 677–691CrossRefzbMATHGoogle Scholar
  16. BSRC10.
    Benavides D, Segura S, Ruiz-Cortés A (2010) Automated analysis of feature models 20 years later: A literature review. Inf Syst 35(6): 615–636CrossRefGoogle Scholar
  17. CBH11.
    Classen A, Boucher Q, Heymans P (2011) A text-based approach to feature modelling: syntax and semantics of TVL. Sci Comput Program 76(12): 1130–1143CrossRefGoogle Scholar
  18. CCH+12.
    Classen A, Cordy M, Heymans P, Legay A, Schobbens P-Y (2012) Model checking software product lines with SNIP. STTT 14(5): 589–612CrossRefGoogle Scholar
  19. CCH+13a.
    Cordy M, Classen A, Heymans P, Legay A, Schobbens P-Y (2013) Model checking adaptive software with featured transition systems. LNCS. Springer, Berlin, pp 1–29Google Scholar
  20. CCH+13b.
    Cordy M, Classen A, Heymans P, Schobbens P-Y, Legay A (2013) ProVeLines: a product line of verifiers for software product lines. In: 17th International software product line conference (SPLC). ACM, pp 141–146Google Scholar
  21. CCH+14.
    Classen A, Cordy M, Heymans P, Legay A, Schobbens P-Y (2014) Formal semantics, modular specification, and symbolic verification of product-line behaviour. Sci Comput Program 80: 416–439CrossRefGoogle Scholar
  22. CCS+13.
    Classen A, Cordy M, Schobbens P-Y, Heymans P, Legay A, Raskin J-F (2013) Featured transition systems: foundations for verifying variability-intensive systems and their application to LTL model checking. IEEE Trans Softw Eng 39(8): 1069–1089CrossRefGoogle Scholar
  23. CDKB16.
    Chrszon P, Dubslaff C, Klüppelholz S, Baier C (2016) Family-based modeling and analysis for probabilistic systems—featuring ProFeat. Springer, Berlin, pp 287–304Google Scholar
  24. CFM+93.
    Clarke EM, Fujita M, McGeers PC, McMillan KL, Yang JC-Y, Zhao X-J (1993) Multi-terminal binary decision diagrams: an efficient data structure for matrix representation. In: Proceedings of international workshop on logic and synthesisGoogle Scholar
  25. CHE05.
    Czarnecki K, Helsen S, Eisenecker UW (2005) Formalizing cardinality-based feature models and their specialization. Softw Process Improv Pract 10(1): 7–29CrossRefGoogle Scholar
  26. CHS+10.
    Classen A, Heymans P, Schobbens P-Y, Legay A, Raskin J-F (2010) Model checking lots of systems: efficient verification of temporal properties in software product lines. In: 32nd International conference on software engineering (ICSE). ACM, pp 335–344Google Scholar
  27. CN01.
    Clements P, Northrop L (2001) Software product lines: practices and patterns. Addison-Wesley Professional, ReadingGoogle Scholar
  28. CSHL13.
    Cordy M, Schobbens P-Y, Heymans P, Legay A (2013) Beyond boolean product-line model checking: dealing with feature attributes and multi-features. In: Proceedings of the 2013 international conference on software engineering, ICSE ’13. IEEE Press, pp 472–481Google Scholar
  29. DABW15.
    Dimovski AS, Al-Sibahi AS, Brabrand C, Wasowski A (2015) Family-based model checking without a family-based model checker. In: Model checking software—22nd international symposium, SPIN 2015, Stellenbosch, South Africa, August 24–26, 2015, Proceedings, pp 282–299Google Scholar
  30. Daw04.
    Daws C (2004) Symbolic and parametric model checking of discrete-time Markov chains. In: Theoretical aspects of computing—ICTAC 2004, volume 3407 of LNCS, pp 280–294Google Scholar
  31. DBK15.
    Dubslaff C, Baier C, Klüppelholz S (2015) Probabilistic model checking for feature-oriented systems. Trans Aspect-Oriented Softw Dev XII, 8989: 180–220Google Scholar
  32. Dij75.
    Dijkstra EW (1975) Guarded commands, nondeterminacy and formal derivation of programs. Commun ACM 18(8): 453–457MathSciNetCrossRefzbMATHGoogle Scholar
  33. DJJ+15.
    Dehnert C, Junges S, Jansen N, Corzilius F, Volk M, Bruintjes H, Katoen J-P, Abraham E (2015) PROPhESY: a probabilistic parameter synthesis tool. In: 27th International conference on computer aided verification (CAV), volume 9206 of LNCS, pp 214–231Google Scholar
  34. DJKV16.
    Dehnert C, Junges S, Katoen J-P, Volk M (2016) The probabilistic model checker Storm (extended abstract). arXiv:1610.08713
  35. DKB14.
    Dubslaff C, Klüppelholz S, Baier C (2014) Probabilistic model checking for energy analysis in software product lines. In: 13th International conference on modularity, MODULARITY ’14, Lugano, Switzerland, April 22–26, 2014, pp 169–180Google Scholar
  36. DMFM10.
    Dinkelaker T, Mitschke R, Fetzer K, Mezini M (2010) A dynamic software product line approach using aspect models at runtime. In: Proceedings of the 1st workshop on composition and variabilityGoogle Scholar
  37. DS11.
    Damiani F, Schaefer I (2011) Dynamic delta-oriented programming. In: Proceedings of the 15th International software product line conference, SPLC ’11. ACMGoogle Scholar
  38. FGT12.
    Filieri A, Ghezzi C, Tamburrelli G (2012) A formal approach to adaptive software: continuous assurance of non-functional requirements. Form Asp Comput 24(2): 163–186MathSciNetCrossRefzbMATHGoogle Scholar
  39. GH03.
    Gomaa H, Hussein M (2003) Dynamic software reconfiguration in software product families. In: PFE, pp 435–444Google Scholar
  40. GS13.
    Ghezzi C, Sharifloo AM (2013) Model-based verification of quantitative non-functional properties for software product lines. Inf Softw Technol 55(3): 508–524CrossRefGoogle Scholar
  41. HHWZ10.
    Hahn EM, Hermanns H, Wachter B, Zhang L (2010) PARAM: A model checker for parametric Markov models. In: 22nd International conference on computer aided verification (CAV), volume 6174 of LNCS, pp 660–664Google Scholar
  42. HHZ11.
    Hahn EM, Hermanns H, Zhang L (2011) Probabilistic reachability for parametric Markov models. Softw Tools Technol Transf 13(1): 3–19CrossRefGoogle Scholar
  43. Kat93.
    Katz S (1993) A superimposition control construct for distributed systems. ACM Trans Program Lang Syst 15(2): 337–356CrossRefGoogle Scholar
  44. KBC+16.
    Klein J, Baier C, Chrszon P, Daum M, Dubslaff C, Klüppelholz S, Märcker S, Müller D (2016) Advances in symbolic probabilistic model checking with PRISM. In: Tools and algorithms for the construction and analysis of systems—22nd international conference, TACAS 2016, Proceedings, pp 349–366Google Scholar
  45. KCH+90.
    Kang KC, Cohen SG, Hess JA, Novak WE, Peterson AS (1990) Feature-oriented domain analysis (FODA) feasibility study. Technical Report CMU/SEI-90-TR-21, Carnegie-Mellon UniversityGoogle Scholar
  46. KNP11.
    Kwiatkowska M, Norman G, Parker D (2011) PRISM 4.0: Verification of probabilistic real-time systems. In: Gopalakrishnan G, Qadeer S (eds) Proceedings of 23rd international conference on computer aided verification (CAV’11), volume 6806 of LNCS. Springer, pp 585–591Google Scholar
  47. KNP12.
    Kwiatkowska MZ, Norman G, Parker D (2012) The PRISM benchmark suite. In: Proceedings of quantitative evaluation of systems (QEST’12), pp 203–204. IEEE
  48. KST14.
    Kowal M, Schaefer I, Tribastone M (2014) Family-based performance analysis of variant-rich software systems. In: Fundamental approaches to software engineering, volume 8411 of LNCS, pp 94–108Google Scholar
  49. KZH+11.
    Katoen J-P, Zapreev IS, Hahn EM, Hermanns H, Jansen DN (2011) The ins and outs of the probabilistic model checker MRMC. Perform Eval 68(2): 90–104CrossRefGoogle Scholar
  50. Lee59.
    Lee CY (1959) Representation of switching circuits by binary-decision programs. Bell Syst Tech J 38(4): 985–999MathSciNetCrossRefGoogle Scholar
  51. LP17.
    Legay A, Perrouin G (2017) On quantitative requirements for product lines. In: Proceedings of the eleventh international workshop on variability modelling of software-intensive systems, VAMOS ’17, New York, NY, USA. ACM, pp 2–4Google Scholar
  52. LPT09.
    Lauenroth K, Pohl K, Toehning S (2009) Model checking of domain artifacts in product line engineering. In: 24th IEEE/ACM international conference on automated software engineering (ASE). IEEE, pp 269–280Google Scholar
  53. McC56.
    McCluskey EJ (1956) Minimization of boolean functions*. Bell Syst Tech J 35(6): 1417–1444MathSciNetCrossRefGoogle Scholar
  54. PR01.
    Plath M, Ryan M (2001) Feature integration using a feature construct. Sci Comput Program 41(1): 53–84CrossRefzbMATHGoogle Scholar
  55. PS95.
    Panda S, Somenzi F (1995) Who are the variables in your neighborhood. In: Proceedings of computer-aided design (ICCAD’95). IEEE, pp 74–77Google Scholar
  56. RAN+15.
    Rodrigues GN, Alves V, Nunes V, Lanna A, Cordy M, Schobbens P-Y, Sharifloo AM, Legay A (2015) Modeling and verification for probabilistic properties in software product lines. In: High assurance systems engineering (HASE). IEEE, pp 173–180Google Scholar
  57. Rud93.
    Rudell R (1993) Dynamic variable ordering for ordered binary decision diagrams. In: IEEE/ACM international conference on computer-aided design (ICCAD-93), pp 42–47Google Scholar
  58. Sch10.
    Schaefer I (2010) Variability modelling for model-driven development of software product lines. In: VaMoSGoogle Scholar
  59. Seg08.
    Segura S (2008) Automated analysis of feature models using atomicsets. In: SPLC (2), pp 201--207Google Scholar
  60. TAK+14.
    Thüm T, Apel S, Kästner C, Schaefer I, Saake G (June 2014) A classification and survey of analysis strategies for software product lines. ACM Comput Surv 47(1):6:1–6:45Google Scholar
  61. tBFGM16.
    ter Beek MH, Fantechi A, Gnesi S, Mazzanti F (2016) Modelling and analysing variability in product families: Model checking of modal transition systems with variability constraints. J Log Algebraic Methods Program 85(2): 287–315MathSciNetCrossRefzbMATHGoogle Scholar
  62. tBLLV15.
    ter Beek MH, Legay A, Lluch-Lafuente A, Vandin A (2015) Statistical analysis of probabilistic models of software product lines with quantitative constraints. In: 19th International conference on software product line (SPLC). ACM, pp 11–15Google Scholar
  63. tBMS12.
    ter Beek MH, Mazzanti F, Sulova A (2012) VMC: a tool for product variability analysis. Springer, Berlin, pp 450–454Google Scholar
  64. TKB+14.
    Thüm T, Kästner C, Benduhn F, Meinicke J, Saake G, Leich T (2014) FeatureIDE: an extensible framework for feature-oriented software development. Sci Comput Program 79:70–85Google Scholar
  65. vR16.
    von Rhein Alexander (2016) Analysis strategies for configurable systems. PhD thesis, University of PassauGoogle Scholar
  66. Weg00.
    Wegener I (2000) Branching programs and binary decision diagrams: theory and applications. Monographs on discrete mathematics and applications. SIAM PhiladelphiaGoogle Scholar

Copyright information

© British Computer Society 2017

Authors and Affiliations

  1. 1.Faculty of Computer ScienceTechnische Universität DresdenDresdenGermany

Personalised recommendations