Causality in Configurable Software Systems

Research output: Chapter in Book/Report/Conference proceedingConference contributionAcademicpeer-review

Abstract

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.

Original languageEnglish
Title of host publicationICSE '22
Subtitle of host publicationProceedings of the 44th International Conference on Software Engineering
PublisherAssociation for Computing Machinery, Inc.
Pages325-337
Number of pages13
ISBN (Electronic)978-1-4503-9221-1
DOIs
Publication statusPublished - 5 Jul 2022
Externally publishedYes

Keywords

  • causality
  • configurable systems
  • software analysis
  • software product lines

Fingerprint

Dive into the research topics of 'Causality in Configurable Software Systems'. Together they form a unique fingerprint.

Cite this