Using microsoft solver foundation to analyse feature models and configurations

Feature Models are widely used in Software Product Lines to represent commonalities and variabilities in a family of products and to support the interactive configuration of these products. They comprise features and options that can be included in a product and constraints about which combinations of features are allowed. Libraries and frameworks such as SPLOT and FaMa help engineers to determine if a feature model is valid, detect errors in the models and validate if a configuration (i.e., a set of features selected by an user) does not contradict the constraints in the model. Regrettably, these libraries are based on Java and cannot be used in .Net platforms such as the recent Windows Phone systems. For that platforms, there is a Microsoft Solver Foundation (MSF) library that provides a set of solvers such as the used to analyse feature models. This paper explains (1) how to translate feature models and configurations into Constraint Satisfaction Problems in MSF, and (2) how to use that library to determine if a model is valid, enumerate all the valid configurations, and detect core and dead features that may exist in the model. In addition, we present a performance evaluation of the approach.

[1]  Haiyan Zhao,et al.  An Optimization Strategy to Feature Models' Verification by Eliminating Verification-Irrelevant Features and Constraints , 2009, ICSR.

[2]  Krzysztof Czarnecki,et al.  SAT-based analysis of feature models is easy , 2009, SPLC.

[3]  Antonio Ruiz Cortés,et al.  Using Java CSP Solvers in the Automated Analyses of Feature Models , 2005, GTTSE.

[4]  Krzysztof Czarnecki,et al.  SAT-based analysis of large real-world feature models is easy , 2015, SPLC.

[5]  Kyo Chul Kang,et al.  Feature-Oriented Domain Analysis (FODA) Feasibility Study , 1990 .

[6]  Halit Oğuztüzün,et al.  Mapping Extended Feature Models to Constraint Logic Programming over Finite Domains , 2010, SPLC.

[7]  Camille Salinesi,et al.  Transforming Attribute and Clone-enabled Feature Models into Constraint Programs over Finite Domains , 2011, ENASE.

[8]  Halit Oguztüzün,et al.  From extended feature models to constraint logic programming , 2013, Sci. Comput. Program..

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

[10]  Pim van den Broek Optimization of Product Instantiation using Integer Programming , 2010, SPLC Workshops.

[11]  Sergio Segura,et al.  Automated analysis of feature models 20 years later: A literature review , 2010, Inf. Syst..

[12]  Carlos Eduardo,et al.  Automated Reasoning on Feature Models via Constraint Programming , 2011 .

[13]  Antonio Ruiz Cortés,et al.  Automated Reasoning on Feature Models , 2005, CAiSE.

[14]  Sooyong Park,et al.  Quality-driven architecture development using architectural tactics , 2009, J. Syst. Softw..