This project aims to improve understandability of erroneous behaviour in cyber-physical systems using program analysis techniques. Toward this, first, we will establish the fundamental tools and techniques for leveraging concrete information from run-time monitoring of cyber-physical systems in order to predict system failures with a fast static analysis. We will also investigate the degree of tolerance of these systems to the predicted failures based on run-time speculation. Second, we will tune static program analysers to cyber-physical software using run-time information from monitoring and speculation. This aims to increase the detection of true bugs, decrease the generation of false alarms, and to improve understandability of program analysis results to users through software-level explications for any detected code issues. In the long term, we envision a seamless integration of run-time monitoring with (static or dynamic) program analyses such that key aspects of cyber-physical systems, including their correctness, performance, and memory consumption, become understood by their designers and users.
Project C5 has been completed at the end of the first funding phase.