Runtime Fault Detection in Programmed Molecular Systems

Samuel J. Ellis,Titus H. Klinge,James I. Lathrop,Jack H. Lutz,Robyn R. Lutz,Andrew S. Miner,Hugh D. Potter
DOI: https://doi.org/10.1145/3295740
IF: 3.685
2019-04-30
ACM Transactions on Software Engineering and Methodology
Abstract:Watchdog timers are devices that are commonly used to monitor the health of safety-critical hardware and software systems. Their primary function is to raise an alarm if the monitored systems fail to emit periodic “heartbeats” that signal their well-being. In this article, we design and verify a molecular watchdog timer for monitoring the health of programmed molecular nanosystems. This raises new challenges, because our molecular watchdog timer and the system that it monitors both operate in the probabilistic environment of chemical kinetics, where many failures are certain to occur and it is especially hard to detect the absence of a signal. Our molecular watchdog timer is the result of an incremental design process that uses goal-oriented requirements engineering, simulation, stochastic analysis, and software verification tools. We demonstrate the molecular watchdog’s functionality by having it monitor a molecular oscillator. Both the molecular watchdog timer and the oscillator are implemented as chemical reaction networks, which are the current programming language of choice for many molecular programming applications.
computer science, software engineering
What problem does this paper attempt to address?