Abstract
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.
Similar content being viewed by others
References
Alur R, Henzinger TA (1999) Reactive modules. Form Methods Syst Des, 15(1): 7–48
Apel S, Hutchins D (2010) A calculus for uniform feature composition. ACM Trans Program Lang Syst 32(5): 19
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, Berlin
Apel S, Kästner C (2009) An overview of feature-oriented software development. J Object Technol 8(5): 49–84
Akers SB (June 1978) Binary decision diagrams. IEEE Trans Comput 27(6):509–516
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–491
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–375
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–139
Bianco A, de Alfaro L (1995) Model checking of probabilistic and non-deterministic systems. In: FSTTCS’95, volume 1026 of LNCS, pp 499–513
Baier C, Daum M, Dubslaff C, Klein J, Klüppelholz S (2014) Energy-utility quantiles. Springer, Berlin, pp 285–299
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–321
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–206
Baier C, Kwiatkowska M (1998) Model checking for a probabilistic branching time logic with fairness. Distrib Comput 11(3): 125–155
Baier C, Katoen J-P (2008) Principles of model checking. The MIT Press, Cambridge
Bryant RE (1986) Graph-based algorithms for boolean function manipulation. IEEE Trans Comput 35: 677–691
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–636
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–1143
Classen A, Cordy M, Heymans P, Legay A, Schobbens P-Y (2012) Model checking software product lines with SNIP. STTT 14(5): 589–612
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–29
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–146
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–439
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–1089
Chrszon P, Dubslaff C, Klüppelholz S, Baier C (2016) Family-based modeling and analysis for probabilistic systems—featuring ProFeat. Springer, Berlin, pp 287–304
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 synthesis
Czarnecki K, Helsen S, Eisenecker UW (2005) Formalizing cardinality-based feature models and their specialization. Softw Process Improv Pract 10(1): 7–29
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–344
Clements P, Northrop L (2001) Software product lines: practices and patterns. Addison-Wesley Professional, Reading
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–481
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–299
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–294
Dubslaff C, Baier C, Klüppelholz S (2015) Probabilistic model checking for feature-oriented systems. Trans Aspect-Oriented Softw Dev XII, 8989: 180–220
Dijkstra EW (1975) Guarded commands, nondeterminacy and formal derivation of programs. Commun ACM 18(8): 453–457
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–231
Dehnert C, Junges S, Katoen J-P, Volk M (2016) The probabilistic model checker Storm (extended abstract). arXiv:1610.08713
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–180
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 variability
Damiani F, Schaefer I (2011) Dynamic delta-oriented programming. In: Proceedings of the 15th International software product line conference, SPLC ’11. ACM
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–186
Gomaa H, Hussein M (2003) Dynamic software reconfiguration in software product families. In: PFE, pp 435–444
Ghezzi C, Sharifloo AM (2013) Model-based verification of quantitative non-functional properties for software product lines. Inf Softw Technol 55(3): 508–524
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–664
Hahn EM, Hermanns H, Zhang L (2011) Probabilistic reachability for parametric Markov models. Softw Tools Technol Transf 13(1): 3–19
Katz S (1993) A superimposition control construct for distributed systems. ACM Trans Program Lang Syst 15(2): 337–356
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–366
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 University
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–591
Kwiatkowska MZ, Norman G, Parker D (2012) The PRISM benchmark suite. In: Proceedings of quantitative evaluation of systems (QEST’12), pp 203–204. IEEE https://github.com/prismmodelchecker/prism-benchmarks/.
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–108
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–104
Lee CY (1959) Representation of switching circuits by binary-decision programs. Bell Syst Tech J 38(4): 985–999
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–4
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–280
McCluskey EJ (1956) Minimization of boolean functions*. Bell Syst Tech J 35(6): 1417–1444
Plath M, Ryan M (2001) Feature integration using a feature construct. Sci Comput Program 41(1): 53–84
Panda S, Somenzi F (1995) Who are the variables in your neighborhood. In: Proceedings of computer-aided design (ICCAD’95). IEEE, pp 74–77
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–180
Rudell R (1993) Dynamic variable ordering for ordered binary decision diagrams. In: IEEE/ACM international conference on computer-aided design (ICCAD-93), pp 42–47
Schaefer I (2010) Variability modelling for model-driven development of software product lines. In: VaMoS
Segura S (2008) Automated analysis of feature models using atomicsets. In: SPLC (2), pp 201--207
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:45
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–315
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–15
ter Beek MH, Mazzanti F, Sulova A (2012) VMC: a tool for product variability analysis. Springer, Berlin, pp 450–454
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–85
von Rhein Alexander (2016) Analysis strategies for configurable systems. PhD thesis, University of Passau
Wegener I (2000) Branching programs and binary decision diagrams: theory and applications. Monographs on discrete mathematics and applications. SIAM Philadelphia
Author information
Authors and Affiliations
Corresponding author
Additional information
Perdita Stevens, Andrzej Wasowski, and Ewen Denney
Rights and permissions
About this article
Cite this article
Chrszon, P., Dubslaff, C., Klüppelholz, S. et al. ProFeat: feature-oriented engineering for family-based probabilistic model checking. Form Asp Comp 30, 45–75 (2018). https://doi.org/10.1007/s00165-017-0432-4
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00165-017-0432-4