Litcius/Paper detail

Transforming Numerical Feature Models into Propositional Formulas and the Universal Variability Language

Daniel-Jesús Munoz, Mónica Pinto, Lidia Fuentes, Don Batory

2023Journal of Systems and Software39 citationsDOIOpen Access PDF

Abstract

Real-world Software Product Lines (SPLs) need Numerical Feature Models (NFMs) whose features have not only boolean values that satisfy boolean constraints but also have numeric attributes that satisfy arithmetic constraints. An essential operation on NFMs finds near-optimal performing products, which requires counting the number of SPL products. Typical constraint satisfaction solvers perform poorly on counting and sampling. Nemo (Numbers, features, models) is a tool that supports NFMs by bit-blasting, the technique that encodes arithmetic expressions as boolean clauses. The newest version, Nemo2, translates NFMs to propositional formulas and the Universal Variability Language (UVL). By doing so, products can be counted efficiently by #SAT and Binary Decision Tree solvers, enabling finding near-optimal products. This article evaluates Nemo2 with a large set of synthetic and colossal real-world NFMs, including complex arithmetic constraints and counting and sampling experiments. We empirically demonstrate the viability of Nemo2 when counting and sampling large and complex SPLs.

Topics & Concepts

Feature (linguistics)Computer scienceBinary numberSet (abstract data type)Propositional calculusBinary decision diagramConstraint (computer-aided design)Boolean data typeConstraint satisfaction problemBoolean functionAlgorithmProduct (mathematics)Theoretical computer scienceSampling (signal processing)ArithmeticMathematicsArtificial intelligenceProgramming languageLinguisticsProbabilistic logicPhilosophyGeometryComputer visionFilter (signal processing)Advanced Software Engineering MethodologiesSoftware Engineering ResearchSoftware System Performance and Reliability
Transforming Numerical Feature Models into Propositional Formulas and the Universal Variability Language | Litcius