Java2CSP—A Model-Based Diagnosis Tool Not Only for Software Debugging

Franz Wotawa*, Vlad Andrei Dumitru

*Corresponding author for this work

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


Model-based reasoning has been an active research area for several decades providing foundations for fault detection, localization, and repair not only in the context of system and hardware diagnosis but also in localizing software bugs. Java2CSP allows for mapping Java-like programs into a corresponding constraint representation. The constraint representation makes use of a health state variable indicating whether a certain statement is correct or faulty. A constraint solver can be used for computing diagnoses for a given failing test case. In this paper, we present the tool and also show how more classical diagnosis problems can be directly mapped to their program representation, which allows to use Java2CSP in different settings, including teaching model-based diagnosis.

Original languageEnglish
Title of host publicationIntelligent Decision Technologies - Proceedings of the 13th KES-IDT 2021 Conference
EditorsIreneusz Czarnowski, Robert J. Howlett, Lakhmi C. Jain
PublisherSpringer Science and Business Media Deutschland GmbH
Number of pages11
ISBN (Print)9789811627644
Publication statusPublished - 2021
Event13th International KES Conference on Intelligent Decision Technologies, KES-IDT 2021 - Virtual, Online
Duration: 14 Jun 202116 Jun 2021

Publication series

NameSmart Innovation, Systems and Technologies
ISSN (Print)2190-3018
ISSN (Electronic)2190-3026


Conference13th International KES Conference on Intelligent Decision Technologies, KES-IDT 2021
CityVirtual, Online


  • Automated software debugging
  • Debugging tool
  • Model-based diagnosis

ASJC Scopus subject areas

  • Decision Sciences(all)
  • Computer Science(all)


Dive into the research topics of 'Java2CSP—A Model-Based Diagnosis Tool Not Only for Software Debugging'. Together they form a unique fingerprint.

Cite this