Towards Reasoning About Product Lines with Design Choices

While designing changes to Software Product Lines (SPLs), engineers may need to consider many alternative SPL designs. In the absence of enough information to pick an appropriate SPL design, they face design-time uncertainty about how to make the appropriate design choices. The combination of the two dimensions (variability and design choices) leads to Software Product Lines with Design Choices (SPLDCs). We propose Tyson, an Alloy-based domain-specific language for modelling SPLDCs and reasoning about their structural properties. We illustrate the applicability and feasibility of Tyson with a worked example, showing the kind of nuanced feedback necessary for meaningful analysis of SPLs with design choices.

[1]  Lianping Chen,et al.  Variability management in software product lines: a systematic review , 2009, SPLC.

[2]  ApelSven,et al.  A Classification and Survey of Analysis Strategies for Software Product Lines , 2014 .

[3]  Andres J. Ramirez,et al.  A taxonomy of uncertainty for dynamically adaptive systems , 2012, 2012 7th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS).

[4]  Tom Mens,et al.  Using Description Logic to Maintain Consistency between UML Models , 2003, UML.

[5]  Michal Antkiewicz,et al.  Model-driven software product lines , 2005, OOPSLA '05.

[6]  Pierre-Yves Schobbens,et al.  Feature Diagrams: A Survey and a Formal Semantics , 2006, 14th IEEE International Requirements Engineering Conference (RE'06).

[7]  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.

[8]  Navpreet Kaur,et al.  Modelling and Reasoning with Software Product Lines with Design Choices , 2019 .

[9]  Joseph P. Near,et al.  Alloy*: a general-purpose higher-order relational constraint solver , 2015, Formal Methods in System Design.

[10]  Klaus Pohl,et al.  Software product line engineering and variability management: achievements and challenges , 2014, FOSE.

[11]  Sam Malek,et al.  Uncertainty in Self-Adaptive Software Systems , 2010, Software Engineering for Self-Adaptive Systems.

[12]  Sven Apel,et al.  Integrating Compositional and Annotative Approaches for Product Line Engineering , 2008 .

[13]  John S. Schlipf,et al.  Extending Existential Quantification in Conjunctions of BDDs , 2006, J. Satisf. Boolean Model. Comput..

[14]  Marsha Chechik,et al.  Managing Design-Time Uncertainty , 2017, MoDELS.

[15]  Klaus Schmid,et al.  On the interdependence and integration of variability and architectural decisions , 2014, VaMoS '14.

[16]  Daniel Le Berre,et al.  The Sat4j library, release 2.2 , 2010, J. Satisf. Boolean Model. Comput..

[17]  Simon Barner,et al.  Building product-lines of mixed-criticality systems , 2016, 2016 Forum on Specification and Design Languages (FDL).

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

[19]  Rick Salay,et al.  Partial models: Towards modeling and reasoning with uncertainty , 2012, 2012 34th International Conference on Software Engineering (ICSE).

[20]  Krzysztof Czarnecki,et al.  Cool features and tough decisions: a comparison of variability modeling approaches , 2012, VaMoS.

[21]  William Klieber,et al.  Verification of Software and Hardware using Quantified Boolean Formulas (QBF) , 2014 .

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

[23]  Klaus Pohl,et al.  Software Product Line Engineering - Foundations, Principles, and Techniques , 2005 .

[24]  Uwe Aßmann,et al.  Capturing variability in space and time with hyper feature models , 2014, VaMoS.

[25]  Donald D. Cowan,et al.  S.P.L.O.T.: software product lines online tools , 2009, OOPSLA Companion.

[26]  Paul H. Edelman,et al.  Hyperplane arrangements with a lattice of regions , 1990, Discret. Comput. Geom..

[27]  Yue Lu,et al.  Towards feature-oriented requirements validation for automotive systems , 2014, 2014 IEEE 22nd International Requirements Engineering Conference (RE).

[28]  Jean Bézivin,et al.  KM3: A DSL for Metamodel Specification , 2006, FMOODS.

[29]  Fabio Massacci,et al.  An Approach for Decision Support on the Uncertainty in Feature Model Evolution , 2014, 2014 IEEE 22nd International Requirements Engineering Conference (RE).

[30]  Rick Salay,et al.  Software Product Lines with Design Choices: Reasoning about Variability and Design Uncertainty , 2017, 2017 ACM/IEEE 20th International Conference on Model Driven Engineering Languages and Systems (MODELS).

[31]  Daniel Jackson,et al.  Software Abstractions - Logic, Language, and Analysis , 2006 .

[32]  Heiko Behrens,et al.  Xtext: implement your language faster than the quick and dirty way , 2010, SPLASH/OOPSLA Companion.