The special section is devoted to the use of formal methods for improving the quality of software systems. The included articles focus on the use of runtime techniques, such as runtime verification and trace analysis (see Falcone et al. 2013; Bartocci and Falcone 2018; Bartocci et al. 2019). Following an open call, this section resulted in 3 papers that were selected out of 8 papers after a careful and rigorous reviewing process. The papers are briefly discussed as follows.
In “Verifying Temporal Specifications of Java Programs,” Spegni et al. combine satisfiability modulo theory and static analysis to approximate the behavior of Java threads. The behavior approximation is represented as a network of timed automata, and the authors show that their abstraction preserves the truthfulness of two real-time temporal logics.
In “Runtime Verification of Real-Time Event Streams Under Non-synchronized Arrival,” Scheffel et al. present an approach to monitor concurrent systems with a shared clock abstracted as real-time event streams. The authors present a specification language and an online monitoring algorithm for the evaluation of the specifications.
In “Model Generation of Component-based Systems,” Salva and Blot present an approach to learn the behavior of component-based systems from their execution traces using machine learning techniques. The resulting tool has been successfully trialed with network protocol traces.
The special section was announced during the track on Software Verification and Testing (SVT) at the 33rd ACM/SIGAPP Symposium On Applied Computing. One of the papers accepted in this special section is an extended version of a paper that originally appeared at the SVT track. Collectively, these papers tackle cutting-edge topics thereby appealing to the experts in the field.
Finally, the guest editors thank the authors and the reviewers who contributed to the special section.