Analyzing a Feature Model (FM) and reasoning on the corresponding configuration space is a central task in Software Product Line (SPL) engineering. Problems such as deciding the satisfiability of the FM and eliminating inconsistent parts of the FM have been well resolved by translating the FM into a conjunctive normal form (CNF) formula, and then feeding the CNF to a SAT solver. However, this approach has some limits for other important reasoning issues about the FM, such as counting or enumerating configurations. Two mainstream approaches have been investigated in this direction: (i) direct approaches, using tools based on the CNF representation of the FM at hand, or (ii) compilation-based approaches, where the CNF representation of the FM has first been translated into another representation for which the reasoning queries are easier to address. Our contribution is twofold. First, we evaluate how both approaches compare when dealing with common reasoning operations on FM, namely counting configurations, pointing out one or several configurations, sampling configurations, and finding optimal configurations regarding a utility function. Our experimental results show that the compilation-based is efficient enough to possibly compete with the direct approaches and that the cost of translation (i.e., the compilation time) can be balanced when addressing sufficiently many complex reasoning operations on large configuration spaces. Second, we provide a Java-based automated reasoner that supports these operations for both approaches, thus eliminating the burden of selecting the appropriate tool and approach depending on the operation one wants to perform.
翻译:分析功能模型(FM)和相应配置空间的推理是软件产品系列(SPL)工程中的一项核心任务。决定调频的可对称性和消除调频中不一致性部分等问题已经通过将调频转换成组合的正常形式(CNF)公式,然后将CNF喂给SAT解答器,从而很好地解决了问题。然而,这一方法对于调频的其他重要推理问题,如计数或计数配置等,有一些局限性。在这方面已经调查了两种主流方法:(一) 直接方法,使用基于调频中心手调频中心代表制工具的工具,或(二) 汇编方法,即调频中心代表制代表制首先转化为另一种代表制,而理由查询更容易解决。我们的贡献是双重的。首先,我们评价两种方法在处理调频通用推理操作时,即计数配置、指出一个或多个配置、抽样配置,以及找到关于公用事业功能的最佳配置。我们的实验结果表明,基于汇编方法的效率足以使调频中心能够与直接方法竞争,因此推理更难地进行这样的推理,因此,我们可以用一个成本推算。