Modelling and Reasoning with Software Product Lines with Design Choices
Software product lines (SPLs) allow managing the variability that arises in families of related software models due to varying customer needs.  While designing changes to them, engineers need to consider many alternative SPL designs.   However, without complete information about the desired quality requirements of the final SPL, engineers face uncertainty about how to make the appropriate design choices.   Existing formalisms and techniques are not well suited to modelling and reasoning about the two dimensional space defined by variability and design choices. We propose an approach for modelling design uncertainty in SPLs and for analyzing and understanding the impact of design choices in the quality of SPLs, expressed as properties. We formally define Software Product Lines with Design Choices (SPLDCs) and outline a procedure for analyzing them and providing appropriate feedback to engineers, based on the partial order of SPLDC property categories. We illustrate the applicability of our approach using a  fully worked out example, that shows the kind of nuanced feedback necessary for meaningful analysis of SPLs in the presence of design choices. To evaluate the scalability of our approach we use our approach over many SPLDCs and record runtimes.
Product Line Engineering Modeling Design Choices Uncertainty