一句话:提出特征因果性,用反事实推理识别引发系统性质的特征及其交互,并给出计算因果解释的算法。
可配置软件系统的行为受用户所选特征组合影响,缺陷与非常规行为的根因难以定位。本文提出特征因果性(feature causality),将 Halpern 与 Pearl 的实际因果定义推广到配置层面,通过反事实推理判定哪些特征及其交互导致了系统功能与非功能性质。作者进一步将责任(responsibility)与归咎(blame)等概念扩展到特征维度,并揭示特征因果性与素蕴涵项(prime implicant)的紧密联系,据此给出有效计算特征原因与因果解释的算法。在社区基准与真实可配置系统上的评估表明,该方法可识别根本原因、估计特征效果并检测特征交互。
Detecting and understanding reasons for defects and inadvertent behavior in software is challenging due to their increasing complexity. In configurable software systems, the combinatorics that arises from the multitude of features a user might select from adds a further layer of complexity. We introduce the notion of feature causality, which is based on counterfactual reasoning and inspired by the seminal definition of actual causality by Halpern and Pearl. Feature causality operates at the level of system configurations and is capable of identifying features and their interactions that are the reason for emerging functional and non-functional properties. We present various methods to explicate these reasons, in particular well-established notions of responsibility and blame that we extend to the feature-oriented setting. Establishing a close connection of feature causality to prime implicants, we provide algorithms to effectively compute feature causes and causal explications. By means of an evaluation on a wide range of configurable software systems, including community benchmarks and real-world systems, we demonstrate the feasibility of our approach: We illustrate how our notion of causality facilitates to identify root causes, estimate the effects of features, and detect feature interactions.