All roads lead to Rome: Commuting strategies for product-line reliability analysis

Abstract Software product line engineering is a means to systematically manage variability and commonality in software systems, enabling the automated synthesis of related programs (products) from a set of reusable assets. However, the number of products in a software product line may grow exponentially with the number of features, so it is practically infeasible to quality-check each of these products in isolation. There is a number of variability-aware approaches to product-line analysis that adapt single-product analysis techniques to cope with variability in an efficient way. Such approaches can be classified along three analysis dimensions (product-based, family-based, and feature-based), but, particularly in the context of reliability analysis, there is no theory comprising both (a) a formal specification of the three dimensions and resulting analysis strategies and (b) proof that such analyses are equivalent to one another. The lack of such a theory hinders formal reasoning on the relationship between the analysis dimensions and derived analysis techniques. We formalize seven approaches to reliability analysis of product lines, including the first instance of a feature-family-product-based analysis in the literature. We prove the formalized analysis strategies to be sound with respect to the probabilistic approach to reliability analysis of a single product. Furthermore, we present a commuting diagram of intermediate analysis steps, which relates different strategies and enables the reuse of soundness proofs between them.

[1]  Christel Baier,et al.  Family-Based Modeling and Analysis for Probabilistic Systems - Featuring ProFeat , 2016, FASE.

[2]  Kathi Fisler,et al.  Modular Verification of Open Features Using Three-Valued Model Checking , 2005, Automated Software Engineering.

[3]  Carsten Sinz,et al.  Configuration Lifting: Verification meets Software Configuration , 2008, 2008 23rd IEEE/ACM International Conference on Automated Software Engineering.

[4]  Claus Brabrand,et al.  Intraprocedural Dataflow Analysis for Software Product Lines , 2013, LNCS Trans. Aspect Oriented Softw. Dev..

[5]  Ina Schaefer,et al.  Family-Based Performance Analysis of Variant-Rich Software Systems , 2014, Software Engineering & Management.

[6]  R. I. Bahar,et al.  Algebraic decision diagrams and their applications , 1993, Proceedings of 1993 International Conference on Computer Aided Design (ICCAD).

[7]  Klaus Schmid,et al.  Software product lines in action - the best industrial practice in product line engineering , 2007 .

[8]  Pierre-Yves Schobbens,et al.  Symbolic model checking of software product lines , 2011, 2011 33rd International Conference on Software Engineering (ICSE).

[9]  Sven Apel,et al.  Variational Data Structures: Exploring Tradeoffs in Computing with Variability , 2014, Onward!.

[10]  Sven Apel,et al.  A comparison of product-based, feature-based, and family-based type checking , 2013, GPCE '13.

[11]  Pierre-Yves Schobbens,et al.  Model checking lots of systems: efficient verification of temporal properties in software product lines , 2010, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[12]  Zhiming Liu,et al.  Theoretical Aspects of Computing - ICTAC 2004, First International Colloquium, Guiyang, China, September 20-24, 2004, Revised Selected Papers , 2005, ICTAC.

[13]  Kerstin Mueller,et al.  Software Product Line Engineering Foundations Principles And Techniques , 2016 .

[14]  Christel Baier,et al.  Principles of Model Checking (Representation and Mind Series) , 2008 .

[15]  Lijun Zhang,et al.  Probabilistic reachability for parametric Markov models , 2010, International Journal on Software Tools for Technology Transfer.

[16]  Sven Apel,et al.  Family-based deductive verification of software product lines , 2012, GPCE '12.

[17]  Ina Schaefer,et al.  Scaling Size and Parameter Spaces in Variability-Aware Software Performance Models (T) , 2015, 2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE).

[18]  Lijun Zhang,et al.  PARAM: A Model Checker for Parametric Markov Models , 2010, CAV.

[19]  Craig A. Knoblock,et al.  A Survey of Digital Map Processing Techniques , 2014, ACM Comput. Surv..

[20]  Enrique Herrera-Viedma,et al.  A bibliometric analysis of 20 years of research on software product lines , 2016, Inf. Softw. Technol..

[21]  Pierre-Yves Schobbens,et al.  Featured Transition Systems: Foundations for Verifying Variability-Intensive Systems and Their Application to LTL Model Checking , 2013, IEEE Transactions on Software Engineering.

[22]  Carlo Ghezzi,et al.  Model-based verification of quantitative non-functional properties for software product lines , 2013, Inf. Softw. Technol..

[23]  Sven Apel,et al.  Variability encoding: From compile-time to load-time variability , 2016, J. Log. Algebraic Methods Program..

[24]  Gunter Saake,et al.  A Classification and Survey of Analysis Strategies for Software Product Lines , 2014, ACM Comput. Surv..

[25]  Gunter Saake,et al.  Analysis Strategies for Software Product Lines , 2012 .

[26]  Christel Baier,et al.  Principles of model checking , 2008 .

[27]  Christel Baier,et al.  Probabilistic Model Checking for Feature-Oriented Systems , 2015, LNCS Trans. Aspect Oriented Softw. Dev..

[28]  David M. Weiss,et al.  The Product Line Hall of Fame , 2008, 2008 12th International Software Product Line Conference.

[29]  Sven Apel,et al.  The PLA model: on the combination of product-line analyses , 2013, VaMoS '13.

[30]  Gunter Saake,et al.  Feature-Oriented Software Product Lines , 2013, Springer Berlin Heidelberg.

[31]  Krzysztof Czarnecki,et al.  Generative programming - methods, tools and applications , 2000 .

[32]  Genaína Nunes Rodrigues,et al.  Variability Management of Reliability Models in Software Product Lines: An Expressiveness and Scalability Analysis , 2012, 2012 Sixth Brazilian Symposium on Software Components, Architectures and Reuse.

[33]  Sven Apel,et al.  Granularity in software product lines , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[34]  Claus Brabrand,et al.  Intraprocedural dataflow analysis for software product lines , 2012, AOSD.

[35]  Krzysztof Czarnecki,et al.  Verifying feature-based model templates against well-formedness OCL constraints , 2006, GPCE '06.

[36]  Gunter Saake,et al.  Feature-Oriented Software Product Lines , 2013, Springer Berlin Heidelberg.

[37]  Dominik Domis,et al.  Integrating variability and safety analysis models using commercial UML-based tools , 2015, SPLC.

[38]  Gunter Saake,et al.  An overview on analysis tools for software product lines , 2014, SPLC '14.

[39]  Jing Liu,et al.  Compositional model checking of software product lines using variation point obligations , 2010, Automated Software Engineering.

[40]  Vander Alves Towards Compositional Approach for Parametric Model Checking in Software Product Lines , 2013 .

[41]  Jorge Rivera,et al.  The challenges of applying service orientation to the U.S. Army's live training software product line , 2013, SPLC '13.

[42]  Bernhard Rumpe,et al.  Engineering delta modeling languages , 2013, SPLC '13.

[43]  Marta Z. Kwiatkowska,et al.  PRISM 4.0: Verification of Probabilistic Real-Time Systems , 2011, CAV.

[44]  Martin Erwig,et al.  Type-based parametric analysis of program families , 2014, ICFP.

[45]  Mira Mezini,et al.  SPLLIFT: statically analyzing software product lines in minutes instead of years , 2013, Software Engineering.

[46]  Lars Grunske,et al.  Specification patterns for probabilistic quality properties , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[47]  Sven Apel,et al.  Strategies for product-line verification: Case studies and experiments , 2013, 2013 35th International Conference on Software Engineering (ICSE).

[48]  Frank Dordowsky,et al.  Implementing a Software Product Line for a Complex Avionics System , 2011, 2011 15th International Software Product Line Conference.

[49]  Pierre-Yves Schobbens,et al.  Modeling and Verification for Probabilistic Properties in Software Product Lines , 2015, 2015 IEEE 16th International Symposium on High Assurance Systems Engineering.

[50]  Edmund M. Clarke,et al.  Design and Synthesis of Synchronization Skeletons Using Branching-Time Temporal Logic , 1981, Logic of Programs.

[51]  Sven Apel,et al.  Detection of feature interactions using feature-aware verification , 2011, 2011 26th IEEE/ACM International Conference on Automated Software Engineering (ASE 2011).

[52]  Conrado Daws Symbolic and Parametric Model Checking of Discrete-Time Markov Chains , 2004, ICTAC.

[53]  Claus Brabrand,et al.  Systematic derivation of correct variability-aware program analyses , 2015, Sci. Comput. Program..

[54]  Pierre-Yves Schobbens,et al.  Formal semantics, modular specification, and symbolic verification of product-line behaviour , 2014, Sci. Comput. Program..

[55]  Enrico Macii,et al.  Algebric Decision Diagrams and Their Applications , 1997, ICCAD '93.

[56]  Bengt Jonsson,et al.  A logic for reasoning about time and reliability , 1990, Formal Aspects of Computing.

[57]  Paul Clements,et al.  Software product lines - practices and patterns , 2001, SEI series in software engineering.